#8811 NORM Not Tri: OFW q2e19 breaks booting off of external drives

Zarro Boogs per Child bugtracker at laptop.org
Sat Oct 11 03:40:50 EDT 2008


#8811: OFW q2e19 breaks booting off of external drives
-----------------------------------+----------------------------------------
   Reporter:  Progman3K            |       Owner:  wmb at firmworks.com
       Type:  defect               |      Status:  new              
   Priority:  normal               |   Milestone:  Not Triaged      
  Component:  ofw - open firmware  |     Version:  not specified    
 Resolution:                       |    Keywords:  hang             
Next_action:  never set            |    Verified:  0                
  Blockedby:                       |    Blocking:                   
-----------------------------------+----------------------------------------

Comment(by wmb at firmworks.com):

 The gentoolog.txt file is a log of the kernel (from gentooxo.zip) serial
 port output when booted under my latest OFW test build Q2E19d.  I also
 tried it on stock Q2E19 with essentially identical results.

 Linux appears to be starting and dying before it can take over the screen.

 The first clue is on the fourth line of the Linux output:

  BIOS-e801: 0000000000100000 - 0000000100000000 (usable)

 That upper limit - 4 GiB - is bogus.  The Geode processor can't even
 address that much memory.  Here is the corresponding line from an OLPC
 kernel:

 [    0.000000]  BIOS-e801: 0000000000100000 - 000000000e4a1800 (usable)

 The gentoo kernel then proceeds to use 896MB of memory, but the XO only
 has 256 MB total (including some that is reserved for the frame buffer and
 OFW).  It's allocating important data structures in nonexistent memory
 and, not surprisingly, crashing.

 So why is it is getting the wrong memory size?  That information is
 supposed to be passed in the "zero page" at 0x90000.  Part of the zero
 page info seems to be correct, because the cmdline value is reported
 correctly, and the pointer to that is in the zero page.

 Okay, I see the problem.  A recent change to support new Fedora kernels
 introduced a bug.  If there is no ramdisk, OFW doesn't set the memory top
 field in the zero page.

 Here is a workaround:  Add this line to olpc.fth, just before the "boot"
 line:

   memory-limit to linux-memtop

 With that patch, the system gets a lot farther, dying with "No init
 found", presumably because my USB key doesn't have a root filesystem on
 it.

 This fix has been added to the OFW source code as svn 985.

-- 
Ticket URL: <http://dev.laptop.org/ticket/8811#comment:3>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system


More information about the Bugs mailing list