diff mbox series

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

Message ID 20200601135607.18741-1-xypron.glpk@gmx.de
State New
Headers show
Series [1/1] sunxi: Pine64-LTS: SMBIOS properties | expand

Commit Message

Heinrich Schuchardt June 1, 2020, 1:56 p.m. UTC
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 at gmx.de>
---
 configs/pine64-lts_defconfig | 2 ++
 1 file changed, 2 insertions(+)

--
2.26.2

Comments

Andre Przywara June 1, 2020, 2:43 p.m. UTC | #1
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 at 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
>
Heinrich Schuchardt June 1, 2020, 4:20 p.m. UTC | #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 at 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
>>
>
Heinrich Schuchardt June 14, 2020, 3:48 p.m. UTC | #3
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 at 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
>>>
>>
>
Heinrich Schuchardt Oct. 8, 2020, 1:10 p.m. UTC | #4
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

>>>>

>>>

>>

>
Andre Przywara Oct. 8, 2020, 1:26 p.m. UTC | #5
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

>>>>>

>>>>

>>>

>>

>
diff mbox series

Patch

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."