Which EFI firmware should your Mac be using? (version 2)

This article refers to previous EFI firmware versions, not the latest ones. It is no longer updated: for current information, see this article instead.

Apple doesn’t provide an official list of the current EFI firmware versions which should be installed on each model of Mac. However, the following lists give the EFI firmware versions supported in the last High Sierra update (10.13.6) and in the initial release of Mojave (10.14).

Note that applying the update to macOS 10.14.1, or the Security Updates to High Sierra (2018-002) or Sierra (2018-005) install EFI firmware which uses a completely different version numbering system. I will shortly be detailing those new version numbers in another article. The numbers given below apply to Macs which haven’t undergone that update.

iMac:

  • iMac10,1 00D0 00B
  • iMac11,1 0039 00B
  • iMac11,2 005D 00B
  • iMac12,1 004F 00B
  • iMac13,1 0115 B00
  • iMac14,1, iMac14,2, iMac14,3 0130 B00
  • iMac14,4 0189 B00
  • iMac15,1 0217 B00
  • iMac16,1 0220 B00
  • iMac16,2 0219 B00
  • iMac17,1 0157 B00
  • iMac18,1, iMac18,3 0161 B00

⚠️ Apple doesn’t list the iMac12,2 separately, but this appears to have the same version as the iMac12,1. Although 10.13.6 and 10.14 update the iMac16,1, they don’t update the iMac16,2.

MacBook:

  • MacBook6,1 00CC 00B
  • MacBook7,1 003F 00B
  • MacBook8,1 0174 B00
  • MacBook9,1 0172 B00
  • MacBook10,1 0163 B00

MacBook Air:

  • MacBookAir3,1 0069 00B
  • MacBookAir4,1, MacBookAir4,2 0080 B00
  • MacBookAir5,1 00F8 B00
  • MacBookAir6,1 0107 B00
  • MacBookAir7,1 0178 B00

MacBook Pro:

  • MacBookPro6,1 005D 00B
  • MacBookPro7,1 003F 00B
  • MacBookPro8,1 0050 00B
  • MacBookPro9,1 00DA B00
  • MacBookPro10,1 00F6 B00
  • MacBookPro10,2 010E B00
  • MacBookPro11,1, MacBookPro11,2 0146 B00
  • MacBookPro11,4 0184 B00
  • MacBookPro12,1 0177 B00
  • MacBookPro13,1 0223 B00
  • MacBookPro13,2, MacBookPro13,3 0247 B00
  • MacBookPro14,1, MacBookPro14,2, MacBookPro14,3 0178 B00

⚠️ Apple doesn’t list the MacBookPro11,3, but this appears to have the same version as the MacBookPro11,1.

Mac mini:

  • Macmini4,1 0047 00B
  • Macmini5,1 0080 B00
  • Macmini6,1, Macmini6,2 010E B00
  • Macmini7,1 0232 B00

Mac Pro:

  • MacPro6,1 0124 B00

⚠️ Apple doesn’t list the MacPro5,1, but this is believed to be 0085 B00 following 10.13.4, and should change to 0089 B00 following update to 10.13.6. See below for further information about this model.

T2 chip models:
The iMac Pro and 2018 MacBook Pro with Touch Bar (MacBookPro15,1 and 15,2) use a different mechanism for firmware updates, managed by their T2 chips. They also appear unable to run eficheck.

How to check your Mac’s EFI firmware version

Use the About This Mac command at the top of the Apple menu, and click on the System Report… button. In the Hardware Overview listing, this is given as the Boot ROM Version, and typically looks like
IM171.0151.B00
In that, IM171 is the model identifier, here iMac17,1. The firmware version is then given in hexadecimal, with the major version first, followed by the minor version. So in that case, the major version is 0151 (337 decimal), and the minor version is B00 (2816). That is a higher number and thus more recent than 010F.B25, as the major version is greater, even though the minor version is lower.

What to do if your Mac’s EFI firmware is different from that shown

There are two reasons for the major version being higher than that shown:

  • Your Mac has installed an updater which has in turn installed a newer version of the EFI firmware. This may happen if you install a beta release of macOS, or could happen after service to your Mac. It may rarely occur if you download the latest Combo updater for macOS.
  • Your Mac has installed a spurious version of the EFI firmware, such as malware. You should be able to check that in High Sierra and above: see below for instructions.

If the installed version of EFI firmware has a major version which is lower than that shown, and you are running a recent version of macOS such as Sierra or later, download and install the last Combo updater and all subsequent Security Updates for the version of macOS which it is running, from Apple Support. Then check the firmware version again. Consider upgrading to High Sierra or later as appropriate.

