Menu

CompactFlash not correctly recognised at boot

2006-01-24
2013-04-08
  • Didier Barvaux

    Didier Barvaux - 2006-01-24

    Hello everybody,

    I've encoutered some problems with a 4GB CompactFlash from Silicon Systems.

    If I put the CF in the card reader once the system (Linux 2.4.26) had booted, everything is ok :

    # cardctl ident          
    Socket 0:
      product info: "SILICONSYSTEMS", "VER2.00"
      manfid: 0x0000, 0x0000
      function: 4 (fixed disk)

    But, if I put the CF in the card reader before the system boots, the CF is not correctly recognized :

    # cardctl ident
    Socket 0:
      no product info available
      function: 0 (multifunction)

    I tried several things:
    - I tried to specify bigger values for the
       setup_delay, vcc_settle and unreset_delay
       parameters of the pcmcia_core module.
    - I tried not to start pcmcia automaticaly at
       bootup, but to launch it manually afterwards.
    - I tried the commands 'cardctl eject/insert' and
       'cardctl suspend/resume'.

    The only thing that works is to eject the CF (software, then hardware) and, finally, put it back into the card reader. The CF is then correctly recongnized :

    hda: SILICONSYSTEMS INC 4GB, ATA DISK drive
    ide0 at 0xf6000000-0xf6000007,0xf600000e on irq 31

    Some infos:

    # lsmod
    Module                  Size  Used by    Not tainted
    ide-cs                  3620   1
    ds                      7448   1  [ide-cs]
    pxa_cs                  8996   1
    pcmcia_core            35704   0  [ide-cs ds pxa_cs]
    ide-detect               336   0  (autoclean) (unused)
    ide-core               80580   0  (autoclean) [ide-cs ide-detect]
    ext3                   60408   0  (autoclean)
    jbd                    41784   0  (autoclean) [ext3]
    smc91x                 11508   1  (autoclean)
    hc_isp116x             14328   0  (unused)
    usbcore                59120   1  [hc_isp116x]
    ds1307                  5912   0
    i2c-viper               1104   0  (unused)
    i2c-algo-bit            7652   1  [i2c-viper]
    i2c-core               13824   0  [ds1307 i2c-algo-bit]
    ip_conntrack_ftp        4124   0  (unused)
    ip_conntrack           21232   1  [ip_conntrack_ftp]
    unix                   16900   4  (autoclean)

    # cardctl config
    Socket 0:
      Vcc 3.3V  Vpp1 0.0V  Vpp2 0.0V
      interface type is "memory and I/O"
      irq 31 [exclusive] [level]
      function 0:
        config base 0x0200
          option 0x41 status 0x00 pin 0x00 copy 0x00
        io 0xf6000000-0xf600000f [auto]

    If you need more information, just tell me...

    Didier

     
    • Didier Barvaux

      Didier Barvaux - 2006-01-24

      Some information I forgot in my previous message...

      When the card is not recognized (cardctl returns 'no product info available'), the 'cardctl config' command says :

      # cardctl config         
      Socket 0:
        Vcc 3.3V  Vpp1 3.3V  Vpp2 3.3V

      Hope it can help...

      Didier

       
    • David Hinds

      David Hinds - 2006-03-02

      I would guess that it is a bug in the socket driver (not properly resetting the socket to a sane state at power-up).  You're using a socket driver that I'm not familiar with (pxa_cs?), and should probably contact the maintainer(s) of that driver.

      - Dave

       

Log in to post a comment.