How to detect ARM architecture from iPXE script? - Printable Version +- iPXE discussion forum (https://forum.ipxe.org) +-- Forum: iPXE user forums (/forumdisplay.php?fid=1) +--- Forum: General (/forumdisplay.php?fid=2) +--- Thread: How to detect ARM architecture from iPXE script? (/showthread.php?tid=14907) |
How to detect ARM architecture from iPXE script? - korekhov - 2018-10-25 19:16 Hi, folks! I'm adding AMR64 systems to our environment and would love to use the same existing iPXE scripts for our tasks, just need to be able to determine the architecture from within iPXE to define a proper kernel/initrd paths to pass. Something of a mix between "platform" and "cpuid" commands, I presume. I'd love to be more precise than running this, if possible, as it is not exactly a bulletproof "solution": cpuid --ext 29 && set arch x86_64 || set arch arm64 Any suggestions? Thanks! RE: How to detect ARM architecture from iPXE script? - NiKiZe - 2018-10-25 19:19 Linked from the platform settings page is http://ipxe.org/cfg/buildarch RE: How to detect ARM architecture from iPXE script? - korekhov - 2018-10-26 21:38 Well, just as that page says, "buildarch" is not a running arch, but where it was built. Not what I'm looking for. I need to detect actual platform where my iPXE script runs. Is that possible? RE: How to detect ARM architecture from iPXE script? - NiKiZe - 2018-10-26 22:05 (2018-10-26 21:38)korekhov Wrote: Well, just as that page says, "buildarch" is not a running arch, but where it was built. Not what I'm looking for. I need to detect actual platform where my iPXE script runs. "CPU architecture for which this version of iPXE was compiled" not "where it was built" - what makes you say this? It matches the arch part of the build command, as described in ipxe.org/appnote/buildtargets If your iPXE is built for arm64 - it will be running on arm64 since it can't run on arm32, I'm not sure if you can run arm32 code on arm64, if you can then you will need to resort to cpu checks for that one case. For x86, just as that page says, you will need to check cpuid if you have an i386 build to see if it is running on 64-bit hardware. Code: set arch ${buildarch} I do not know what is needed to detect arm64, so that needs some expertise from elsewhere. RE: How to detect ARM architecture from iPXE script? - MultimediaMan - 2018-10-28 00:39 I don't have any ARM hardware (yet), but does the ${platform} variable offer up any clues on the running hardware? RE: How to detect ARM architecture from iPXE script? - NiKiZe - 2018-10-28 04:50 (2018-10-28 00:39)MultimediaMan Wrote: I don't have any ARM hardware (yet), but does the ${platform} variable offer up any clues on the running hardware? http://ipxe.org/cfg/platform - it has 3 possible values, it is set as build time just as buildarch. But builds are limited on what they can run on as described above, for example, it is not possible for an x86_64 build to run on i386. or for an efi build to run in pcbios mode. RE: How to detect ARM architecture from iPXE script? - korekhov - 2018-10-29 18:54 (2018-10-26 22:05)NiKiZe Wrote: If your iPXE is built for arm64 - it will be running on arm64 since it can't run on arm32, I'm not sure if you can run arm32 code on arm64, if you can then you will need to resort to cpu checks for that one case. On a second thought - I understand now what you're saying. I guess, I did not realize that I couldn't build say ARM iPXE on x86 system and so thought I could not use the ${buildarch}. Thanks! RE: How to detect ARM architecture from iPXE script? - NiKiZe - 2018-10-29 19:04 (2018-10-29 18:54)korekhov Wrote: On a second thought - I understand now what you're saying. I guess, I did not realize that I couldn't build say ARM iPXE on x86 system and so thought I could not use the ${buildarch}. Just to be clear. You can crosscompile iPXE for ARM on x86 no problem. The buildarch is still what it is "built for" not what it is "built on" take the build command: Code: make bin-${buildarch}-${platform}/snp.efi so make bin-arm32-efi/snp.efi will have platform set to efi, and buildarch set to arm32. again see http://ipxe.org/appnote/buildtargets RE: How to detect ARM architecture from iPXE script? - korekhov - 2018-10-30 01:59 Yep, all clear now. But, I noticed that iPXE on ARM64 does not have several built-in vars any more: iPXE> echo ${manufacturer} iPXE> echo ${product} iPXE> echo ${buildarch} arm64 iPXE> echo ${platform} efi iPXE> Is this expected? Any ways around that? RE: How to detect ARM architecture from iPXE script? - NiKiZe - 2018-10-30 05:45 ${manufacturer} and ${product} comes from smbios data, what is the smbios data on the device, and is smbios structures even supported on ARM? If you start linux on the device and run dmidecode, what do you get then? RE: How to detect ARM architecture from iPXE script? - MultimediaMan - 2018-10-30 13:41 (2018-10-30 05:45)NiKiZe Wrote: ${manufacturer} and ${product} comes from smbios data, what is the smbios data on the device, and is smbios structures even supported on ARM? IIRC, dmidecode is an x86 Binary only. ARM, ARM64 and PPC have no analogue. RE: How to detect ARM architecture from iPXE script? - ktran - 2018-10-30 17:59 Hi all, In a shell script, the ARM64 architecture can be detected by the following command 'uname -p' as in sh shell "if (`uname -p` == aarch64). I hope this helps. RE: How to detect ARM architecture from iPXE script? - NiKiZe - 2018-10-30 21:36 (2018-10-30 13:41)MultimediaMan Wrote:It seems that dmidecode "works" on ARM, but there is generally no dmi data to decode - and as such there is also no data for iPXE to decode - and that was my point.(2018-10-30 05:45)NiKiZe Wrote: ${manufacturer} and ${product} comes from smbios data, what is the smbios data on the device, and is smbios structures even supported on ARM? RE: How to detect ARM architecture from iPXE script? - ktran - 2018-10-30 21:49 I am sending a sample of dmidecode using a TX2 board. Hope this helps. Kiet # ./dmidecode.sh + dmidecode -t bios # dmidecode 3.0 Getting SMBIOS data from sysfs. SMBIOS 3.1.1 present. # SMBIOS implementations newer than version 3.0 are not # fully supported by this version of dmidecode. Handle 0x0000, DMI type 0, 26 bytes BIOS Information Vendor: EDK II Version: 0ACKL024 Release Date: 09/26/2018 Address: 0xF0000 Runtime Size: 64 kB ROM Size: 16384 kB Characteristics: PCI is supported BIOS is upgradeable BIOS shadowing is allowed Boot from CD is supported Selectable boot is supported BIOS ROM is socketed ACPI is supported BIOS boot specification is supported Targeted content distribution is supported UEFI is supported BIOS Revision: 7.1 Handle 0x0007, DMI type 13, 22 bytes BIOS Language Information Language Description Format: Long Installable Languages: 1 en|US|iso8859-1 Currently Installed Language: en|US|iso8859-1 Handle 0x0024, DMI type 13, 22 bytes BIOS Language Information Language Description Format: Abbreviated Installable Languages: 1 enUS Currently Installed Language: enUS + dmidecode -t system # dmidecode 3.0 Getting SMBIOS data from sysfs. SMBIOS 3.1.1 present. # SMBIOS implementations newer than version 3.0 are not # fully supported by this version of dmidecode. Handle 0x0001, DMI type 1, 27 bytes System Information Manufacturer: To be filled by O.E.M. Product Name: Saber Version: 1.0 Serial Number: To be filled by O.E.M. UUID: 03000200-0400-0500-0006-000700080009 Wake-up Type: Power Switch SKU Number: SABER SKU Family: CN99XX Handle 0x0006, DMI type 12, 5 bytes System Configuration Options Option 1: Default string Handle 0x0009, DMI type 32, 11 bytes System Boot Information Status: No errors detected Handle 0x0019, DMI type 15, 73 bytes System Event Log Area Length: 0 bytes Header Start Offset: 0x0000 Header Length: 16 bytes Data Start Offset: 0x0010 Access Method: Memory-mapped physical 32-bit address Access Address: 0xC0CB0000 Status: Valid, Not Full Change Token: 0x00000002 Header Format: Type 1 Supported Log Type Descriptors: 25 Descriptor 1: Single-bit ECC memory error Data Format 1: Multiple-event handle Descriptor 2: Multi-bit ECC memory error Data Format 2: Multiple-event handle Descriptor 3: Parity memory error Data Format 3: None Descriptor 4: Bus timeout Data Format 4: None Descriptor 5: I/O channel block Data Format 5: None Descriptor 6: Software NMI Data Format 6: None Descriptor 7: POST memory resize Data Format 7: None Descriptor 8: POST error Data Format 8: POST results bitmap Descriptor 9: PCI parity error Data Format 9: Multiple-event handle Descriptor 10: PCI system error Data Format 10: Multiple-event handle Descriptor 11: CPU failure Data Format 11: None Descriptor 12: EISA failsafe timer timeout Data Format 12: None Descriptor 13: Correctable memory log disabled Data Format 13: None Descriptor 14: Logging disabled Data Format 14: None Descriptor 15: System limit exceeded Data Format 15: None Descriptor 16: Asynchronous hardware timer expired Data Format 16: None Descriptor 17: System configuration information Data Format 17: None Descriptor 18: Hard disk information Data Format 18: None Descriptor 19: System reconfigured Data Format 19: None Descriptor 20: Uncorrectable CPU-complex error Data Format 20: None Descriptor 21: Log area reset/cleared Data Format 21: None Descriptor 22: System boot Data Format 22: None Descriptor 23: End of log Data Format 23: None Descriptor 24: OEM-specific Data Format 24: OEM-specific Descriptor 25: OEM-specific Data Format 25: OEM-specific + dmidecode -t baseboard # dmidecode 3.0 Getting SMBIOS data from sysfs. SMBIOS 3.1.1 present. # SMBIOS implementations newer than version 3.0 are not # fully supported by this version of dmidecode. Handle 0x0002, DMI type 2, 15 bytes Base Board Information Manufacturer: GIGABYTE Product Name: Saber Version: 1.0 Serial Number: 2.0G1752-GBS000015 Asset Tag: To be filled by O.E.M. Features: Board is a hosting board Board is replaceable Location In Chassis: Default string Chassis Handle: 0x0003 Type: Motherboard Contained Object Handles: 0 Handle 0x0004, DMI type 10, 6 bytes On Board Device Information Type: Unknown Status: Enabled Description: Device 1 + dmidecode -t chassis # dmidecode 3.0 Getting SMBIOS data from sysfs. SMBIOS 3.1.1 present. # SMBIOS implementations newer than version 3.0 are not # fully supported by this version of dmidecode. Handle 0x0003, DMI type 3, 22 bytes Chassis Information Manufacturer: To be filled by O.E.M. Type: Rack Mount Chassis Lock: Not Present Version: 1.0 Serial Number: GIG1PA612A0015 Asset Tag: To be filled by O.E.M. Boot-up State: Safe Power Supply State: Safe Thermal State: Safe Security Status: None OEM Information: 0x00000000 Height: Unspecified Number Of Power Cords: 1 Contained Elements: 0 SKU Number: Default string + dmidecode -t processor # dmidecode 3.0 Getting SMBIOS data from sysfs. SMBIOS 3.1.1 present. # SMBIOS implementations newer than version 3.0 are not # fully supported by this version of dmidecode. Handle 0x0025, DMI type 4, 48 bytes Processor Information Socket Designation: Socket 0 Type: Central Processor Family: ARM Manufacturer: Cavium Inc. ID: F1 0A 1F 43 00 00 00 00 Version: Cavium ThunderX2® CPU CN9980 v2.1 @ 2.20GHz Voltage: 0.8 V External Clock: 33 MHz Max Speed: 2500 MHz Current Speed: 2200 MHz Status: Populated, Enabled Upgrade: Other L1 Cache Handle: 0x0026 L2 Cache Handle: 0x0028 L3 Cache Handle: 0x0029 Serial Number: 000011DF-2A0A3312 Asset Tag: Not Specified Part Number: CN9980-2200LG4077-Y21-G Core Count: 32 Core Enabled: 32 Thread Count: 128 Characteristics: 64-bit capable Multi-Core Hardware Thread Execute Protection Enhanced Virtualization Power/Performance Control Handle 0x0043, DMI type 4, 48 bytes Processor Information Socket Designation: Socket 1 Type: Central Processor Family: ARM Manufacturer: Cavium Inc. ID: F1 0A 1F 43 00 00 00 00 Version: Cavium ThunderX2® CPU CN9980 v2.1 @ 2.20GHz Voltage: 0.8 V External Clock: 33 MHz Max Speed: 2500 MHz Current Speed: 2200 MHz Status: Populated, Enabled Upgrade: Other L1 Cache Handle: 0x0044 L2 Cache Handle: 0x0046 L3 Cache Handle: 0x0047 Serial Number: 000011DF-3A0A3235 Asset Tag: Not Specified Part Number: CN9980-2200LG4077-Y21-G Core Count: 32 Core Enabled: 32 Thread Count: 128 Characteristics: 64-bit capable Multi-Core Hardware Thread Execute Protection Enhanced Virtualization Power/Performance Control + dmidecode -t memory # dmidecode 3.0 Getting SMBIOS data from sysfs. SMBIOS 3.1.1 present. # SMBIOS implementations newer than version 3.0 are not # fully supported by this version of dmidecode. Handle 0x0037, DMI type 16, 23 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: Other Maximum Capacity: 2 TB Error Information Handle: Not Provided Number Of Devices: 8 Handle 0x0038, DMI type 17, 40 bytes Memory Device Array Handle: 0x0037 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM_A0 Bank Locator: N0 Type: DDR4 Type Detail: Registered (Buffered) Speed: 2666 MHz Manufacturer: Micron Technology Serial Number: 420983499 Asset Tag: Not Specified Part Number: 18ASF2G72PDZ-2G6H1 Rank: 2 Configured Clock Speed: 2666 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Handle 0x0039, DMI type 17, 40 bytes Memory Device Array Handle: 0x0037 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM_B0 Bank Locator: N0 Type: DDR4 Type Detail: Registered (Buffered) Speed: 2666 MHz Manufacturer: Micron Technology Serial Number: 420983632 Asset Tag: Not Specified Part Number: 18ASF2G72PDZ-2G6H1 Rank: 2 Configured Clock Speed: 2666 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Handle 0x003A, DMI type 17, 40 bytes Memory Device Array Handle: 0x0037 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM_C0 Bank Locator: N0 Type: DDR4 Type Detail: Registered (Buffered) Speed: 2666 MHz Manufacturer: Micron Technology Serial Number: 420983836 Asset Tag: Not Specified Part Number: 18ASF2G72PDZ-2G6H1 Rank: 2 Configured Clock Speed: 2666 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Handle 0x003B, DMI type 17, 40 bytes Memory Device Array Handle: 0x0037 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM_D0 Bank Locator: N0 Type: DDR4 Type Detail: Registered (Buffered) Speed: 2666 MHz Manufacturer: Micron Technology Serial Number: 420983856 Asset Tag: Not Specified Part Number: 18ASF2G72PDZ-2G6H1 Rank: 2 Configured Clock Speed: 2666 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Handle 0x003C, DMI type 17, 40 bytes Memory Device Array Handle: 0x0037 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM_E0 Bank Locator: N0 Type: DDR4 Type Detail: Registered (Buffered) Speed: 2666 MHz Manufacturer: Micron Technology Serial Number: 420983372 Asset Tag: Not Specified Part Number: 18ASF2G72PDZ-2G6H1 Rank: 2 Configured Clock Speed: 2666 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Handle 0x003D, DMI type 17, 40 bytes Memory Device Array Handle: 0x0037 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM_F0 Bank Locator: N0 Type: DDR4 Type Detail: Registered (Buffered) Speed: 2666 MHz Manufacturer: Micron Technology Serial Number: 420983320 Asset Tag: Not Specified Part Number: 18ASF2G72PDZ-2G6H1 Rank: 2 Configured Clock Speed: 2666 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Handle 0x003E, DMI type 17, 40 bytes Memory Device Array Handle: 0x0037 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM_G0 Bank Locator: N0 Type: DDR4 Type Detail: Registered (Buffered) Speed: 2666 MHz Manufacturer: Micron Technology Serial Number: 420983313 Asset Tag: Not Specified Part Number: 18ASF2G72PDZ-2G6H1 Rank: 2 Configured Clock Speed: 2666 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Handle 0x003F, DMI type 17, 40 bytes Memory Device Array Handle: 0x0037 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM_H0 Bank Locator: N0 Type: DDR4 Type Detail: Registered (Buffered) Speed: 2666 MHz Manufacturer: Micron Technology Serial Number: 420983279 Asset Tag: Not Specified Part Number: 18ASF2G72PDZ-2G6H1 Rank: 2 Configured Clock Speed: 2666 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Handle 0x004E, DMI type 16, 23 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: Other Maximum Capacity: 2 TB Error Information Handle: Not Provided Number Of Devices: 8 Handle 0x004F, DMI type 17, 40 bytes Memory Device Array Handle: 0x004E Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM_I0 Bank Locator: N1 Type: DDR4 Type Detail: Registered (Buffered) Speed: 2666 MHz Manufacturer: Micron Technology Serial Number: 420983901 Asset Tag: Not Specified Part Number: 18ASF2G72PDZ-2G6H1 Rank: 2 Configured Clock Speed: 2666 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Handle 0x0050, DMI type 17, 40 bytes Memory Device Array Handle: 0x004E Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM_J0 Bank Locator: N1 Type: DDR4 Type Detail: Registered (Buffered) Speed: 2666 MHz Manufacturer: Micron Technology Serial Number: 420983515 Asset Tag: Not Specified Part Number: 18ASF2G72PDZ-2G6H1 Rank: 2 Configured Clock Speed: 2666 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Handle 0x0051, DMI type 17, 40 bytes Memory Device Array Handle: 0x004E Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM_K0 Bank Locator: N1 Type: DDR4 Type Detail: Registered (Buffered) Speed: 2666 MHz Manufacturer: Micron Technology Serial Number: 420983622 Asset Tag: Not Specified Part Number: 18ASF2G72PDZ-2G6H1 Rank: 2 Configured Clock Speed: 2666 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Handle 0x0052, DMI type 17, 40 bytes Memory Device Array Handle: 0x004E Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM_L0 Bank Locator: N1 Type: DDR4 Type Detail: Registered (Buffered) Speed: 2666 MHz Manufacturer: Micron Technology Serial Number: 420983725 Asset Tag: Not Specified Part Number: 18ASF2G72PDZ-2G6H1 Rank: 2 Configured Clock Speed: 2666 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Handle 0x0053, DMI type 17, 40 bytes Memory Device Array Handle: 0x004E Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM_M0 Bank Locator: N1 Type: DDR4 Type Detail: Registered (Buffered) Speed: 2666 MHz Manufacturer: Micron Technology Serial Number: 420983869 Asset Tag: Not Specified Part Number: 18ASF2G72PDZ-2G6H1 Rank: 2 Configured Clock Speed: 2666 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Handle 0x0054, DMI type 17, 40 bytes Memory Device Array Handle: 0x004E Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM_N0 Bank Locator: N1 Type: DDR4 Type Detail: Registered (Buffered) Speed: 2666 MHz Manufacturer: Micron Technology Serial Number: 420983306 Asset Tag: Not Specified Part Number: 18ASF2G72PDZ-2G6H1 Rank: 2 Configured Clock Speed: 2666 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Handle 0x0055, DMI type 17, 40 bytes Memory Device Array Handle: 0x004E Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM_O0 Bank Locator: N1 Type: DDR4 Type Detail: Registered (Buffered) Speed: 2666 MHz Manufacturer: Micron Technology Serial Number: 420983552 Asset Tag: Not Specified Part Number: 18ASF2G72PDZ-2G6H1 Rank: 2 Configured Clock Speed: 2666 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Handle 0x0056, DMI type 17, 40 bytes Memory Device Array Handle: 0x004E Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM_P0 Bank Locator: N1 Type: DDR4 Type Detail: Registered (Buffered) Speed: 2666 MHz Manufacturer: Micron Technology Serial Number: 420983218 Asset Tag: Not Specified Part Number: 18ASF2G72PDZ-2G6H1 Rank: 2 Configured Clock Speed: 2666 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V + dmidecode -t cache # dmidecode 3.0 Getting SMBIOS data from sysfs. SMBIOS 3.1.1 present. # SMBIOS implementations newer than version 3.0 are not # fully supported by this version of dmidecode. Handle 0x0026, DMI type 7, 27 bytes Cache Information Socket Designation: Socket 0 Cache L1I Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Back Location: Internal Installed Size: 1024 kB Maximum Size: 1024 kB Supported SRAM Types: Other Installed SRAM Type: Other Speed: Unknown Error Correction Type: None System Type: Instruction Associativity: 8-way Set-associative Handle 0x0027, DMI type 7, 27 bytes Cache Information Socket Designation: Socket 0 Cache L1D Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Back Location: Internal Installed Size: 1024 kB Maximum Size: 1024 kB Supported SRAM Types: Other Installed SRAM Type: Other Speed: Unknown Error Correction Type: Single-bit ECC System Type: Data Associativity: 8-way Set-associative Handle 0x0028, DMI type 7, 27 bytes Cache Information Socket Designation: Socket 0 Cache L2 Configuration: Enabled, Not Socketed, Level 2 Operational Mode: Write Back Location: Internal Installed Size: 8192 kB Maximum Size: 8192 kB Supported SRAM Types: Other Installed SRAM Type: Other Speed: Unknown Error Correction Type: Single-bit ECC System Type: Data Associativity: 8-way Set-associative Handle 0x0029, DMI type 7, 27 bytes Cache Information Socket Designation: Socket 0 Cache L3 Configuration: Enabled, Not Socketed, Level 3 Operational Mode: Write Back Location: Internal Installed Size: 32768 kB Maximum Size: 32768 kB Supported SRAM Types: Other Installed SRAM Type: Other Speed: Unknown Error Correction Type: Single-bit ECC System Type: Data Associativity: 32-way Set-associative Handle 0x0044, DMI type 7, 27 bytes Cache Information Socket Designation: Socket 1 Cache L1I Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Back Location: Internal Installed Size: 1024 kB Maximum Size: 1024 kB Supported SRAM Types: Other Installed SRAM Type: Other Speed: Unknown Error Correction Type: None System Type: Instruction Associativity: 8-way Set-associative Handle 0x0045, DMI type 7, 27 bytes Cache Information Socket Designation: Socket 1 Cache L1D Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Back Location: Internal Installed Size: 1024 kB Maximum Size: 1024 kB Supported SRAM Types: Other Installed SRAM Type: Other Speed: Unknown Error Correction Type: Single-bit ECC System Type: Data Associativity: 8-way Set-associative Handle 0x0046, DMI type 7, 27 bytes Cache Information Socket Designation: Socket 1 Cache L2 Configuration: Enabled, Not Socketed, Level 2 Operational Mode: Write Back Location: Internal Installed Size: 8192 kB Maximum Size: 8192 kB Supported SRAM Types: Other Installed SRAM Type: Other Speed: Unknown Error Correction Type: Single-bit ECC System Type: Data Associativity: 8-way Set-associative Handle 0x0047, DMI type 7, 27 bytes Cache Information Socket Designation: Socket 1 Cache L3 Configuration: Enabled, Not Socketed, Level 3 Operational Mode: Write Back Location: Internal Installed Size: 32768 kB Maximum Size: 32768 kB Supported SRAM Types: Other Installed SRAM Type: Other Speed: Unknown Error Correction Type: Single-bit ECC System Type: Data Associativity: 32-way Set-associative + dmidecode -t connector # dmidecode 3.0 Getting SMBIOS data from sysfs. SMBIOS 3.1.1 present. # SMBIOS implementations newer than version 3.0 are not # fully supported by this version of dmidecode. Handle 0x002A, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: 0:SATA_0 Internal Connector Type: SAS/SATA Plug Receptacle External Reference Designator: Not Specified External Connector Type: None Port Type: SATA Handle 0x002B, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: 0:SATA_1 Internal Connector Type: SAS/SATA Plug Receptacle External Reference Designator: Not Specified External Connector Type: None Port Type: SATA Handle 0x002C, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: Not Specified Internal Connector Type: None External Reference Designator: USB1 External Connector Type: Access Bus (USB) Port Type: USB Handle 0x002D, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: Not Specified Internal Connector Type: None External Reference Designator: USB2 External Connector Type: Access Bus (USB) Port Type: USB Handle 0x002E, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: COM Internal Connector Type: Other External Reference Designator: Not Specified External Connector Type: None Port Type: 8251 Compatible Handle 0x002F, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: DBG_COM Internal Connector Type: Other External Reference Designator: Not Specified External Connector Type: None Port Type: 8251 Compatible Handle 0x0030, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: Not Specified Internal Connector Type: None External Reference Designator: 0:ETH_0 External Connector Type: RJ-45 Port Type: Network Port Handle 0x0031, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: Not Specified Internal Connector Type: None External Reference Designator: BMC External Connector Type: RJ-45 Port Type: Network Port Handle 0x0048, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: Not Specified Internal Connector Type: None External Reference Designator: 1:ETH_0 External Connector Type: RJ-45 Port Type: Network Port + dmidecode -t slot # dmidecode 3.0 Getting SMBIOS data from sysfs. SMBIOS 3.1.1 present. # SMBIOS implementations newer than version 3.0 are not # fully supported by this version of dmidecode. Handle 0x0032, DMI type 9, 17 bytes System Slot Information Designation: PCIe Slot 0 Type: x8 PCI Express 3 Current Usage: Available Length: Short ID: 0 Characteristics: 3.3 V is provided PME signal is supported Bus Address: 0000:01:00.0 Handle 0x0033, DMI type 9, 17 bytes System Slot Information Designation: PCIe Slot 8 Type: x16 PCI Express 3 Current Usage: In Use Length: Long ID: 8 Characteristics: 3.3 V is provided PME signal is supported Bus Address: 0000:09:00.0 Handle 0x0034, DMI type 9, 17 bytes System Slot Information Designation: PCIe Slot 2 Type: x4 PCI Express 3 Current Usage: Available Length: Short ID: 2 Characteristics: 3.3 V is provided PME signal is supported Bus Address: 0000:03:00.0 Handle 0x0035, DMI type 9, 17 bytes System Slot Information Designation: PCIe Slot 3 Type: x4 PCI Express 3 Current Usage: Available Length: Short ID: 3 Characteristics: 3.3 V is provided PME signal is supported Bus Address: 0000:04:00.0 Handle 0x0036, DMI type 9, 17 bytes System Slot Information Designation: PCIe Slot 4 Type: x16 PCI Express 3 Current Usage: In Use Length: Short ID: 4 Characteristics: 3.3 V is provided PME signal is supported Bus Address: 0000:05:00.0 Handle 0x0049, DMI type 9, 17 bytes System Slot Information Designation: PCIe Slot 16 Type: x4 PCI Express 3 Current Usage: Available Length: Short ID: 16 Characteristics: 3.3 V is provided PME signal is supported Bus Address: 0000:83:00.0 Handle 0x004A, DMI type 9, 17 bytes System Slot Information Designation: PCIe Slot 17 Type: x4 PCI Express 3 Current Usage: Available Length: Short ID: 17 Characteristics: 3.3 V is provided PME signal is supported Bus Address: 0000:84:00.0 Handle 0x004B, DMI type 9, 17 bytes System Slot Information Designation: PCIe Slot 18 Type: x16 PCI Express 3 Current Usage: Available Length: Short ID: 18 Characteristics: 3.3 V is provided PME signal is supported Bus Address: 0000:85:00.0 Handle 0x004C, DMI type 9, 17 bytes System Slot Information Designation: PCIe Slot 22 Type: x16 PCI Express 3 Current Usage: Available Length: Long ID: 22 Characteristics: 3.3 V is provided PME signal is supported Bus Address: 0000:89:00.0 Handle 0x004D, DMI type 9, 17 bytes System Slot Information Designation: PCIe Slot 26 Type: x8 PCI Express 3 Current Usage: In Use Length: Short ID: 26 Characteristics: 3.3 V is provided PME signal is supported Bus Address: 0000:8d:00.0 RE: How to detect ARM architecture from iPXE script? - korekhov - 2018-10-31 20:35 Another question - why iPXE is complaining about kernel not being EFI while stock grubaa64.efi (from Ubuntu 18.04) has no problem with it? Am I missing something in iPXE setup? >>Checking Media Presence...... Downloading NBP file... Succeed to download NBP file. iPXE initialising devices...ok iPXE 1.0.0+ (975120) -- Open Source Network Boot Firmware -- http://ipxe.org Features: DNS HTTP HTTPS iSCSI TFTP VLAN AoE EFI Menu iPXE 2018-10-25 running on arm64 architecture. Configuring (net0 d4:5df:1d:ef:f0)........... ....... ok tftp://10.20.109.97/pxelinux.cfg/01-d4-5d-df-1d-ef-f0.ipxe... No such file or directory (http://ipxe.org/2d12608e) tftp://10.20.109.97/pxelinux.cfg/default.ipxe... ok overrides.ipxe... ok MiniOS version u18.04.1-arm64 on machine (arm64). http://10.43.184.12/ims/os-profiles/minios/u18.04.1-arm64/casper/vmlinuz... ok Could not select: Exec format error (http://ipxe.org/2e008081) Could not boot: Exec format error (http://ipxe.org/2e008081) iPXE> According to http://ipxe.org/err/2e0080, iPXE is most probably tripping over this: Quote:If you are trying to load a Linux kernel, make sure it is build with CONFIG_EFI_STUB and that it is a working EFI binary. But again, the same vmlinuz works with grub2 w/o any issues. Is iPXE missing some features that grub2 posses that allows it not to care if the kernel is EFI or not? If so, any pointers on how exactly to rebuild vmlinuz with CONFIG_EFI_STUB? Strangely enough, I'm having hard time figuring this mostly because grub2 just does not seem to care so nobody needs to rebuild their kernel, I guess. Thanks! Thanks! RE: How to detect ARM architecture from iPXE script? - NiKiZe - 2018-10-31 21:20 (2018-10-31 20:35)korekhov Wrote: Another question - why iPXE is complaining about kernel not being EFI while stock grubaa64.efi (from Ubuntu 18.04) has no problem with it?Because grub has support for booting it as non EFI kernel - which might result in that EFI features are not available inside of your OS. (2018-10-31 20:35)korekhov Wrote: Could not boot: Exec format error (http://ipxe.org/2e008081)Yep, And thanks for properly including the error message with URL, also thanks for reading that page properly before asking. (2018-10-31 20:35)korekhov Wrote: But again, the same vmlinuz works with grub2 w/o any issues. Is iPXE missing some features that grub2 posses that allows it not to care if the kernel is EFI or not?Again this is because grub runs it as an kernel, instead of an EFI. This is not a "missing" feature in iPXE, but rather an security consideration, and so far a selected choice to not support execution of anything in EFI mode, other then via the firmware load_image function. You can see the source code for this in the error url (2018-10-31 20:35)korekhov Wrote: If so, any pointers on how exactly to rebuild vmlinuz with CONFIG_EFI_STUB? Strangely enough, I'm having hard time figuring this mostly because grub2 just does not seem to care so nobody needs to rebuild their kernel, I guess.Where is the kernel from? Ask the source to build it properly, or maybe there already is a kernel that is more suitable to use already. If not then modify your kernel config file and set CONFIG_EFI_STUB=Y is the easiest way, but searching for the config option gives several pages with great information, one example is https://wiki.archlinux.org/index.php/EFISTUB One possible reason for this issue is also that you have an EFI capable kernel, but the 64/32 bit does not match between kernel and firmware mode, they must match the firmware. (CPU support is not relevant here) RE: How to detect ARM architecture from iPXE script? - korekhov - 2018-10-31 22:05 Quote:One possible reason for this issue is also that you have an EFI capable kernel, but the 64/32 bit does not match between kernel and firmware mode, they must match the firmware. (CPU support is not relevant here) Let me do the same steps for x86 and if resulting vmlinuz will work in iPXE, then I can take this to Cavium to fix. Thanks! |