Programatically determining BootROM version?

Ask a Question related to Mac Programming, Design and Development.

  1. #1

    Default Programatically determining BootROM version?

    What is the correct way to determine the BootROM version? I want to do
    so because there's a bug that's fixed with a firmware update and I need
    to be able to detect so I can warn the user if they need to update.

    There doesn't seem to be a Gestalt or sysctl AFAICT... maybe in the
    IORegistry?

    Thanks!
    Sean McBride Guest

  2. Similar Questions and Discussions

    1. Acrobat version - programatically
      Hi, Is there any way to get Acrobat version programactically? This is because, i want to do avoid some functionality depending on acrobat...
    2. determining '@ContextRoot()' programatically
      You can get the url in AS: mx.core.Application._url I have not seen any equivalent to get the context root. You CAN get the contextroot in...
    3. How do I programatically select....
      What I have is the following. A list box with dates in it. A list box with selected Dates in it.. The first box is populated from a...
    4. Adding <div> tag programatically
      Hi All, I would like to add the <div> tag programatically from the code-behind of my aspx file. Basically, I would like to a table to this <div>....
    5. Programatically add column
      Hi. My problem is how to add several columns with a checkbox programatically to a datagrid. Anybody with some pointers? -as
  3. #2

    Default Re: Programatically determining BootROM version?

    Boot into OpenFirmware and check the version.

    Sean McBride wrote:
    > What is the correct way to determine the BootROM version? I want to do
    > so because there's a bug that's fixed with a firmware update and I need
    > to be able to detect so I can warn the user if they need to update.
    >
    > There doesn't seem to be a Gestalt or sysctl AFAICT... maybe in the
    > IORegistry?
    >
    > Thanks!
    Alan Kruger Guest

  4. #3

    Default Re: Programatically determining BootROM version?

    In article <H%rdb.81952$xx4.9044943@twister.neo.rr.com>,
    Alan Kruger <akruger@kent.edu> wrote:
    > Boot into OpenFirmware and check the version.
    hehehe. But, as I said in the subject line, I'm looking to determine
    this programatically, more specifically with C. Apple System Profiler
    is able to get the info from somewhere (and show it), I'd like to do the
    same from my code.
    Sean McBride Guest

  5. #4

    Default Re: Programatically determining BootROM version?

    In article <cwatson-70C9C0.00345626092003@aeinews.aei.ca>,
    Sean McBride <cwatson@cam.org> wrote:
    > What is the correct way to determine the BootROM version? I want to do
    > so because there's a bug that's fixed with a firmware update and I need
    > to be able to detect so I can warn the user if they need to update.
    Although this doesn't actually answer your question, you might look at
    The Nitrogen Manifesto, which documents a library called "Nitrogen",
    which wraps the Carbon API, making the Carbon API much easier to use
    (Nitrogen handles all the CFRetain/CFRelease nonsense, and converts
    error codes to exceptions so that routines can return useful values.)

    look at <http://nitric.sourceforge.net>. In Nitrogen, you can say
    something like:

    Namespace N = Nitrogen;

    std::string s = N::Convert<std::string>(
    N::CFCast<CFStringRef>(
    N::CFDictionaryGetValue(
    N::CFCast<CFDictionaryRef>(
    N::CFPropertyListCreateFromXMLData(
    N::CFURLCreateWithFileSystemPath(
    CFSTR("/System/Library/CoreServices/SystemVersion.plist"),
    KCFURLPOSIXPathStyle,
    false
    )
    )
    ),
    CFSTR("ProductBuildVerson")
    )
    )
    );

    to get the build number of the O.S.

    The ROM firmware value is probably available through IOKit, in a similar
    way.
    David Phillip Oster Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139