mirror / dmidecode

dmidecode mirror
GNU General Public License v2.0
121 stars 72 forks source link

Why is an extra "0" displayed at the end of the BIOS Address value? #25

Open PhoenixTan2 opened 10 months ago

PhoenixTan2 commented 10 months ago

Hi,

In dmidecode.c line 4288, I see something like "0x%04X0", which means that the BIOS address display always has an extra "0" at the end of the data at 0x06. The value of 0xFFFF will be displayed as 0xFFFF0, is this work as design? If so, why is this by design?

I see commit messages in the code, is this only for legacy BIOS?

/*
* On IA-64 and UEFI-based systems, the BIOS base
* address will read 0 because there is no BIOS. Skip
* the base address and the runtime size in this case.
*/

And I see an example in the SMBIOS specification where the value of this field could be set to 0E800h

Segment location of BIOS starting address (for example, 0E800h).

But this field is just WORD and can't be set 0E800h, I really have a hard time understanding this design.

Thanks