ARM: stm32: Permit multiple board targets
diff mbox series

Message ID 20191218065915.12295-1-marex@denx.de
State Superseded
Delegated to: Patrick Delaunay
Headers show
Series
  • ARM: stm32: Permit multiple board targets
Related show

Commit Message

Marek Vasut Dec. 18, 2019, 6:59 a.m. UTC
Setting TARGET_STM32MP1 in Kconfig always forces SYS_BOARD, SYS_VENDOR
and SYS_CONFIG_NAME to values set by the ST reference platforms. Allow
changing that by pulling out the TARGET_STM32MP157C_DK2 and making the
ST reference platform settings conditional on TARGET_STM32MP157C_DK2 .
Other platforms can now define a different TARGET_ and thus override
the SYS_ settings in their Kconfig.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Patrick Delaunay <patrick.delaunay@st.com>
Cc: Patrice Chotard <patrice.chotard@st.com>
---
 board/st/stm32mp1/Kconfig | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Comments

Patrick Delaunay Dec. 18, 2019, 1:20 p.m. UTC | #1
Hi Marek,

> From: Marek Vasut <marex@denx.de>
> Sent: mercredi 18 décembre 2019 07:59
> 
> Setting TARGET_STM32MP1 in Kconfig always forces SYS_BOARD,
> SYS_VENDOR and SYS_CONFIG_NAME to values set by the ST reference
> platforms. Allow changing that by pulling out the TARGET_STM32MP157C_DK2
> and making the ST reference platform settings conditional on
> TARGET_STM32MP157C_DK2 .
> Other platforms can now define a different TARGET_ and thus override the SYS_
> settings in their Kconfig.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Patrick Delaunay <patrick.delaunay@st.com>
> Cc: Patrice Chotard <patrice.chotard@st.com>
> ---
>  board/st/stm32mp1/Kconfig | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/board/st/stm32mp1/Kconfig b/board/st/stm32mp1/Kconfig index
> 4fa2360b4f..c84aa41f06 100644
> --- a/board/st/stm32mp1/Kconfig
> +++ b/board/st/stm32mp1/Kconfig
> @@ -1,4 +1,8 @@
> -if TARGET_STM32MP1
> +config TARGET_STM32MP157C_DK2
> +	bool "support of STMicroelectronics STM32MP157C-DK2 Discovery
> Board"
> +	default y
> +
> +if TARGET_STM32MP157C_DK2
> 
>  config SYS_BOARD
>  	default "stm32mp1"
> @@ -22,8 +26,4 @@ config CMD_STBOARD
>  	  This compile the stboard command to
>  	  read and write the board in the OTP.
> 
> -config TARGET_STM32MP157C_DK2
> -	bool "support of STMicroelectronics STM32MP157C-DK2 Discovery
> Board"
> -	default y

I try to understood the issue but checked DK2 is not enought
(I will soon introduce a new config for EV1 support)

What it the use case ?

Add a new board (not a board provided by ST)  which are managed by a new directory
	board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD>

I think, if it is the case, we should test CONFIG_SYS_VENDOR = "stm32mp1"
in board/st/stm32mp1/Kconfig

And move CONFIG_SYS_VENDOR to arch

NB: default value can be overidde in your board defconfig...

Normally:
- stm32mp1_trusted_defconfig
- stm32mp1_basic_defconfig 
- stm32mp1_optee_defconfig

only support the directory ST board with board/st/stm32mp1

>  endif
> --
> 2.24.1

Patrick
Patrick Delaunay Dec. 18, 2019, 2:04 p.m. UTC | #2
Hi Marek,

