This may look right, but it is a bad kludge. Open Firmware, when "biosload"ed,
expects a top-of-RAM at physical address 0x1004 ( mem-info-pa 4 + ) , as a
little endian pointer. LinuxBIOS however only provides its tables. There's
currently code in the queue from Jens Freimann to parse the LB tables, and
OFW should ideally get its info from that, but the stuff is not yet stable
(right, Jens?) and providing the table info to the /memory device init is
still to be written.
Until openfirmware/cpu/x86/pc/biosload/probemem.fth is changed or maybe even
an openfirmware/cpu/x86/pc/linuxbiosload is created, use this evil hack. The
memory map is parsed anyway to find a RAM buffer for the payload, so I just
hook in here to find a 32-bit pointer to the top of RAM, clipped to 3GB, to
not confuse the payload :)
Recommendation: do _NOT_ apply!
Show replies by date