EFI firmware updaters are now only distributed as part of macOS / OS X updates and upgrades: Apple does not provide them separately.

What about the minor version number (B00 or 00B)?

Apple used to use the minor version number as part of the numbering system, until High Sierra. Since then, only two values have been seen: B00 and 00B. This implies that Apple is no longer using it sequentially, but as an indicator.

Generally speaking, the minor version should be B00 on all more recent Mac models, including those which will be supported by Mojave. Models which now have the 00B minor version number instead are older, and include those which are unlikely to be supported by Mojave. However, B00 doesn’t guarantee that they will be supported by 10.14.

Is the list above wrong, as my Mac has a higher major version number than that shown?

The list above is based on the EFI firmware updates which are bundled in the latest macOS updates (standalone delta version). Your major version may be higher for several reasons, as explained above. This doesn’t make the lists wrong, nor does it necessarily make your Mac’s firmware wrong. Firmware updates are quite common in beta-releases of macOS, and a good reason for your Mac having a higher major version than that listed.

The main purpose of this article is to help you ensure that your EFI firmware is not out of date. If it is running the version listed, or a higher (later) version, then you should be content.

How can you check the integrity of your EFI firmware?

If you are concerned that something bad may have happened to your EFI firmware, and your Mac is running High Sierra or Mojave, you can run the eficheck tool to test this. Normally, this is run automatically every week, and you should be informed of any issues which it raises. But there’s no harm in running it if that gives you peace of mind.

Open Terminal, and in its command line type
/usr/libexec/firmwarecheckers/eficheck/eficheck --integrity-check

Once it completes, you should see a response like
EFI Version: MBP141.88Z.0173.B00.1802081002
Primary allowlist version match found. No changes detected in primary hashes.

In the first line of the response, this gives the Mac model (MBP141 = MacBook Pro 14,1), the major version (0173), the minor version (B00), and the build datestamp of that version (= [20]18/02/08 10:02).

If it doesn’t, save the result immediately and contact Apple support soonest, ready to quote to them the results of that check.

Fuller details about eficheck are given in this article.

Should you check your EFI firmware against the Allow List?

Although eficheck‘s Allow List is intended to ensure that your Mac’s EFI firmware is recent, it does not require that it is the current version, as listed above – it’s an Allow List. What it is primarily intended to do is check that nothing has tampered with your firmware. So its Allow List is content with older and newer firmware versions – it currently has more than 2,000 entries – but most importantly checks that the version installed is intact, as Apple expects it to be, and hasn’t been corrupted or altered.

Running eficheck as detailed above is the best way to perform that check. Looking through its Allow List won’t normally tell you the current version of the EFI firmware for your particular Mac, and can confuse.

What about SMC versions?

Isn’t EFI firmware complex enough for you? There is currently no way to check the integrity of other firmware, etc., and no one has even started to focus on SMC versions.

However, if you’re that curious, High Sierra and Mojave offer another firmware checker, which examines BCM5701 ethernet devices. In Terminal, type
/usr/libexec/firmwarecheckers/ethcheck/ethcheck --h
to see its usage information. The command
sudo /usr/libexec/firmwarecheckers/ethcheck/ethcheck --integrity-check
performs a check on your ethernet firmware, provided that your Mac has a real ethernet port. You can find the current version of the ethernet firmware listed in the Ethernet Cards section of System Information.

MacPro5,1

‘Cheesegrater’ Mac Pro models which are compatible with High Sierra and later, but prior to the ‘new’ Late 2013 model, with the designator MacPro5,1, are different when it comes to EFI firmware updates. In these, the update has to be initiated by the user, and doesn’t run automatically during macOS software update.

Because of this, they can only update their EFI firmware when a full installer app is run, and Apple only provides their firmware updates in full installer versions of macOS. To update the EFI firmware in a MacPro5,1, you will therefore have to download the latest full macOS installer app from the App Store, run that, and when prompted hold down the Power button on shutdown to trigger the ‘flash’ process.

When updating the firmware, the MacPro5,1 opens its optical disk drive. If the update were to fail, the Mac will power off leaving the optical drive open, allowing you to insert the firmware restore disk and power it back up to restore its old firmware. When the update is successful, the optical drive closes automatically, and the rest of the update then completes.

The current version of the MacPro5,1 EFI firmware after the macOS 10.13.6 update is now reported as being 0089 B00. If yours is earlier than that, you should download the full High Sierra updater app from the App Store and run that to perform the update.

(Thanks to David and Alexandre for explaining these quirks to me, and to Louis for the update info.)

(Sixth and final revision of 31 October 2018 for Mojave 10.14.1 and Security Updates for HS and Sierra.)