> From: Patrick DELAUNAY
> Sent: mercredi 18 décembre 2019 14:20
> 
> Hi Marek,
> 
> > From: Marek Vasut <marex@denx.de>
> > Sent: mercredi 18 décembre 2019 07:59
> >
> > Setting TARGET_STM32MP1 in Kconfig always forces SYS_BOARD,
> SYS_VENDOR
> > and SYS_CONFIG_NAME to values set by the ST reference platforms. Allow
> > changing that by pulling out the TARGET_STM32MP157C_DK2 and making the
> > ST reference platform settings conditional on
> > TARGET_STM32MP157C_DK2 .
> > Other platforms can now define a different TARGET_ and thus override
> > the SYS_ settings in their Kconfig.
> >
> > Signed-off-by: Marek Vasut <marex@denx.de>
> > Cc: Patrick Delaunay <patrick.delaunay@st.com>
> > Cc: Patrice Chotard <patrice.chotard@st.com>
> > ---
> >  board/st/stm32mp1/Kconfig | 10 +++++-----
> >  1 file changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/board/st/stm32mp1/Kconfig b/board/st/stm32mp1/Kconfig
> > index
> > 4fa2360b4f..c84aa41f06 100644
> > --- a/board/st/stm32mp1/Kconfig
> > +++ b/board/st/stm32mp1/Kconfig
> > @@ -1,4 +1,8 @@
> > -if TARGET_STM32MP1
> > +config TARGET_STM32MP157C_DK2
> > +	bool "support of STMicroelectronics STM32MP157C-DK2 Discovery
> > Board"
> > +	default y
> > +
> > +if TARGET_STM32MP157C_DK2
> >
> >  config SYS_BOARD
> >  	default "stm32mp1"
> > @@ -22,8 +26,4 @@ config CMD_STBOARD
> >  	  This compile the stboard command to
> >  	  read and write the board in the OTP.
> >
> > -config TARGET_STM32MP157C_DK2
> > -	bool "support of STMicroelectronics STM32MP157C-DK2 Discovery
> > Board"
> > -	default y
> 
> I try to understood the issue but checked DK2 is not enought (I will soon introduce
> a new config for EV1 support)
> 
> What it the use case ?
> 
> Add a new board (not a board provided by ST)  which are managed by a new
> directory
> 	board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD>
> 
> I think, if it is the case, we should test CONFIG_SYS_VENDOR = "stm32mp1"
> in board/st/stm32mp1/Kconfig
> 
> And move CONFIG_SYS_VENDOR to arch
> 
> NB: default value can be overidde in your board defconfig...
> 
> Normally:
> - stm32mp1_trusted_defconfig
> - stm32mp1_basic_defconfig
> - stm32mp1_optee_defconfig
> 
> only support the directory ST board with board/st/stm32mp1

After deeper check => it is already managed by the config

CONFIG_TARGET_STM32MP1

board/st/stm32mp1.Kconfig

dtb-$(CONFIG_TARGET_STM32MP1) += \
	stm32mp157a-dk1.dtb \
	stm32mp157a-avenger96.dtb \
	stm32mp157c-dk2.dtb \
	stm32mp157c-ed1.dtb \
	stm32mp157c-ev1.dtb

Activated by default in the ST defconfig (stm32mp1_trusted_defconfig, stm32mp1_basic_defconfig,  stm32mp1_optee_defconfig)

Do you need other way of configuration ?

Patrick
Marek Vasut Dec. 18, 2019, 2:11 p.m. UTC | #3
On 12/18/19 2:20 PM, Patrick DELAUNAY wrote:
> Hi Marek,

Hi,

