[U-Boot] ppc4xx: glacier broken with latest u-boot

Adam Graham agraham at amcc.com
Fri Sep 5 04:06:05 CEST 2008


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 at 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 at 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 at lists.denx.de 
> [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Victor Gallardo
> Sent: Thursday, September 04, 2008 4:47 PM
> To: Stefan Roese; u-boot at 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
> 


More information about the U-Boot mailing list