[PATCH v5 0/6] Implement all missing SMBIOS types required by distro tooling

Raymond Mao raymondmaoca at gmail.com
Fri Feb 13 15:44:35 CET 2026


Hi Ilias,

On Fri, Feb 13, 2026 at 1:45 AM Ilias Apalodimas
<ilias.apalodimas at linaro.org> wrote:
>
> On Thu, 12 Feb 2026 at 16:53, Raymond Mao <raymondmaoca at gmail.com> wrote:
> >
> > Hi Ilias,
> >
> > On Thu, Feb 12, 2026 at 7:45 AM Ilias Apalodimas
> > <ilias.apalodimas at linaro.org> wrote:
> > >
> > > That's weird.
> > >
> > > I tried again on -next and got this
> > > Handle 0x0006, DMI type 9, 24 bytes
> > > System Slot Information
> > > Designation: Not Specified
> > > Type: Unknown
> > > Data Bus Width: Unknown
> > > Current Usage: Unknown
> > > Length: Unknown
> > > Characteristics: Unknown
> > > Bus Address: 0000:00:00.0
> > > Data Bus Width (Base): 0
> > > Peer Devices: 0
> > > Height: Not applicable
> > >
> > > Handle 0x0007, DMI type 16, 23 bytes
> > > Physical Memory Array
> > > Location: Unknown
> > > Use: Unknown
> > > Error Correction Type: Unknown
> > > Maximum Capacity: 0 kB
> > > Error Information Handle: Not Provided
> > > Number Of Devices: 1
> > >
> > > Handle 0x0008, DMI type 17, 104 bytes
> > > Memory Device
> > > Array Handle: 0x0000
> > > Error Information Handle: Not Provided
> > > Total Width: Unknown
> > > Data Width: Unknown
> > > Size: No Module Installed
> > > Form Factor: <OUT OF SPEC>
> > > Set: None
> > > Locator: <BAD INDEX>
> > > Bank Locator: <BAD INDEX>
> > > Type: Unknown
> > > Type Detail: Other Unknown Fast-paged Static Column Pseudo-static
> > > RAMBus Synchronous
> > >
> > > Handle 0x0009, DMI type 19, 31 bytes
> > > Memory Array Mapped Address
> > > Starting Address: 0x00000000000
> > > Ending Address: 0x000000003FF
> > > Range Size: 1 kB
> > > Physical Array Handle: 0x0000
> > > Partition Width: 1
> > >
> > > Handle 0x000A, DMI type 32, 11 bytes
> > > System Boot Information
> > > Status: No errors detected
> > >
> > > I am using a debian unstable with a 6.18 kernel
> > >
> >
> > It looks that your log is not in a correct format, each header should
> > start with:
> > 'Handle <handle_id>, DMI type <type_num>, <size> bytes at <address>'
> > But your one is missing 'at <address>'.
> >
> > How did you test it and get it printed? Are you using 'smbios' cmd in
> > the u-boot console?
>
> No, that's probably the difference. I am booting to linux and test
> with 'dmidecode'
>

I think I know the cause now, your dmidecode tool does not fully
follow the spec DSP0134, or it might be an old version.
Take "Form Factor: <OUT OF SPEC>" for example:
By default, this should be "unknown", and according to the spec
(3.9.0) - "unknown" equals to 2.
In the u-boot console, this is decoded properly with my patch series:
"Form Factor: Unknown", which matches the definition in the code
"#define SMBIOS_MD_FF_UNKNOWN 2".
But dmidecode shows "OUT OF SPEC", which means it does not support
"2", or by an incorrect decoding.

What is your dmidecode version?

Regards,
Raymond


