Show pageOld revisionsBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Working with EFI ====== Previous clusters' nodes used BIOS hardware interfaces. Nodes in CC3 prefer the use of EFI, to the point of requiring it in some cases (e.g. the in-rack storage server nodes). A basic knowledge of the EFI shell was invaluable in addressing hardware issues in nodes; summarized here is use of the EFI shell on the OCP2930w nodes. When the node is booted, the <DEL> or <F2> key enters the Aptio system configuration tool. This stage of node startup allows for changing properties of the hardware (e.g. enable/disable hyperthreading, configure boot order). On the final tab of this program, a specific boot device can be chosen to (this time only) override the standard boot order. Choosing **''UEFI: Built-in EFI Shell''** from the list enters that mode; when done in the shell, the ''exit'' command returns to the Aptio system configuration tool. When the EFI shell starts, it displays discovered device mappings: hard drives, USB keys, etc. Any devices on which a recognizable filesystem is found are assigned a mapping alias, e.g. ''fs1''. A filesystems can be explored by first selecting it and then navigating with the ''dir'' and ''cd'' commands: <code> : fs1 :Removable HardDisk - Alias hd43a0c0b0b blk1 PciRoot(0x0)/Pci(0x1D,0x0)/USB(0x0,0x0)/USB(0x2,0x0)/USB(0x1,0x0)/HD(1,MBR,0x3EF067C7,0x1A20C,0x4638) : Shell> fs1: fs1:\> dir Directory of: fs1:\ 09/05/17 01:36p <DIR> 2,048 EFI 0 File(s) 0 bytes 1 Dir(s) fs1:\> cd EFI\BOOT fs1:\EFI\BOOT> dir Directory of: fs1:\EFI\BOOT 09/05/17 01:36p <DIR> 2,048 . 09/05/17 01:36p <DIR> 2,048 .. 09/05/17 01:36p <DIR> 2,048 fonts 09/05/17 01:36p 1,296,176 BOOTX64.EFI 09/05/17 01:36p 1,262,816 mmx64.efi 09/05/17 01:36p 1,052,032 grubx64.efi 09/05/17 01:36p 1,027,395 BOOTIA32.EFI 09/05/17 01:36p 1,000,448 mmia32.efi 09/05/17 01:36p 732,544 grubia32.efi 09/05/17 01:36p 1,320 grub.cfg 8 File(s) 6,372,731 bytes 3 Dir(s) </code> This USB device had the CentOS 7 NetInstall image burned to it, and ''fs1'' is the EFI boot partition thereon. The installer can be booted by executing the appropriate EFI boot loader executable (in this case, ''BOOTX64.EFI''). ===== Devices ===== As a BIOS replacement, EFI needs to know about devices present in the system. Devices are organized in a tree structure. The EFI shell can display this tree: <code> Shell> devtree -b Device Tree Ctrl[03] Fv(61C0F511-A691-4F54-974F-B9A42172CE53) Ctrl[04] Fv(5C60F367-A505-419A-859E-2A4FF6CA6FE5) Ctrl[C8] VenHw(396C010D-219A-458A-BA7D-A54D092B4BE5,0100) Ctrl[DF] PciRoot(0x0) Ctrl[1C2] PciRoot(0x0)/Pci(0x0,0x0) Ctrl[1C3] PciRoot(0x0)/Pci(0x1,0x0) Ctrl[1C4] ATTO ExpressSAS H1288 Ctrl[203] ATA Micron_5100_MTFD U037 Ctrl[204] ATA Micron_5100_MTFD U037 Ctrl[212] FAT File System Ctrl[213] PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/SAS(0x500108600021FB59,0x0,0x1,NoTopology,0,0,0,0x0)/HD(2,GPT,C029C998-1B45-4AA2-BFBD-68237D88942E,0x64800,0x200000) Ctrl[214] PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/SAS(0x500108600021FB59,0x0,0x1,NoTopology,0,0,0,0x0)/HD(3,GPT,5778F2E3-4089-4A81-B472-40940CB03374,0x264800,0x800000) Ctrl[215] PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/SAS(0x500108600021FB59,0x0,0x1,NoTopology,0,0,0,0x0)/HD(4,GPT,EE4C1504-8F39-4856-AAD9-1BDAC727B81C,0xA64800,0x6400000) Ctrl[216] PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/SAS(0x500108600021FB59,0x0,0x1,NoTopology,0,0,0,0x0)/HD(5,GPT,E60E081A-C027-40BE-AD6B-6690FB2FBE09,0x6E64800,0x150BF800) Ctrl[205] SEAGATE ST8000NM0065 K004 Press ENTER to continue, 'q' to exit: </code> The ''-b'' flag has any EFI shell command page its output. The device tree can also be presented in alternate (flag) fashion: <code> Shell> devices -b C T D T Y C I R P F A L E G G #P #D #C Device Name == = = = == == == ============================================================= DF R - - - 1 42 PciRoot(0x0) E0 R - - - 1 4 PciRoot(0x1) 108 D - - 4 - - AMI Console Splitter 150 R - - - 1 1<UNKNOWN> 1C2 D - - 1 - - PciRoot(0x0)/Pci(0x0,0x0) 1C3 D - - 1 - - PciRoot(0x0)/Pci(0x1,0x0) 1C4 B X X 1 1 15 ATTO ExpressSAS H1288 1C8 D - - 1 - - PciRoot(0x0)/Pci(0x2,0x0) 1C9 D - - 1 - - PciRoot(0x0)/Pci(0x2,0x0)/Pci(0x0,0x0) 1CA D - - 1 - - PciRoot(0x0)/Pci(0x2,0x0)/Pci(0x0,0x1) 1CB D - - 1 - - PciRoot(0x0)/Pci(0x3,0x0) 1CC D - - 1 - - PciRoot(0x0)/Pci(0x3,0x2) 1CD D - - 1 - - PciRoot(0x0)/Pci(0x5,0x0) 1CE D - - 1 - - PciRoot(0x0)/Pci(0x5,0x1) 1CF D - - 1 - - PciRoot(0x0)/Pci(0x5,0x2) 1D0 D - - 1 - - PciRoot(0x0)/Pci(0x5,0x4) 1D1 D - - 1 - - PciRoot(0x0)/Pci(0x5,0x6) 1D2 D - - 1 - - PciRoot(0x0)/Pci(0x6,0x0) 1D3 D - - 1 - - PciRoot(0x0)/Pci(0x6,0x1) Press ENTER to continue, 'q' to exit: : 1E7 B X X 1 1 1 PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0) : </code> In this case, we see that the **ATTO ExpressSAS H1288** adapter (with device handle ''1C4''): * Is a bus device (TYPE "B") * Is configurable (CFG "X") * Has diagnostics capabilities (DIAG "X") * Has 15 child devices (#C) ===== Drivers ===== Devices may have an EFI driver associated with them: <code> Shell> drivers -b T D D Y C I R P F A V VERSION E G G #D #C DRIVER NAME IMAGE NAME == ======== = = = == == =================================== =================== 7F 0000000B D - - 1 - AMI USB Driver Uhcd 81 0000000B B - - 1 4 USB bus Uhcd 82 00000002 ? - - - - USB Hid driver Uhcd 83 00000001 D - - 2 - USB Mass Storage driver Uhcd AB 00000001 ? - - - - AMI AHCI BUS Driver Ahci AE 00000010 B - - 2 2 <UNKNOWN> SerialIo B1 00000001 ? - - - - AMI NVMe BUS Driver Nvme 102 00000001 ? - - - - <UNKNOWN> SBDXE : 185 00000024 B - - 1 1 BIOS[INT10] Video Driver CsmVideo 186 00000010 ? - - - - <UNKNOWN> <UNKNOWN> 1C6 01230001 B X X 1 15 ATTO ExpressSAS HBA 1.35.0f1 Offset(0x25C38,0x4 1E8 06032700 B X X 1 1 Intel(R) PRO/1000 6.3.27 PCI-E MemoryMapped(0x3,0 </code> Driver ''1C6'' manages the SAS HBA and is configurable: <code> Shell> devcfg -s 1C6 </code> For the ATTO H1288, the driver configurator can be used to setup RAID groups, etc. The Intel ethernet adapter is managed by driver ''1E8'': <code> Shell> drvcfg 1e8 Configurable Components Drv[1E8] Ctrl[1E7] Lang[eng] </code> For the ethernet adapter, the specific device managed by the driver must be specified: <code> Shell> devcfg -s 1E8 1E7 </code> technical/cc3-build/efi.txt Last modified: 2018-04-27 12:45by 127.0.0.1