Sigh.
I’m wrong. The new path needs to be used for the Intel machines.
I had structured the code to use a
subroutine to try to find the path, and throw on failure. I would then catch
(at a higher level) and try with the new path.
Apparently stepping over the subroutine
threw, caught, and called the subroutine again with the new path and then hit
the end of the ‘step’, so it looked exactly like the original path
was found.
Sorry for the mis-information.
Dave
Hmmm… Apparently the old path
works on the Intel machine even though the IORegistryExplorer doesn’t
show that path available. Asking for “version” in the
“:/rom” path works as well, perhaps the older method was preserved
for compatibility?
David Litwin
BigFix
From: David Litwin
Sent: Thursday, July 13, 2006
11:15 AM
To: 'email@hidden'
Subject: Re: Programatically
determining BootROM version?
This question was answered a few years back, but on an Intel
Mac this path does not exist.
It seems like on Intel the path would be
“:/rom”, with the key being “version”, as that data
matches what System Profiler displays for its Boot ROM Version field on my
Intel dev machine.
Is there any official information on how to get this (I
couldn’t find much searching for it)? I can code things to look for the
PPC path first, then fall back to the location I’ve found it on my Intel
machine, but this is just what I’ve found poking around myself, and who
knows if I can rely on this for all machines.
David Litwin
BigFix
Garth Cummings writes:
Take a look at the IODeviceTree plane, Root >
rom@xxxxxxxx > boot-rom@xxxxxxxx. That node has the BootROM-version property.
You can create a matching dictionary for this using:
IORegistryEntryFromPath(kIOMasterPortDefault,
kIODeviceTreePlane ":/rom/boot-rom");
HTH,
gc