An idea on NVRAM layout: maybe it will be useful to create special NVRAM layout file which describes names, types, and location of all NVRAM variables. Such file may look like this:
var1 0x08 word ; Variable named 'var1' at offset 0x08 in nvram of type 'word' var2 0x1F byte ;
etc.
At BIOS build time, this file can be compiled into special structure in BIOS code, and at run time all NVRAM variables could be accesible by it's names via special nvram access functions. Then, if you need to change NVRAM layout for some reasons, you need to change only layout file, no need to make changes in code or even to recompile it.
Any comments/flames/etc. ?
Regards, Victor