>> From: Marek Vasut <marex@denx.de>
>> Sent: mercredi 18 décembre 2019 07:59
>>
>> Setting TARGET_STM32MP1 in Kconfig always forces SYS_BOARD,
>> SYS_VENDOR and SYS_CONFIG_NAME to values set by the ST reference
>> platforms. Allow changing that by pulling out the TARGET_STM32MP157C_DK2
>> and making the ST reference platform settings conditional on
>> TARGET_STM32MP157C_DK2 .
>> Other platforms can now define a different TARGET_ and thus override the SYS_
>> settings in their Kconfig.
>>
>> Signed-off-by: Marek Vasut <marex@denx.de>
>> Cc: Patrick Delaunay <patrick.delaunay@st.com>
>> Cc: Patrice Chotard <patrice.chotard@st.com>
>> ---
>>  board/st/stm32mp1/Kconfig | 10 +++++-----
>>  1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/board/st/stm32mp1/Kconfig b/board/st/stm32mp1/Kconfig index
>> 4fa2360b4f..c84aa41f06 100644
>> --- a/board/st/stm32mp1/Kconfig
>> +++ b/board/st/stm32mp1/Kconfig
>> @@ -1,4 +1,8 @@
>> -if TARGET_STM32MP1
>> +config TARGET_STM32MP157C_DK2
>> +	bool "support of STMicroelectronics STM32MP157C-DK2 Discovery
>> Board"
>> +	default y
>> +
>> +if TARGET_STM32MP157C_DK2
>>
>>  config SYS_BOARD
>>  	default "stm32mp1"
>> @@ -22,8 +26,4 @@ config CMD_STBOARD
>>  	  This compile the stboard command to
>>  	  read and write the board in the OTP.
>>
>> -config TARGET_STM32MP157C_DK2
>> -	bool "support of STMicroelectronics STM32MP157C-DK2 Discovery
>> Board"
>> -	default y
> 
> I try to understood the issue but checked DK2 is not enought
> (I will soon introduce a new config for EV1 support)
> 
> What it the use case ?

Custom board.

> Add a new board (not a board provided by ST)  which are managed by a new directory
> 	board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD>
> 
> I think, if it is the case, we should test CONFIG_SYS_VENDOR = "stm32mp1"
> in board/st/stm32mp1/Kconfig
> 
> And move CONFIG_SYS_VENDOR to arch

Nope, SYS_VENDOR is the board manufacturer . For you it's ST, for me
it's "thus far undisclosed custom board vendor".

> NB: default value can be overidde in your board defconfig...
> 
> Normally:
> - stm32mp1_trusted_defconfig
> - stm32mp1_basic_defconfig 
> - stm32mp1_optee_defconfig
> 
> only support the directory ST board with board/st/stm32mp1

That's not how it's supposed to work -- these values should be defaulted
in Kconfig.
Marek Vasut Dec. 18, 2019, 2:14 p.m. UTC | #4
On 12/18/19 3:04 PM, Patrick DELAUNAY wrote:
> Hi Marek,
> 
>> From: Patrick DELAUNAY
>> Sent: mercredi 18 décembre 2019 14:20
>>
>> Hi Marek,
>>
>>> From: Marek Vasut <marex@denx.de>
>>> Sent: mercredi 18 décembre 2019 07:59
>>>
>>> Setting TARGET_STM32MP1 in Kconfig always forces SYS_BOARD,
>> SYS_VENDOR
>>> and SYS_CONFIG_NAME to values set by the ST reference platforms. Allow
>>> changing that by pulling out the TARGET_STM32MP157C_DK2 and making the
>>> ST reference platform settings conditional on
>>> TARGET_STM32MP157C_DK2 .
>>> Other platforms can now define a different TARGET_ and thus override
>>> the SYS_ settings in their Kconfig.
>>>
>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>> Cc: Patrick Delaunay <patrick.delaunay@st.com>
>>> Cc: Patrice Chotard <patrice.chotard@st.com>
>>> ---
>>>  board/st/stm32mp1/Kconfig | 10 +++++-----
>>>  1 file changed, 5 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/board/st/stm32mp1/Kconfig b/board/st/stm32mp1/Kconfig
>>> index
>>> 4fa2360b4f..c84aa41f06 100644
>>> --- a/board/st/stm32mp1/Kconfig
>>> +++ b/board/st/stm32mp1/Kconfig
>>> @@ -1,4 +1,8 @@
>>> -if TARGET_STM32MP1
>>> +config TARGET_STM32MP157C_DK2
>>> +	bool "support of STMicroelectronics STM32MP157C-DK2 Discovery
>>> Board"
>>> +	default y
>>> +
>>> +if TARGET_STM32MP157C_DK2
>>>
>>>  config SYS_BOARD
>>>  	default "stm32mp1"
>>> @@ -22,8 +26,4 @@ config CMD_STBOARD
>>>  	  This compile the stboard command to
>>>  	  read and write the board in the OTP.
>>>
>>> -config TARGET_STM32MP157C_DK2
>>> -	bool "support of STMicroelectronics STM32MP157C-DK2 Discovery
>>> Board"
>>> -	default y
>>
>> I try to understood the issue but checked DK2 is not enought (I will soon introduce
>> a new config for EV1 support)
>>
>> What it the use case ?
>>
>> Add a new board (not a board provided by ST)  which are managed by a new
>> directory
>> 	board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD>
>>
>> I think, if it is the case, we should test CONFIG_SYS_VENDOR = "stm32mp1"
>> in board/st/stm32mp1/Kconfig
>>
>> And move CONFIG_SYS_VENDOR to arch
>>
>> NB: default value can be overidde in your board defconfig...
>>
>> Normally:
>> - stm32mp1_trusted_defconfig
>> - stm32mp1_basic_defconfig
>> - stm32mp1_optee_defconfig
>>
>> only support the directory ST board with board/st/stm32mp1
> 
> After deeper check => it is already managed by the config
> 
> CONFIG_TARGET_STM32MP1
> 
> board/st/stm32mp1.Kconfig
> 
> dtb-$(CONFIG_TARGET_STM32MP1) += \
> 	stm32mp157a-dk1.dtb \
> 	stm32mp157a-avenger96.dtb \
> 	stm32mp157c-dk2.dtb \
> 	stm32mp157c-ed1.dtb \
> 	stm32mp157c-ev1.dtb
> 
> Activated by default in the ST defconfig (stm32mp1_trusted_defconfig, stm32mp1_basic_defconfig,  stm32mp1_optee_defconfig)
> 
> Do you need other way of configuration ?

