pxe fails after loading kernel and initrd

Bug #808612 reported by mahmoh
8
This bug affects 1 person
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-linaro-omap4-panda_2011.06.5-0ubuntu1_armel.deb

Build Version/Date: u-boot-linaro-omap4-panda_2011.06.5-0ubuntu1_armel.deb
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/0x81600000)
  3) set serverip and ipaddr and/or ethaddr
  4) set bootargs (ie. console=ttyO2,115200n8)
  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.com/dists/oneiric/main/installer-armel/current/images/omap4/netboot/uInitrd
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.ubuntu.com/dists/oneiric/main/installer-armel/current/images/omap4/netboot/uInitrd'.
Load address: 0x81600000
Loading: EHCI timed out on TD - token=0x8008d80
T #################################################################
         #################################################################
         #################################################################
         ########################
done
Bytes transferred = 3200805 (30d725 hex)
Retreiving file: ports.ubuntu.com/dists/oneiric/main/installer-armel/current/images/omap4/netboot/uImage
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.ubuntu.com/dists/oneiric/main/installer-armel/current/images/omap4/netboot/uImage'.
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

Revision history for this message
Ricardo Salveti (rsalveti) wrote :
Download full text (3.9 KiB)

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
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.cfg/0A2A2B0A
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.cfg/0A2A2B0A'.
Load address: 0x88000000
Loading: #
done
Bytes transferred = 239 (ef hex)
Config file found
Label: panda-natty
        kernel: panda/uImage
        append: console=ttyO2,115200n8 root=/dev/mmcblk0p2 ro fixrtc vram=48M omapfb.vram=0:24M mem=1G@0x80000000 text earlyprintk=ttyO2
        initrd: panda/uInitrd
Enter choice: panda-natty
Label: panda-natty
        kernel: panda/uImage
        append: console=ttyO2,115200n8 root=/dev/mmcblk0p2 ro fixrtc vram=48M omapfb.vram=0:24M mem=1G@0x80000000 text earlyprintk=ttyO2
        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: #################################################################
         #################################################################
         #################################################################
         #################################################################
  ...

Read more...

Changed in u-boot-linaro (Ubuntu):
status: New → Incomplete
status: Incomplete → Confirmed
assignee: nobody → Ricardo Salveti (rsalveti)
importance: Undecided → Medium
status: Confirmed → In Progress
Changed in u-boot-linaro:
status: New → In Progress
assignee: nobody → Ricardo Salveti (rsalveti)
Revision history for this message
mahmoh (mahmoh) wrote :

Verified that the patched u-boot provided above does in fact fix the problem, pxe now loads and boots the kernel, will verify in the official release when released: 59f9e68416865d7a366ea45cd79c46e4 u-boot.bin

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package u-boot-linaro - 2011.06.5-0ubuntu2

---------------
u-boot-linaro (2011.06.5-0ubuntu2) oneiric; urgency=low

  * debian/patches/0001-cmd_pxecfg-only-call-do_bootm-with-argc-4-if-fdtaddr.patch:
    - Fix PXE when built with FDT but without loading it at runtime (LP: #808612)
 -- Ricardo Salveti de Araujo <email address hidden> Mon, 11 Jul 2011 02:13:14 -0300

Changed in u-boot-linaro (Ubuntu):
status: In Progress → Fix Released
John Rigby (jcrigby)
Changed in u-boot-linaro:
status: In Progress → Fix Committed
John Rigby (jcrigby)
Changed in u-boot-linaro:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.