[PATCH 1/1] sunxi: Pine64-LTS: SMBIOS properties

Provide accurate values of the manufacturer and the product name.
PINE Microsystems Inc. is referred to on https://www.pine64.org/contact/.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de --- 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

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 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.
Does that make sense? If people agree, I could try to make a patch for that.
Cheers, Andre.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
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

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 xypron.glpk@gmx.de
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

On 6/1/20 6:20 PM, Heinrich Schuchardt wrote:
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.
Hello Andr+e
any comments?
Best regards
Heinrich
Best regards
Heinrich
Cheers, Andre.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
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

On 14.06.20 17:48, Heinrich Schuchardt wrote:
On 6/1/20 6:20 PM, Heinrich Schuchardt wrote:
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.
Hello Andr+e
any comments?
Best regards
Heinrich
Hello Andre,
did you work on your idea of using the model property? Or can Jagan take the patch as is?
Best regards
Heinrich
Best regards
Heinrich
Cheers, Andre.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
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

On 08/10/2020 14:10, Heinrich Schuchardt wrote:
Hi,
On 14.06.20 17:48, Heinrich Schuchardt wrote:
On 6/1/20 6:20 PM, Heinrich Schuchardt wrote:
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.
Hello Andr+e
any comments?
Best regards
Heinrich
Hello Andre,
did you work on your idea of using the model property? Or can Jagan take the patch as is?
No, I didn't have time to tackle this yet.
So yes, please Jagan, take this patch as it.
Cheers, Andre
Best regards
Heinrich
Cheers, Andre.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
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
participants (2)
-
André Przywara
-
Heinrich Schuchardt