• Sean Nelson's avatar
    Add an internal DMI decoder · 4c6d3a4b
    Sean Nelson authored
    
    Previously we had to rely on dmidecode to decode the DMI/SMBIOS table.
    This patch integrates a DMI decoder into flashrom. The old behavior of calling
    dmidecode can be brought back by using CONFIG_INTERNAL_DMI=no.
    
    Significant portions of this patch were taken from dmidecode, hence add its
    authors to the copyright notice (dmidecode is also GPL2+). We do a few things
    differently though. First of all we do more bounds checking to prevent accessing
    unmapped memory. We do not support disovery via EFI (yet), but memory
    scanning only. We handle the chassis-type lock bit correctly which dmidecode
    did not for a long while.
    
    The API to the rest of flashrom remains stable, but the output changes slightly.
    To share as much code as possible (which actually is not much), i have added
    dmi_fill methods that get called in dmi_init. They are reponsible to fill the
    dmi_strings array and setting the is_laptop variable. After it is called, dmi_init
    prints all dmi_strings. Previously the strings were printed in the order they were
    discovered, followed by the chassis-type, which is now output earlier (in dmi_fill).
    
    Because DJGPP does not support strnlen a simple implementation was added
    for it.
    
    This is still only available on x86; actually it is not even compiled in for other
    architectures at all anymore.
    
    Corresponding to flashrom svn r1735.
    Signed-off-by: default avatarSean Nelson <audiohacked@gmail.com>
    Signed-off-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
    Tested-by: default avatarMaciej Pijanka <maciej.pijanka@gmail.com>
    Tested-by: default avatarIdwer Vollering <vidwer@gmail.com>
    Acked-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
    4c6d3a4b
physmap.c 15.2 KB