Skip to contentSkip to conversation

pcmcia card not set up by u-boot on tqm823l

U-Boot-Users Seb James 2 participants 4 messages Sep 9, 2003

lore
Share & tools
lore

Seb James

author
#0 lore raw

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)
author
#1 lore raw
Quoted 19 lines · Seb James

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
Quoted 8 lines

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
=>

Ok, the problem was the bdi setup files that I was using to program u-boot onto my tqm module.

The bdi setup files (TQM8xxL.cfg and reg823.def) caused odd problems such as the one above and also the problem I was having with an rtai module not functioning.

I'm happy now.

Seb.

Quoted 69 lines

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)

-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

#2 lore raw
Quoted 7 lines · In message <[email protected]> you wrote:

Ok, the problem was the bdi setup files that I was using to program u-boot onto my tqm module.

The bdi setup files (TQM8xxL.cfg and reg823.def) caused odd problems such as the one above and also the problem I was having with an rtai module not functioning.

Check the SIUMCR settings. Some modes (debugging / PCMCIA) are mutually exclusive.

Best regards,

Wolfgang Denk

Signature · 4 lines
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
You Don't Have To Be 'Damned' To Work Here, But It Helps!!!
                                             - Terry Pratchett, _Eric_
#3 lore raw
In reply to Seb James

Dear Seb,

Quoted 4 lines · in message <[email protected]> you wrote:

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:

...

Quoted 5 lines

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 **

...

Quoted 4 lines

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?

Probably the card does not work, at least not in an ATA standard conforming way. There is little you can do when the BUSY bit stays on forever after a device select command...

Best regards,

Wolfgang Denk

Signature · 4 lines
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
"What if" is a trademark of Hewlett Packard, so stop using it in your
sentences without permission, or risk being sued.