On 6/1/20 4:43 PM, André Przywara wrote: > On 01/06/2020 14:56, Heinrich Schuchardt wrote: >> Provide accurate values of the manufacturer and the product name. >> >> PINE Microsystems Inc. is referred to on https://www.pine64.org/contact/. > > While this patch looks alright, I wonder if we can just use the "model" > property in the DT's root node, at least for the product name? This > would not only avoid every defconfig to be touched, but would also cover > all other platforms (at least ARM based ones, probably PPC and MIPS as > well).
The relevant code is in lib/smbios.c. For boards that follow the driver model you could read the model node here. But that would unnecessarily increase the code size of the resulting binary. I doubt this would find Tom's sympathy. So you would have to generate the value at compile time. I have no clue how to do that. The model property for the PINE A64 LTS is "Pine64 LTS" while the board is called "PINE A64-LTS" by the manufacturer (https://www.pine64.org/devices/single-board-computers/pine-a64-lts/). So this approach does not lead to the correct result. > > The manufacturer is less straight-forward to handle generically, but the > string before the comma in the DT root's compatible property should give > a hint. The Linux kernel contains a machine readable list of those > prefixes: Documentation/devicetree/bindings/vendor-prefixes.yaml > So we could pick the vendor at compile time based on that. > Of course any config could still overwrite this. SMBIOS_MANUFACTURER defaults to SYS_VENDOR which is defined as "sunxi". The Linux vendor-prefix exists for ARM64 and is missing for the ARM architecture. So this cannot be a general solution. For the Pine64 A64-LTS the vendor-prefix is "allwinner". Neither "sunxi" nor "Allwinner" is the manufacturer of the PINE A64-LTS board. You have to set SMBIOS_MANUFACTURER on the board level. > > Does that make sense? > If people agree, I could try to make a patch for that. Please, reconsider the patch as is. Best regards Heinrich > > Cheers, > Andre. > >> >> Signed-off-by: Heinrich Schuchardt <[email protected]> >> --- >> configs/pine64-lts_defconfig | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/configs/pine64-lts_defconfig b/configs/pine64-lts_defconfig >> index ef108a1a31..a8ff34a376 100644 >> --- a/configs/pine64-lts_defconfig >> +++ b/configs/pine64-lts_defconfig >> @@ -8,8 +8,10 @@ CONFIG_DRAM_ZQ=3881949 >> CONFIG_MMC0_CD_PIN="" >> CONFIG_MMC_SUNXI_SLOT_EXTRA=2 >> CONFIG_SPL_SPI_SUNXI=y >> +CONFIG_SMBIOS_PRODUCT_NAME="PINE A64-LTS" >> # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set >> CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pine64-lts" >> CONFIG_SUN8I_EMAC=y >> CONFIG_USB_EHCI_HCD=y >> CONFIG_USB_OHCI_HCD=y >> +CONFIG_SMBIOS_MANUFACTURER="PINE Microsystems Inc." >> -- >> 2.26.2 >> >

