[U-Boot] help - u-boot on powerpc qemu

Miao Yan yanmiaobest at gmail.com
Mon Dec 21 09:36:15 CET 2015


2015-12-18 9:12 GMT+08:00 吴红青 <hqwu at fiberhome.com.cn>:
> thank MiaoYan!
> i try to do something as you said ,now can found e1000-nic,but when i ping
> another ipaddr,an error  msg show as below:


I tried this today and could reproduce the error.


>
>
> U-Boot 2016.01-rc2 (Dec 13 2015 - 21:06:24 +0800)
>
> CPU:   Unknown, Version: 0.0, (0x00000000)
> Core:  e500, Version: 2.2, (0x80210022)
> Clock Configuration:
>        CPU0:400  MHz,
>        CCB:400  MHz,
>        DDR:200  MHz (400 MT/s data rate), LBC: unknown (LCRR[CLKDIV] = 0x00)
> L1:    D-cache 32 KiB enabled
>        I-cache 32 KiB enabled
> DRAM:  1 GiB
> L2:    disabled
> Using default environment
>
>
> PCI: base address e0008000
>   00:01.0     - 8086:100e - Network controller
> PCI1: Bus 00 - 00
>
> In:    serial
> Out:   serial
> Err:   serial
> Net:   e1000: 00:00:00:00:00:00
>        e1000#0
> Error: e1000#0 address not set.
>
> Hit any key to stop autoboot:  0
> WARNING: adjusting available memory to 30000000
> Wrong Image Format for bootm command
> ERROR: can't get kernel image!
> => setenv ipAddr 10.33.152.222
> => ping 10.33.152.2
> e1000: e1000#0: ERROR: Hardware Initialization Failed


This is because e1000 pci configuration space is not properly programmed:

=> pci
Scanning PCI devices on bus 0
BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
_____________________________________________________________
00.01.00   0x8086     0x100e     Network controller      0x00
=> pci display 00.01.00
00000000: 100e8086 00000006 02000003 00000008
00000010: 00000000 00000001 00000000 00000000
00000020: 00000000 00000000 00000000 11001af4
00000030: 00040000 00000000 00000000 00000100
=>

Look at offset 0x10 which is BAR0, all zero is not a valid pci address which
causes the error when e1000 driver tries to remap it.

It seems U-boot writes address larger than 4GB (the physical address
is taken from device tree prepared by qemu and the board enables 36bit
addressing) to bar0 while e1000 only supports 32bit pci bar, which
result in 0 being written and the upper 32bit address is omitted.

So include the maintainer here for more info.

Note there is another bug in e1000 driver that will
hang in BE target, I will send a separate patch to
fix that.


> ping failed; host 10.33.152.2 is not alive
> =>
>
>
> ==============================================================================
>
>
> 在 2015年12月14日 10:23, Miao Yan 写道:
>
> 2015-12-13 20:29 GMT+08:00 吴红青 <hqwu at fiberhome.com.cn>:
>
> hello,i am using u-boot on powerpc qemu,my u-boot version is
> u-boot-2016.01-rc2,i make uboot as below:
>
> cd u-boot-2016.01-rc2
> make clean
> make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- qemu-ppce500_defconfig
> make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu-
>
> then ,t execute u-boot bay qemu as below:
>
> qemu-system-ppc -M ppce500  -serial stdio -kernel u-boot -m 1024
>
> uboot show some msg as below:
>
> U-Boot 2016.01-rc2 (Dec 13 2015 - 19:54:13 +0800)
>
> CPU:   Unknown, Version: 0.0, (0x00000000)
> Core:  e500, Version: 3.0, (0x80210030)
> Clock Configuration:
>        CPU0:400  MHz,
>        CCB:400  MHz,
>        DDR:200  MHz (400 MT/s data rate), LBC: unknown (LCRR[CLKDIV] = 0x00)
> L1:    D-cache 32 KiB enabled
>        I-cache 32 KiB enabled
> DRAM:  1 GiB
> L2:    disabled
> Using default environment
>
>
> PCI: base address e0008000
>   00:01.0     - 1af4:1000 - Network controller
> PCI1: Bus 00 - 00
>
> In:    serial
> Out:   serial
> Err:   serial
> Net:   No ethernet found.
> Hit any key to stop autoboot:  0
> WARNING: adjusting available memory to 30000000
> Wrong Image Format for bootm command
> ERROR: can't get kernel image!
> =>
>
> why no net card? can you help me?
>
> Because you didn't specify any emulated NIC in qemu command line.
>
> Here's a link maybe you can refer:
>
> https://www.suse.com/documentation/sles11/book_kvm/data/cha_qemu_running_networking.html
>
>
> See the "Defining a Network Interface Card" section. The commonly
> used model with U-Boot should be e1000 or rtl8139 (rtl8139 is
> not converted to driver model though)
>
>
>
> Miao
>
>
> thanks you!!!
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
>


More information about the U-Boot mailing list