Changing OpenFirmware real-base

By default, the OpenFirmware (IBM p Servers) reserved space for loading the network boot image (inst64) is about 12Mb, but, in OpenSuse 11.0, the inst64 has about 16Mb of size. There are patches posted for mainline kernel to allow booting very large zImage files. They require that firmware relocates itself to a different memory address. But firmware refuses to relocate itself. Instead, it either truncates the downloaded file, or it just drops back to firmware prompt. Recently a bug was opened on the Novell Bugzilla where, I hope, we introduce a fix to this issue.

While a proper solution isn’t ready, we have a workaround for this issue. We need to change the real-base value to the OpenSuSE boot image size. This is done, manually, by setting it via setenv line command and by instruct Openfirmware to use more memory than 12Mb… you can safely enlarge openfirmware memory follow up this steps.

  • when you see the “sms menu”, press 8 to get firmware prompt, hit a command to print the enviromment variables:
0 > printenv real-base
------ Partition: common ----- Signature: 0x70 -------
real-base                c00000              c00000
  • where realbase is c00000 (12MB)… to change realbase to use 1000000 (16MB), hit:
0 > setenv real-base 1000000

About Carlos Costa

My name is Carlos Roberto do Nascimento Costa, but you should call me Carlos Costa. I am Free and Open Source Software activist working as Software Engineer and Consulting.
This entry was posted in en_US. Bookmark the permalink.

2 Responses to Changing OpenFirmware real-base

  1. Pingback: Problems booting OpenSUSE on IBM system p machines « Oh Brave New World!

  2. Pingback: changing real-base just works in IVM « CarlosCosta.org

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>