From mboxrd@z Thu Jan 1 00:00:00 1970 From: Seb James Date: 09 Sep 2003 12:48:16 +0100 Subject: [U-Boot-Users] pcmcia card not set up by u-boot on tqm823l Message-ID: <1063108096.3298.79.camel@xerxes.hypercube> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear all, I am having problems with u-boot setting up a pcmcia card on a tqm823l on an Stk8xxl starter board. From a "make TQM823L_config; make" version of u-boot 0.4.0, I get the following output when booting the board: U-Boot 0.4.0 (Sep 9 2003 - 12:27:42) CPU: PPC823EZTnnB2 at 50 MHz: 16 kB I-Cache 8 kB D-Cache Board: TQM823LDBBA3-E50.308 I2C: ready DRAM: 16 MB FLASH: 8 MB In: serial Out: serial Err: serial Net: SCC ETHERNET PCMCIA: 3.3V card found: SunDisk SDP 5/3 0.6 Fixed Disk Card IDE interface [silicon] [unique] [single] [sleep] [standby] [idle] [low power] Bus 0: ............................................................** Timeout ** Type "run flash_nfs" to mount root filesystem over NFS Hit any key to stop autoboot: 0 => The same is seen with another flash card. The code that times out is in common/cmd_ide.c (at bottom of message) and it looks like the card is saying it's busy. Does anyone have a suggestion as to why the cards aren't being correctly set up/recognized? regards, Seb James. ---------- cmd_ide.c Lines 564 - 604 ----------------------------- printf ("Bus %d: ", bus); ide_bus_ok[bus] = 0; /* Select device */ udelay (100000); /* 100 ms */ ide_outb (dev, ATA_DEV_HD, ATA_LBA | ATA_DEVICE(dev)); udelay (100000); /* 100 ms */ #ifdef CONFIG_AMIGAONEG3SE ata_reset_time = ATA_RESET_TIME; s = getenv("ide_reset_timeout"); if (s) ata_reset_time = 2*simple_strtol(s, NULL, 10); #endif i = 0; do { udelay (10000); /* 10 ms */ c = ide_inb (dev, ATA_STATUS); i++; #ifdef CONFIG_AMIGAONEG3SE if (i > (ata_reset_time * 100)) { #else if (i > (ATA_RESET_TIME * 100)) { #endif puts ("** Timeout **\n"); ide_led ((LED_IDE1 | LED_IDE2), 0); /* LED's off */ #ifdef CONFIG_AMIGAONEG3SE /* If this is the second bus, the first one was OK */ if (bus != 0) { ide_bus_ok[bus] = 0; goto skip_bus; } #endif return; } if ((i >= 100) && ((i%100)==0)) { putc ('.'); } } while (c & ATA_STAT_BUSY)