Bug 461808 - i586 kernel doesn't boot on XO with an initrd
i586 kernel doesn't boot on XO with an initrd
Product: Fedora
Classification: Fedora
Component: kernel (Show other bugs)
All Linux
medium Severity medium
: ---
: ---
Assigned To: Jeremy Katz
Fedora Extras Quality Assurance
Depends On:
Blocks: FedoraOnXO
  Show dependency treegraph
Reported: 2008-09-10 14:42 EDT by Jeremy Katz
Modified: 2008-09-22 21:59 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2008-09-22 21:59:22 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Jeremy Katz 2008-09-10 14:42:59 EDT
The stock i586 kernel doesn't boot on the XO if you're using an initrd.  Without an initrd, it boots (and then fails because we really kind of require an initrd in most circumstances)

Using the OLPC kernel config as opposed to the Fedora config works fine.  Sadly, large diff.
Comment 1 Peter Robinson 2008-09-11 04:45:46 EDT
I'm having the same issue with the fit-pc (http://www.fit-pc.com/) which is using the same geode processor that the XO is using. The device comes with either Ubuntu or Gentoo so their kernels might shed some light on the issue.
Comment 2 Chuck Ebbert 2008-09-13 03:30:56 EDT
What bootloader is the XO using?
Comment 3 Jeremy Katz 2008-09-13 22:40:19 EDT
The XO boots directly from OpenFirmware.  Which should mean I should be able to better debug it.
Comment 4 Jeremy Katz 2008-09-22 21:59:22 EDT
And this is due to a bug in where OpenFirmware was putting the initrd.  From my mail...

> After going down a few more dead ends than I would have preferred, I've
> figured out the root cause of the problems booting the Fedora kernel on
> the XO.  The base problem is that OFW always loads the initrd at
> 0x800000 which, while it used to be okay, isn't a safe assumption with
> current kernels.  With the Fedora kernel images for example, this ends
> up being smack in the middle of the .bss and thus things explode.
> The correct thing to do with an initrd (according to
> Documentation/boot/x86/i386/boot.txt and manual verification with hpa)
> is to first check the value of initrd_addr_max (0x22c) in the header of
> the bzImage.  initrd_addr_max is defined as the maximum safe address for
> a byte of the initrd, so you want to load the ramdisk at
> initrd_addr_max-len(ramdisk)+1.  This then will make OFW's kernel
> loading match that of all the other bootloaders used on x86.  It might
> also be worth checking some of the other newer things (especially the
> kernel_alignment field), but I've got no indication of them causing any
> problems at all right now with anything that anyone is actually doing in
> practice.

Mitch sent me a patch which can be put into olpc.fth temporarily and which will be in the next ofw release

Note You need to log in before you can comment on or make changes to this bug.