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!