Yes, I need to override the configuration which is currently forced by
the ST Kconfig file. Hence this patch.

I can repost this patch with the board patch once that's ready. It might
make it easier to understand the purpose.
Patrick Delaunay Dec. 18, 2019, 3:58 p.m. UTC | #5
Hi,

> From: Marek Vasut <marex@denx.de>
> Sent: mercredi 18 décembre 2019 15:15
> 
> On 12/18/19 3:04 PM, Patrick DELAUNAY wrote:
> > Hi Marek,
> >
> >> From: Patrick DELAUNAY
> >> Sent: mercredi 18 décembre 2019 14:20
> >>
> >> Hi Marek,
> >>
> >>> From: Marek Vasut <marex@denx.de>
> >>> Sent: mercredi 18 décembre 2019 07:59
> >>>
> >>> Setting TARGET_STM32MP1 in Kconfig always forces SYS_BOARD,
> >> SYS_VENDOR
> >>> and SYS_CONFIG_NAME to values set by the ST reference platforms.
> >>> Allow changing that by pulling out the TARGET_STM32MP157C_DK2 and
> >>> making the ST reference platform settings conditional on
> >>> TARGET_STM32MP157C_DK2 .
> >>> Other platforms can now define a different TARGET_ and thus override
> >>> the SYS_ settings in their Kconfig.
> >>>
> >>> Signed-off-by: Marek Vasut <marex@denx.de>
> >>> Cc: Patrick Delaunay <patrick.delaunay@st.com>
> >>> Cc: Patrice Chotard <patrice.chotard@st.com>
> >>> ---
> >>>  board/st/stm32mp1/Kconfig | 10 +++++-----
> >>>  1 file changed, 5 insertions(+), 5 deletions(-)
> >>>
> >>> diff --git a/board/st/stm32mp1/Kconfig b/board/st/stm32mp1/Kconfig
> >>> index
> >>> 4fa2360b4f..c84aa41f06 100644
> >>> --- a/board/st/stm32mp1/Kconfig
> >>> +++ b/board/st/stm32mp1/Kconfig
> >>> @@ -1,4 +1,8 @@
> >>> -if TARGET_STM32MP1
> >>> +config TARGET_STM32MP157C_DK2
> >>> +	bool "support of STMicroelectronics STM32MP157C-DK2 Discovery
> >>> Board"
> >>> +	default y
> >>> +
> >>> +if TARGET_STM32MP157C_DK2
> >>>
> >>>  config SYS_BOARD
> >>>  	default "stm32mp1"
> >>> @@ -22,8 +26,4 @@ config CMD_STBOARD
> >>>  	  This compile the stboard command to
> >>>  	  read and write the board in the OTP.
> >>>
> >>> -config TARGET_STM32MP157C_DK2
> >>> -	bool "support of STMicroelectronics STM32MP157C-DK2 Discovery
> >>> Board"
> >>> -	default y
> >>
> >> I try to understood the issue but checked DK2 is not enought (I will
> >> soon introduce a new config for EV1 support)
> >>
> >> What it the use case ?
> >>
> >> Add a new board (not a board provided by ST)  which are managed by a
> >> new directory
> >> 	board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD>
> >>
> >> I think, if it is the case, we should test CONFIG_SYS_VENDOR = "stm32mp1"
> >> in board/st/stm32mp1/Kconfig
> >>
> >> And move CONFIG_SYS_VENDOR to arch
> >>
> >> NB: default value can be overidde in your board defconfig...
> >>
> >> Normally:
> >> - stm32mp1_trusted_defconfig
> >> - stm32mp1_basic_defconfig
> >> - stm32mp1_optee_defconfig
> >>
> >> only support the directory ST board with board/st/stm32mp1
> >
> > After deeper check => it is already managed by the config
> >
> > CONFIG_TARGET_STM32MP1
> >
> > board/st/stm32mp1.Kconfig
> >
> > dtb-$(CONFIG_TARGET_STM32MP1) += \
> > 	stm32mp157a-dk1.dtb \
> > 	stm32mp157a-avenger96.dtb \
> > 	stm32mp157c-dk2.dtb \
> > 	stm32mp157c-ed1.dtb \
> > 	stm32mp157c-ev1.dtb
> >
> > Activated by default in the ST defconfig (stm32mp1_trusted_defconfig,
> > stm32mp1_basic_defconfig,  stm32mp1_optee_defconfig)
> >
> > Do you need other way of configuration ?
> 
> Yes, I need to override the configuration which is currently forced by the ST
> Kconfig file. Hence this patch.
> 
> I can repost this patch with the board patch once that's ready. It might make it
> easier to understand the purpose.

