
Stefan,
I took a quick look at this problem and tracked the problem down to the serial console initialization area for the AMCC Glacier and Canyonlands boards.
description PPC4xx U-Boot Custodian Tree owner Stefan Roese last change Wed, 3 Sep 2008 15:21:38 +0000 URL git://git.denx.de/u-boot-ppc4xx.git
The problem was introduced 4 days ago with the commit
committer Wolfgang Denk wd@denx.de Sun, 31 Aug 2008 22:16:29 +0000 (00:16 +0200) commit e99e9575bbeba1b7c48e046547cae065ec0071de tree c08553c4d06725bd6013a46068df0059c5b49a00 parent a13b2d937941f6b525abfcfad96c034f94421188 parent 08ab4e1780fa63c88dd5a5ab52f4ff4ed1ee1878
If one were to rebase their git tree to the prior commit, U-Boot will boot all the way up on the Glacier and Canyonlands boards.
committer Wolfgang Denk wd@denx.de Sun, 31 Aug 2008 22:06:05 +0000 (00:06 +0200) commit a13b2d937941f6b525abfcfad96c034f94421188 tree 56e5bdaf62397b2f8cc2be9b17a035d9b059bf8a parent e155c9e00b5f21a6de28479259c440ba71289d00 parent d6e04258be8f2408845468d3cf722a4cf0433445
The problem happens within the console_init_r() routine called from the board_init_r() function.
common/console.c #else /* CFG_CONSOLE_IS_IN_ENV */
/* Called after the relocation - use desired console functions */ int console_init_r (void) { device_t *inputdev = NULL, *outputdev = NULL; int i; struct list_head *list = device_get_list(); struct list_head *pos; device_t *dev;
#ifdef CONFIG_SPLASH_SCREEN /* suppress all output if splash screen is enabled and we have a bmp to display */ if (getenv("splashimage") != NULL) gd->flags |= GD_FLG_SILENT; #endif
/* Scan devices looking for input and output devices */ list_for_each(pos, list) { dev = list_entry(pos, device_t, list);
if ((dev->flags & DEV_FLAGS_INPUT) && (inputdev == NULL)) { inputdev = dev; } if ((dev->flags & DEV_FLAGS_OUTPUT) && (outputdev == NULL)) { outputdev = dev; } if(inputdev && outputdev) break; }
/* Initializes output console first */ if (outputdev != NULL) { console_setfile (stdout, outputdev); console_setfile (stderr, outputdev); }
/* Initializes input console */ if (inputdev != NULL) { console_setfile (stdin, inputdev); }
gd->flags |= GD_FLG_DEVINIT; /* device initialization completed */ (Problem happens here- no more console output)
There are 4 elements in the device_get_list() list. I did a quick print of their flags field: list_head 0x1ffef2a0 dev->flags = 0x80000003 dev->flags = 0x00000003 dev->flags = 0x00000003 dev->flags = 0x80000003
Is the dev->flags for each console serial device have both DEV_FLAGS_INPUT and the DEV_FLAGS_OUTPUT set?
There was a change in the e99e9575bbeba1b7c48e046547cae065ec0071de commit with the list processing of the console devices (common/console.c, common/devices.c).
Unfortunately I can not investigate further tonight (family engagement), but I hope this helps.
Adam Graham
-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@lists.denx.de] On Behalf Of Victor Gallardo Sent: Thursday, September 04, 2008 4:47 PM To: Stefan Roese; u-boot@lists.denx.de Subject: [U-Boot] ppc4xx: glacier broken with latest u-boot
Hello Stefan,
I just pulled the latest u-boot (git://git.denx.de/u-boot-ppc4xx.git) and glacier is broken. It builds, but if load the u-boot it hangs. This is far as it gets.
U-Boot 1.3.4-03965-g7deb3b3 (Sep 4 2008 - 16:26:55)
CPU: AMCC PowerPC 460GT Rev. A at 800 MHz (PLB=200, OPB=100, EBC=100 MHz) Security/Kasumi support Bootstrap Option H - Boot ROM Location I2C (Addr 0x52) Internal PCI arbiter disabled 32 kB I-Cache 32 kB D-Cache Board: Glacier - AMCC PPC460GT Evaluation Board, 2*PCIe, Rev. 13 I2C: ready DTT: 1 is 35 C DRAM: 256 MB (ECC not enabled, 400 MHz, CL3) FLASH: 64 MB NAND: 32 MiB PCI: Bus Dev VenId DevId Class Int PCIE0: link is not up. PCIE0: initialization as root-complex failed PCIE1: link is not up. PCIE1: initialization as root-complex failed
Regards,
Victor Gallardo