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. v2: * Rebased on current master. * Update Changelog. * Support systems with multiple SPMI instances. 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 tables exposed via sysfs Allow sysfs SPMI parsing on ARM platforms Correct order of bytes in specification_revision field of ACPI SPMI table ChangeLog | 15 ++ libfreeipmi/locate/ipmi-locate-acpi-spmi.c | 259 ++++++++++++++++----- 2 files changed, 218 insertions(+), 56 deletions(-) -- 2.18.0 _______________________________________________ Freeipmi-devel mailing list Freeipmi-devel@gnu.org https://lists.gnu.org/mailman/listinfo/freeipmi-devel