On Wed, 2016-09-21 at 14:26 -0400, G 3 wrote:
> Nodes like chose, aliases, openprom are of class IOService. options
> is of class IODTNVRAM. It looks like this class has problems. I'm
> thinking since Alexander Graf did work in the mac_nvram.c file, he
> might know what is wrong.
What is wrong is purely that MacOS X limits how you do things on that
node. Have a look at the OS X kernel source :-) The implementation of
the support libraries to run NDRVs is all there (module
> I found another way to access the options
> node in Mac OS X. Use this command: ioreg -c IODTNVRAM. It stops at
> the options node and prints this error message: "ioreg: error: can't
> obtain properties" in QEMU. On a real Power Mac the command prints
> all the properties of the options node just fine.
Correct, part of the problem is that I think we don't emulate the NVRAM
in a format that OS X understands, a problem for another day.
> I don't know about using binary. The way we do it now seems just fine.
ASCII parsing in a driver sucks.
> I just need to figure out how to write to the /chosen node from the
> QEMU command line. I found a function called OpenBIOS_set_var() in
> openbios_firmware_abi.h, but it would require an address to write to.
> So where do I find the address of the /chosen node....
No, you don't. Do as I said. Have OpenBIOS construct the list of
resolutions and put it in the node of the device itself.