[U-Boot] About PCI of U-BOOT of CANYONLANDS

Kazuaki Ichinohe kazuichi at fsi.co.jp
Thu Mar 19 12:28:52 CET 2009


Hi Anatolij, Stefan,

Thank you for the reply.
I confirmed your patch source.
However, the exception was generated.

------------------------------------------------
U-Boot 2009.01 ( 3月 19 2009 - 18:41:36)

CPU:   AMCC PowerPC 460EX 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: Canyonlands - AMCC PPC460EX Evaluation Board, 1*PCIe/1*SATA, Rev. 14
I2C:   ready
DTT:   1 is 39 C
DRAM:  512 MB (ECC not enabled, 400 MHz, CL3)
FLASH: 64 MB
NAND:  128 MiB
PCI:   Bus Dev VenId DevId Class Int
         00  06  1002  5960  0300  ff
         00  06  1002  5940  0380  ff
PCIE1: link is not up.
PCIE1: initialization as root-complex failed
Video: ATI Radeon video card (1002, 5960) found @(0:6:0)
rinfo->mmio_base = 0x88000000
rinfo->fb_local_base = 0x59c00000
videoboot: Booting PCI video card bus 0, function 0, device 6
Machine Check Exception.
Caused by (from msr): regs 1fe3ab50 Data Write PLB Error
NIP: 1FF859E0 XER: 00000000 LR: 1FF87848 REGS: 1fe3ab50 TRAP: 0200 DEAR: 
00000000
MSR: 00021000 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 00

GPR00: 1FF87848 1FE3AC40 1FE3AF20 D0801014 0000C000 1FE3AC4C 00000000 
00000001
GPR08: 00000000 1FF8595C 000006BD 00000000 00000006 055671DE 1FFABF00 
1FFBF000
GPR16: 1FF91D3C 1FFCC999 1FE37D40 1FE37D44 00000000 00000000 1FE401E0 
1FFFF890
GPR24: 1FFAAF88 1FFA6420 1FFFFC90 1FFFFC90 1FFFFC90 00001014 1FFAE314 
0000C000
Call backtrace:
1FF860E0 1FF87848 1FF8712C 1FF84AD0 1FF84644 1FF82B44 1FF834A8
1FF82498 1FF5FCDC 1FF42EF0 1FF41710
machine check


Regards,
Kazuaki Ichinohe

Anatolij Gustschin wrote:
> Hi Kazuaki, Stefan,
> 
> Kazuaki Ichinohe wrote:
> 
>> This is a problem that the memory space of BAR2 is inaccessible.
>> Even if the value of VIDEO_IO_OFFSET is changed, the problem is not solved.
>>
>> It is a log that you demanded as follows.
> 
> Thanks! Now I see this too. Previously you have mentioned that
> the driver crashed in u-boot/drivers/video/ati_radeon_fb.c, line 760.
> But before this, a bunch of pci register accesses should be done already.
> I only wanted to make sure that the driver really crashes while first
> ATI register access.
> 
> Please, try the inlined patch below and see if BAR2 memory space
> works with it. Thanks!
> 
> <snip>
> 
>>>> The memory space is displayed in BAR2 of the PCI configuration space.
>>>> The video driver accesses this memory space and the exception is
>>>> generated.
>>>>
>>>>  driver source: u-boot/drivers/video/ati_radeon_fb.c
>>>>  function name: void *video_hw_init(void)
>>>>  line         : 760line
>>> it seems that the driver is able to access memory space (registers, e.g.
>>> in radeon_identify_vram() ) but cannot access framebuffer?
>>>
>>> Please replace '#undef DEBUG' in drivers/video/ati_radeon_fb.c
>>> with '#define DEBUG' and also enable CONFIG_VIDEO and use
>>> #define VIDEO_IO_OFFSET 0xD0800000 and post the boot log again.
>>>
> 
> 
> diff --git a/cpu/ppc4xx/4xx_pci.c b/cpu/ppc4xx/4xx_pci.c
> index e8871fc..9639547 100644
> --- a/cpu/ppc4xx/4xx_pci.c
> +++ b/cpu/ppc4xx/4xx_pci.c
> @@ -550,10 +550,12 @@ int pci_440_init (struct pci_controller *hose)
>  	out32r( PCIX0_POM0SA, 0 ); /* disable */
>  	out32r( PCIX0_POM1SA, 0 ); /* disable */
>  	out32r( PCIX0_POM2SA, 0 ); /* disable */
> -#if defined(CONFIG_440SPE) || \
> -    defined(CONFIG_460EX) || defined(CONFIG_460GT)
> +#if defined(CONFIG_440SPE)
>  	out32r( PCIX0_POM0LAL, 0x10000000 );
>  	out32r( PCIX0_POM0LAH, 0x0000000c );
> +#elif defined(CONFIG_460EX) || defined(CONFIG_460GT)
> +	out32r( PCIX0_POM0LAL, 0x20000000 );
> +	out32r( PCIX0_POM0LAH, 0x0000000c );
>  #else
>  	out32r( PCIX0_POM0LAL, 0x00000000 );
>  	out32r( PCIX0_POM0LAH, 0x00000003 );
> 
> 
> Best regards,
> Anatolij
> 
> --
> DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
> 



More information about the U-Boot mailing list