Yes thanks.

I am waiting your patchset..

Anyway it is not yet clear for me how manage customer board...

I perhaps need to have a common directory (board/st/common)  to share code between ST board
and customer board (as it is done by other arch)

I expect it will be the same than imx or rockwell board 

   one board (or one family)  => one defconfig

for all ST board (EV1 DK1 DK2)  => CONFIG_TARGET_STM32MP1
for custom board CUST0 => CONFIG_TARGET_CUST0

with Kconfig

if TARGET_STM32MP1

config SYS_BOARD
	default "stm32mp1"

config SYS_VENDOR
	default "st"

config SYS_CONFIG_NAME
	default "stm32mp1"

<....>

endif

if TARGET_CUST0

config SYS_BOARD
	default "cust0"

config SYS_VENDOR
	default "customer"

config SYS_CONFIG_NAME
	default "cust0"

endif

Regards Patrick

Patch
diff mbox series

diff --git a/board/st/stm32mp1/Kconfig b/board/st/stm32mp1/Kconfig
index 4fa2360b4f..c84aa41f06 100644
--- a/board/st/stm32mp1/Kconfig
+++ b/board/st/stm32mp1/Kconfig
@@ -1,4 +1,8 @@ 
-if TARGET_STM32MP1
+config TARGET_STM32MP157C_DK2
+	bool "support of STMicroelectronics STM32MP157C-DK2 Discovery Board"
+	default y
+
+if TARGET_STM32MP157C_DK2
 
 config SYS_BOARD
 	default "stm32mp1"
@@ -22,8 +26,4 @@  config CMD_STBOARD
 	  This compile the stboard command to
 	  read and write the board in the OTP.
 
-config TARGET_STM32MP157C_DK2
-	bool "support of STMicroelectronics STM32MP157C-DK2 Discovery Board"
-	default y
-
 endif