> > Do you mind sharing your remote working branch, so that I can have a
> > cross-check?
>
> I don't but it's really just the -next branch with your patches. I
> think the difference is u-boots tool vs linux
>
> Regards
> /Ilias
> >
> > Regards,
> > Raymond
> >
> >
> > > Cheers
> > > /Ilias
> > >
> > > On Thu, 12 Feb 2026 at 02:24, Raymond Mao <raymondmaoca at gmail.com> wrote:
> > > >
> > > > Hi Ilias
> > > >
> > > > On Wed, Feb 11, 2026 at 10:20 AM Ilias Apalodimas
> > > > <ilias.apalodimas at linaro.org> wrote:
> > > > >
> > > > > On Wed, 11 Feb 2026 at 16:30, Raymond Mao <raymondmaoca at gmail.com> wrote:
> > > > > >
> > > > > > Hi Ilias,
> > > > > >
> > > > > > On Wed, Feb 11, 2026 at 4:32 AM Ilias Apalodimas
> > > > > > <ilias.apalodimas at linaro.org> wrote:
> > > > > > >
> > > > > > > Hi all,
> > > > > > >
> > > > > > > Apologies for the late reply.
> > > > > > >
> > > > > > > I did test the patches but I see something weird on smbios type 17.
> > > > > > >
> > > > > > > Handle 0x0008, DMI type 17, 104 bytes
> > > > > > > Memory Device
> > > > > > >         Array Handle: 0x0000
> > > > > > >         Error Information Handle: Not Provided
> > > > > > >         Total Width: Unknown
> > > > > > >         Data Width: Unknown
> > > > > > >         Size: No Module Installed
> > > > > > >         Form Factor: <OUT OF SPEC>
> > > > > > >         Set: None
> > > > > > >         Locator: <BAD INDEX>
> > > > > > >         Bank Locator: <BAD INDEX>
> > > > > > >         Type: Unknown
> > > > > > >         Type Detail: Other Unknown Fast-paged Static Column
> > > > > > > Pseudo-static RAMBus Synchronous
> > > > > > >         Speed: 512 MT/s
> > > > > > >         Manufacturer: <BAD INDEX>
> > > > > > >         Serial Number: Not Specified
> > > > > > >         Asset Tag: Not Specified
> > > > > > >         Part Number: Not Specified
> > > > > > >         Rank: Unknown
> > > > > > >         Configured Memory Speed: Unknown
> > > > > > >         Minimum Voltage: Unknown
> > > > > > >         Maximum Voltage: Unknown
> > > > > > >         Configured Voltage: Unknown
> > > > > > >         Memory Technology: <OUT OF SPEC>
> > > > > > >         Memory Operating Mode Capability: None
> > > > > > >         Firmware Version: Not Specified
> > > > > > >         Module Manufacturer ID: Bank 3, Hex 0x04
> > > > > > >         Module Product ID: Unknown
> > > > > > >         Memory Subsystem Controller Manufacturer ID: Unknown
> > > > > > >         Memory Subsystem Controller Product ID: Unknown
> > > > > > >         Non-Volatile Size: 16383 PB
> > > > > > >         Volatile Size: Unknown
> > > > > > >         Cache Size: Unknown
> > > > > > >         Logical Size: Unknown
> > > > > > >
> > > > > > > Any idea what <BAD INDEX> and <OUT OF SPEC> represent?
> > > > > > > I tested this in QEMU
> > > > > > >
> > > > > >
> > > > > > I just retested it by below qemu cmd after I rebased it to the current master:
> > > > > > qemu-system-aarch64  -bios u-boot.bin -machine virt -cpu cortex-a57 -m
> > > > > > 2G  -nographic
> > > > > >
> > > > > > Below is the type17 I got:
> > > > > > ```
> > > > > > Handle 0x0008, DMI type 17, 104 bytes at 0xbe678141
> > > > > > Memory Device:
> > > > > > Physical Memory Array Handle: 0x0000
> > > > > > Memory Error Information Handle: 0xfffe
> > > > > > Total Width: 0x0000
> > > > > > Data Width: 0x0000
> > > > > > Size: 0xffff
> > > > > > Form Factor: Unknown
> > > > > > Device Set: 0x00ff
> > > > > > Device Locator:
> > > > > > Bank Locator:
> > > > > > Memory Type: Unknown
> > > > > > Type Detail: 0x0004
> > > > > > Speed: 0x0000
> > > > > > Manufacturer:
> > > > > > Serial Number:
> > > > > > Asset Tag:
> > > > > > Part Number:
> > > > > > Attributes: 0x0000
> > > > > > Extended Size: 0x00000000
> > > > > > Configured Memory Speed: 0x0000
> > > > > > Minimum voltage: 0x0000
> > > > > > Maximum voltage: 0x0000
> > > > > > Configured voltage: 0x0000
> > > > > > Memory Technology: Unknown
> > > > > > Memory Operating Mode Capability: 0x0004
> > > > > > Firmware Version:
> > > > > > Module Manufacturer ID: 0x0000
> > > > > > Module Product ID: 0x0000
> > > > > > Memory Subsystem Controller Manufacturer ID: 0x0000
> > > > > > Memory Subsystem Controller Product ID: 0x0000
> > > > > > Non-volatile Size: 0xffffffffffffffff
> > > > > > Volatile Size: 0xffffffffffffffff
> > > > > > Cache Size: 0xffffffffffffffff
> > > > > > Logical Size: 0xffffffffffffffff
> > > > > > Extended Speed: 0x0000
> > > > > > Extended Configured Memory Speed: 0x0000
> > > > > > PMIC0 Manufacturer ID: 0x0000
> > > > > > PMIC0 Revision Number: 0x0000
> > > > > > RCD Manufacturer ID: 0x0000
> > > > > > RCD Revision Number: 0x0000
> > > > > > ```
> > > > > >
> > > > > > If you didn't use smbios_generic.dtsi to insert new nodes, or add new
> > > > > > 'memory@' / 'memory-controller@' nodes into your DT, you should get
> > > > > > the same result as mine by default.
> > > > > > If you still can not get it, can you give me your build instruction
> > > > > > and qemu cmd for reproducing?
> > > > >
> > > > > I used qemu_arm64_lwip_defconfig
> > > > >
> > > > > qemu-system-aarch64 -m 1024 -smp 2 -nographic -cpu cortex-a57 \
> > > > >           -machine virt,secure=off -bios u-boot.bin -chardev
> > > > > socket,id=chrtpm,path=/tmp/mytpm1/swtpm-sock \
> > > > >           -tpmdev emulator,id=tpm0,chardev=chrtpm -device
> > > > > tpm-tis-device,tpmdev=tpm0 \
> > > > >           -device virtio-rng-pci -drive
> > > > > id=os,if=none,file=../debian.qcow2 -device virtio-blk-device,drive=os
> > > > >  is the command line
> > > > >
> > > >
> > > > I did these steps with a clean build (exactly the same as your ones):
> > > > $ make O=out_lwip qemu_arm64_lwip_defconfig
> > > > $ CROSS_COMPILE=aarch64-none-linux-gnu- make O=out_lwip -j4 all
> > > > $ cd out_lwip
> > > > $ killall swtpm
> > > > $ rm -rf /tmp/mytpm1
> > > > $ mkdir -p /tmp/mytpm1
> > > > $ swtpm_setup --tpmstate /tmp/mytpm1 --tpm2 --pcr-banks sha256
> > > > $ swtpm socket --tpmstate dir=/tmp/mytpm1 --ctrl
> > > > type=unixio,path=/tmp/mytpm1/swtpm-sock --log level=40 --tpm2 -t -d
> > > > $ qemu-system-aarch64 -m 1024 -smp 2 -nographic -cpu cortex-a57 \
> > > > -machine virt,secure=off -bios u-boot.bin -chardev
> > > > socket,id=chrtpm,path=/tmp/mytpm1/swtpm-sock \
> > > > -tpmdev emulator,id=tpm0,chardev=chrtpm -device tpm-tis-device,tpmdev=tpm0 \
> > > > -device virtio-rng-pci -drive id=os,if=none,file=../debian.qcow2
> > > > -device virtio-blk-device,drive=os
> > > >
> > > > SMBIOS type17 shows no difference:
> > > > ```
> > > > Handle 0x0008, DMI type 17, 104 bytes at 0x7e64b141
> > > > Memory Device:
> > > > Physical Memory Array Handle: 0x0000
> > > > Memory Error Information Handle: 0xfffe
> > > > Total Width: 0x0000
> > > > Data Width: 0x0000
> > > > Size: 0xffff
> > > > Form Factor: Unknown
> > > > Device Set: 0x00ff
> > > > Device Locator:
> > > > Bank Locator:
> > > > Memory Type: Unknown
> > > > Type Detail: 0x0004
> > > > Speed: 0x0000
> > > > Manufacturer:
> > > > Serial Number:
> > > > Asset Tag:
> > > > Part Number:
> > > > Attributes: 0x0000
> > > > Extended Size: 0x00000000
> > > > Configured Memory Speed: 0x0000
> > > > Minimum voltage: 0x0000
> > > > Maximum voltage: 0x0000
> > > > Configured voltage: 0x0000
> > > > Memory Technology: Unknown
> > > > Memory Operating Mode Capability: 0x0004
> > > > Firmware Version:
> > > > Module Manufacturer ID: 0x0000
> > > > Module Product ID: 0x0000
> > > > Memory Subsystem Controller Manufacturer ID: 0x0000
> > > > Memory Subsystem Controller Product ID: 0x0000
> > > > Non-volatile Size: 0xffffffffffffffff
> > > > Volatile Size: 0xffffffffffffffff
> > > > Cache Size: 0xffffffffffffffff
> > > > Logical Size: 0xffffffffffffffff
> > > > Extended Speed: 0x0000
> > > > Extended Configured Memory Speed: 0x0000
> > > > PMIC0 Manufacturer ID: 0x0000
> > > > PMIC0 Revision Number: 0x0000
> > > > RCD Manufacturer ID: 0x0000
> > > > RCD Revision Number: 0x0000
> > > > ```
> > > >
> > > > By the way, I don't think it has any relationship with swtpm and the
> > > > linux distro, so I also simply tried:
> > > > $ qemu-system-aarch64 -m 1024 -smp 2 -nographic -cpu cortex-a57 \
> > > > -machine virt,secure=off -bios u-boot.bin
> > > >
> > > > All works with the same type17 output.
> > > >
> > > > Regards,
> > > > Raymond
> > > >
> > > > > Cheers
> > > > > /Ilias
> > > > >
> > > > >
> > > > > >
> > > > > > Regards,
> > > > > > Raymond
> > > > > >
> > > > > >
> > > > > > > Regards
> > > > > > > /Ilias
> > > > > > >
> > > > > > > On Wed, 4 Feb 2026 at 18:13, Tom Rini <trini at konsulko.com> wrote:
> > > > > > > >
> > > > > > > > On Wed, Feb 04, 2026 at 11:12:42AM -0500, Raymond Mao wrote:
> > > > > > > >
> > > > > > > > > Hi,
> > > > > > > > >
> > > > > > > > > Anyone have a chance to review this patch set? It is the last piece of
> > > > > > > > > work to support all required SMBIOS types in U-Boot.
> > > > > > > >
> > > > > > > > I've been waiting for Ilias or Heinrich to have time to look at this.
> > > > > > > >
> > > > > > > > --
> > > > > > > > Tom


More information about the U-Boot mailing list