I ran into an ARM server that describes its system interface only via the SPMI ACPI table and not via SMBIOS. freeipmi has SPMI support, but its implementation accesses ACPI tables using /dev/mem, which isn't safe to do on ARM. In fact, this code is #ifdef'd out for ARM platforms.
This series teaches freeipmi how to parse ACPI tables out of sysfs, keeping the fallback /dev/mem implementation as a fallback. It also fixes a couple of apparent bugs in the SPMI parsing itself. Tested on a HiSilicon D06 ARM Server, and 4 x86 servers: HP ProLiant DL165 G7 HP ProLiant DL385 G7 QuantaGrid D52B Supermicro Super Server I've actually not been able to get the existing /dev/mem code to work on any platform I've tried myself, so I was unable to regression test it. dann frazier (5): Don't try to separate the header from the ACPI table data Split RSDT/XSDT parsing into new function Add support for parsing SPMI table exposed via sysfs Allow sysfs SPMI parsing on ARM platforms Correct order of bytes in specification_revision field of ACPI SPMI table libfreeipmi/locate/ipmi-locate-acpi-spmi.c | 240 ++++++++++++++++----- 1 file changed, 184 insertions(+), 56 deletions(-) -- 2.18.0 _______________________________________________ Freeipmi-devel mailing list Freeipmi-devel@gnu.org https://lists.gnu.org/mailman/listinfo/freeipmi-devel