10

RFC 4578 defines various machine architectures for PXE as follows:

Type   Architecture Name
----   -----------------
  0    Intel x86PC
  1    NEC/PC98
  2    EFI Itanium
  3    DEC Alpha
  4    Arc x86
  5    Intel Lean Client
  6    EFI IA32
  7    EFI BC
  8    EFI Xscale
  9    EFI x86-64

I've tested out two IBM machines (HS22 blade, x3550M3) and they both do EFI PXE boot using the 'EFI BC' architecture.

What does it stand for? When is it used? Why is IBM using it instead of 'EFI x86-64'?

Flow
  • 958
  • 9
  • 15
MikeyB
  • 38,725
  • 10
  • 102
  • 186

2 Answers2

8

EFI BC = EFI Byte Code. EFI Byte Code is a processor agnostic language for device drivers, PXE, and other EFI extensions so that the code can be written once and run on any supporting platform.

MikeyB
  • 38,725
  • 10
  • 102
  • 186
Chris S
  • 77,337
  • 11
  • 120
  • 212
7

There’s a conflict between the architecture types defined in RFC4578 DHCP PXE Options and the IANA registered Processor Architecture Types: the latter notes that x64 UEFI is type 00:07 which seems to be the value used in practice (ref. https://www.syslinux.org/archives/2014-October/022684.html).

There's an Errata ID 4624 filed on the RFC. It states that 7 should be EFI x86-64 and 9 should be EFI BC.

Therefore, the IANA registry (which is more extensive and should be the authoritative source for this information post RFC publication as it is maintained and updated where the RFC is not) is correct and the original RFC is wrong.

insertcoin
  • 171
  • 1
  • 5