pxe fails after loading kernel and initrd
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Linaro U-Boot |
Fix Released
|
Undecided
|
Ricardo Salveti | ||
u-boot-linaro (Ubuntu) |
Fix Released
|
Medium
|
Ricardo Salveti |
Bug Description
u-boot-
Build Version/Date: u-boot-
Environment used for testing: panda-qa (A1?)
Summary: pxe fails after loading kernel and initrd
Steps to Reproduce: pxe boot with netinstall kernel and initrd (or any other) -
1) interrupt boot,
2) set kernel_ram and initrd_ram (0x80000000/
3) set serverip and ipaddr and/or ethaddr
4) set bootargs (ie. console=
5) usb start
6) pxe get
7) pxe boot
8) - choose the proper label -
Expected result: kernel runs
Actual result: boot hangs after boot and initrd are loaded and verified
...
Retreiving file: ports.ubuntu.
Waiting for Ethernet connection... done.
Using sms0 device
TFTP from server 10.193.37.1; our IP address is 10.193.37.254
Filename 'ports.
Load address: 0x81600000
Loading: EHCI timed out on TD - token=0x8008d80
T #######
done
Bytes transferred = 3200805 (30d725 hex)
Retreiving file: ports.ubuntu.
Waiting for Ethernet connection... done.
Using sms0 device
TFTP from server 10.193.37.1; our IP address is 10.193.37.254
Filename 'ports.
Load address: 0x80000000
Loading: EHCI timed out on TD - token=0x88008d80
T #######
done
Bytes transferred = 4176080 (3fb8d0 hex)
## Booting kernel from Legacy Image at 80000000 ...
Image Name: Ubuntu kernel
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4176016 Bytes = 4 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 81600000 ...
Image Name: debian-installer ramdisk
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 3200741 Bytes = 3.1 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
<hang - that's it, we're all done here>
Related branches
- John Rigby: Approve
-
Diff: 60 lines (+42/-0)3 files modifieddebian/changelog (+7/-0)
debian/patches/0001-cmd_pxecfg-only-call-do_bootm-with-argc-4-if-fdtaddr.patch (+34/-0)
debian/patches/series (+1/-0)
Changed in u-boot-linaro: | |
status: | In Progress → Fix Committed |
Changed in u-boot-linaro: | |
status: | Fix Committed → Fix Released |
This is caused by a seg fault while trying to parse the fdt argument, as pxe is always calling do_bootm with argc == 4.
The patch with the fix http:// people. canonical. com/~rsalveti/ pxe/0001- cmd_pxecfg- only-call- do_bootm- with-argc- 4-if-fdtaddr. patch.
And the binary with the fix included: http:// people. canonical. com/~rsalveti/ pxe/3/u- boot.bin
With the fix PXE works as expected:
Texas Instruments X-Loader 1.5.0 (Jun 28 2011 - 01:39:31)
Reading boot sector
Loading u-boot.bin from mmc
U-Boot 2011.06-dirty (Jul 11 2011 - 01:31:39)
CPU : OMAP4430
Board: OMAP4 Panda
I2C: ready
DRAM: 1 GiB
MMC: OMAP SD/MMC: 0
Using default environment
In: serial
Out: serial
Err: serial
Net: No ethernet found.
Hit any key to stop autoboot: 0
reading boot.scr
339 bytes read cfg/0A2A2B0A cfg/0A2A2B0A' . ttyO2,115200n8 root=/dev/mmcblk0p2 ro fixrtc vram=48M omapfb.vram=0:24M mem=1G@0x80000000 text earlyprintk=ttyO2 ttyO2,115200n8 root=/dev/mmcblk0p2 ro fixrtc vram=48M omapfb.vram=0:24M mem=1G@0x80000000 text earlyprintk=ttyO2 ####### ####### ####### ####### ####### ####### ####### ####### ##
##### ####### ####### ####### ####### ####### ####### ####### ####### ####
##### ####### ####### ####### ####### ####### ####### ####### ####### ####
##### ####### ####### ####### ####### ####### ####### ####### ####### ####
##### ####### ####### ####### ####### ####### ####### ####### ####### ####### ##
##### ####### ####### ####### ####### ####### ####### ####### ####### ####
##### ####### ####### ####### ####### ####### ####### ####### ####### ####
##### ####### ####### ####### ####### ####### ####### ####### ####### ####
Running bootscript from mmc0 ...
## Executing script at 82000000
(Re)start USB...
USB: Register 1313 NbrPorts 3
USB EHCI 1.00
scanning bus for devices... The request port(2) is not configured
EHCI timed out on TD - token=0x80008c80
The request port(2) is not configured
4 USB Device(s) found
scanning bus for storage devices... 0 Storage Device(s) found
scanning bus for ethernet devices... 1 Ethernet Device(s) found
Waiting for Ethernet connection... done.
BOOTP broadcast 1
DHCP client bound to address 10.42.43.10
missing environment variable: pxeuuid
missing environment variable: ethaddr
Retreiving file: pxelinux.
Waiting for Ethernet connection... done.
Using sms0 device
TFTP from server 10.42.43.1; our IP address is 10.42.43.10
Filename 'pxelinux.
Load address: 0x88000000
Loading: #
done
Bytes transferred = 239 (ef hex)
Config file found
Label: panda-natty
kernel: panda/uImage
append: console=
initrd: panda/uInitrd
Enter choice: panda-natty
Label: panda-natty
kernel: panda/uImage
append: console=
initrd: panda/uInitrd
Retreiving file: panda/uInitrd
Waiting for Ethernet connection... done.
Using sms0 device
TFTP from server 10.42.43.1; our IP address is 10.42.43.10
Filename 'panda/uInitrd'.
Load address: 0x81600000
Loading: #######
done
Bytes transferred = 3982715 (3cc57b hex)
Retreiving file: panda/uImage
Waiting for Ethernet connection... done.
Using sms0 device
TFTP from server 10.42.43.1; our IP address is 10.42.43.10
Filename 'panda/uImage'.
Load address: 0x80000000
Loading: #######
...