[OpenBIOS] [PATCH] Add resolutions via the command-line

Benjamin Herrenschmidt benh at kernel.crashing.org
Wed Sep 21 23:53:54 CEST 2016

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
IOGraphicsFamily iirc).

>  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.


More information about the OpenBIOS mailing list