diff mbox series

[v4] boot/ti-k3-boot-firmware: Add config option to specify version

Message ID 20240711060531.4067193-1-p-bhagat@ti.com
State Changes Requested
Headers show
Series [v4] boot/ti-k3-boot-firmware: Add config option to specify version | expand

Commit Message

Paresh Bhagat July 11, 2024, 6:05 a.m. UTC
Previously the version of ti-k3-boot-firmware (TI_K3_BOOT_FIRMWARE_VERSION) was
fixed in mk file. Introduce a new config option BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
so that user can change the version for ti-k3-boot-firmware using menuconfig.

This provides greater flexibility for users to select different versions of
ti-k3-boot-firmware without modifying the build script directly.

Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>

---
Changes v3 -> v4:
  - Ti k3 -> TI K3 (Suggested by Andreas Dannenberg)
  - git.ti.org -> git.ti.com (Suggested by Andreas Dannenberg)

Changes v2 -> v3:
  - flexibilty -> flexibility (Suggested by Chirag Shilwant)

Changes v1 -> v2:
  - Fix whitespaces/indentation in Config.in file (Suggested by Bryan Brattlof)

---
 boot/ti-k3-boot-firmware/Config.in            | 30 +++++++++++++++++++
 .../ti-k3-boot-firmware.mk                    |  2 +-
 2 files changed, 31 insertions(+), 1 deletion(-)

Comments

Romain Naour July 12, 2024, 7:08 p.m. UTC | #1
Hello Paresh, All,

Le 11/07/2024 à 08:05, Paresh Bhagat via buildroot a écrit :
> Previously the version of ti-k3-boot-firmware (TI_K3_BOOT_FIRMWARE_VERSION) was
> fixed in mk file. Introduce a new config option BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
> so that user can change the version for ti-k3-boot-firmware using menuconfig.
> 
> This provides greater flexibility for users to select different versions of
> ti-k3-boot-firmware without modifying the build script directly.

Is the main reason to add an option to specify the ti-k3-boot-firmware version
is because it must match exactly with the selected u-boot or ti-k3-r5-loader
version due to the TI-SCI protocol and the DMSC prebuilt firmware binary
(provided by TI) (DMSC is the Security Manager Core in the SoC)?

> 
> Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
> 
> ---
> Changes v3 -> v4:
>   - Ti k3 -> TI K3 (Suggested by Andreas Dannenberg)
>   - git.ti.org -> git.ti.com (Suggested by Andreas Dannenberg)
> 
> Changes v2 -> v3:
>   - flexibilty -> flexibility (Suggested by Chirag Shilwant)
> 
> Changes v1 -> v2:
>   - Fix whitespaces/indentation in Config.in file (Suggested by Bryan Brattlof)
> 
> ---
>  boot/ti-k3-boot-firmware/Config.in            | 30 +++++++++++++++++++
>  .../ti-k3-boot-firmware.mk                    |  2 +-
>  2 files changed, 31 insertions(+), 1 deletion(-)
> 
> diff --git a/boot/ti-k3-boot-firmware/Config.in b/boot/ti-k3-boot-firmware/Config.in
> index d80bb4bdb3..581ec0c3b9 100644
> --- a/boot/ti-k3-boot-firmware/Config.in
> +++ b/boot/ti-k3-boot-firmware/Config.in
> @@ -5,3 +5,33 @@ config BR2_TARGET_TI_K3_BOOT_FIRMWARE
>  	  This package downloads and installs the TI-specific ti-sysfw
>  	  and ti-dm firmware needed to boot TI K3 platforms (which
>  	  include AM62x, AM64x, AM65x and more).
> +
> +if BR2_TARGET_TI_K3_BOOT_FIRMWARE
> +choice
> +	prompt "ti-k3-boot-firmware version"
> +	default BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
> +	help
> +	  Select the version of TI K3 boot firmware you want to use.
> +
> +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
> +	bool "09.02.00.009"
> +
> +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
> +	bool "Custom version"
> +	help
> +	  This option allows to use a specific official version from
> +	  git.ti.com.

When you use this option, you need to disable the hash checking with:

BR_NO_CHECK_HASH_FOR += $(TI_K3_BOOT_FIRMWARE_SOURCE)

Otherwise you get:

ERROR: No hash found for ti-linux-firmware-10.00.05.tar.xz

See how it's done for ti-k3-r5-loader:

ifeq ($(BR2_TARGET_TI_K3_R5_LOADER)$(BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION),y)
BR_NO_CHECK_HASH_FOR += $(TI_K3_R5_LOADER_SOURCE)
endif

Best regards,
Romain


> +
> +endchoice
> +
> +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION_VALUE
> +	string "Custom ti-k3-boot-firmware version"
> +	depends on BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
> +
> +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_VERSION
> +	string
> +	default "09.02.00.009"     if BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
> +	default BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION_VALUE \
> +				if BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
> +
> +endif
> diff --git a/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk b/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
> index 9332732ad4..350381ebbe 100644
> --- a/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
> +++ b/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
> @@ -4,7 +4,7 @@
>  #
>  ################################################################################
>  
> -TI_K3_BOOT_FIRMWARE_VERSION = 09.02.00.009
> +TI_K3_BOOT_FIRMWARE_VERSION = $(call qstrip,$(BR2_TARGET_TI_K3_BOOT_FIRMWARE_VERSION))
>  TI_K3_BOOT_FIRMWARE_SITE = https://git.ti.com/cgit/processor-firmware/ti-linux-firmware/snapshot
>  TI_K3_BOOT_FIRMWARE_SOURCE = ti-linux-firmware-$(TI_K3_BOOT_FIRMWARE_VERSION).tar.xz
>  TI_K3_BOOT_FIRMWARE_INSTALL_IMAGES = YES
Bryan Brattlof July 12, 2024, 8:39 p.m. UTC | #2
On July 12, 2024 thus sayeth Romain Naour via buildroot:
> Hello Paresh, All,
> 
> Le 11/07/2024 à 08:05, Paresh Bhagat via buildroot a écrit :
> > Previously the version of ti-k3-boot-firmware (TI_K3_BOOT_FIRMWARE_VERSION) was
> > fixed in mk file. Introduce a new config option BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
> > so that user can change the version for ti-k3-boot-firmware using menuconfig.
> > 
> > This provides greater flexibility for users to select different versions of
> > ti-k3-boot-firmware without modifying the build script directly.
> 
> Is the main reason to add an option to specify the ti-k3-boot-firmware version
> is because it must match exactly with the selected u-boot or ti-k3-r5-loader
> version due to the TI-SCI protocol and the DMSC prebuilt firmware binary
> (provided by TI) (DMSC is the Security Manager Core in the SoC)?
> 

The TI-SCI protocol will always be backward compatible. There should be 
no worries about using an older TIFS/DM/DMSC firmware with newer kernels 
and bootloaders and any errors anyone sees should be reported to TI so 
it can be addressed.

It gets a little weird with the TIFS <-> DM communication so it's 
recommended to keep those in sync. I haven't seen any issues but that 
doesn't mean they don't exist.

> > 
> > Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
> > 
> > ---
> > Changes v3 -> v4:
> >   - Ti k3 -> TI K3 (Suggested by Andreas Dannenberg)
> >   - git.ti.org -> git.ti.com (Suggested by Andreas Dannenberg)
> > 
> > Changes v2 -> v3:
> >   - flexibilty -> flexibility (Suggested by Chirag Shilwant)
> > 
> > Changes v1 -> v2:
> >   - Fix whitespaces/indentation in Config.in file (Suggested by Bryan Brattlof)
> > 
> > ---
> >  boot/ti-k3-boot-firmware/Config.in            | 30 +++++++++++++++++++
> >  .../ti-k3-boot-firmware.mk                    |  2 +-
> >  2 files changed, 31 insertions(+), 1 deletion(-)
> > 
> > diff --git a/boot/ti-k3-boot-firmware/Config.in b/boot/ti-k3-boot-firmware/Config.in
> > index d80bb4bdb3..581ec0c3b9 100644
> > --- a/boot/ti-k3-boot-firmware/Config.in
> > +++ b/boot/ti-k3-boot-firmware/Config.in
> > @@ -5,3 +5,33 @@ config BR2_TARGET_TI_K3_BOOT_FIRMWARE
> >  	  This package downloads and installs the TI-specific ti-sysfw
> >  	  and ti-dm firmware needed to boot TI K3 platforms (which
> >  	  include AM62x, AM64x, AM65x and more).
> > +
> > +if BR2_TARGET_TI_K3_BOOT_FIRMWARE
> > +choice
> > +	prompt "ti-k3-boot-firmware version"
> > +	default BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
> > +	help
> > +	  Select the version of TI K3 boot firmware you want to use.
> > +
> > +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
> > +	bool "09.02.00.009"
> > +
> > +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
> > +	bool "Custom version"
> > +	help
> > +	  This option allows to use a specific official version from
> > +	  git.ti.com.
> 
> When you use this option, you need to disable the hash checking with:
> 
> BR_NO_CHECK_HASH_FOR += $(TI_K3_BOOT_FIRMWARE_SOURCE)
> 
> Otherwise you get:
> 
> ERROR: No hash found for ti-linux-firmware-10.00.05.tar.xz
> 
> See how it's done for ti-k3-r5-loader:
> 
> ifeq ($(BR2_TARGET_TI_K3_R5_LOADER)$(BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION),y)
> BR_NO_CHECK_HASH_FOR += $(TI_K3_R5_LOADER_SOURCE)
> endif
> 

Ah yeah and we should probably add the corresponding hash files in the 
board directory of the boards who use this for when this version 
changes. Oops

~Bryan

> Best regards,
> Romain
> 
> 
> > +
> > +endchoice
> > +
> > +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION_VALUE
> > +	string "Custom ti-k3-boot-firmware version"
> > +	depends on BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
> > +
> > +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_VERSION
> > +	string
> > +	default "09.02.00.009"     if BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
> > +	default BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION_VALUE \
> > +				if BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
> > +
> > +endif
> > diff --git a/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk b/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
> > index 9332732ad4..350381ebbe 100644
> > --- a/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
> > +++ b/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
> > @@ -4,7 +4,7 @@
> >  #
> >  ################################################################################
> >  
> > -TI_K3_BOOT_FIRMWARE_VERSION = 09.02.00.009
> > +TI_K3_BOOT_FIRMWARE_VERSION = $(call qstrip,$(BR2_TARGET_TI_K3_BOOT_FIRMWARE_VERSION))
> >  TI_K3_BOOT_FIRMWARE_SITE = https://git.ti.com/cgit/processor-firmware/ti-linux-firmware/snapshot
> >  TI_K3_BOOT_FIRMWARE_SOURCE = ti-linux-firmware-$(TI_K3_BOOT_FIRMWARE_VERSION).tar.xz
> >  TI_K3_BOOT_FIRMWARE_INSTALL_IMAGES = YES
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Romain Naour July 12, 2024, 8:53 p.m. UTC | #3
Hi Bryan,

Le 12/07/2024 à 22:39, Bryan Brattlof a écrit :
> On July 12, 2024 thus sayeth Romain Naour via buildroot:
>> Hello Paresh, All,
>>
>> Le 11/07/2024 à 08:05, Paresh Bhagat via buildroot a écrit :
>>> Previously the version of ti-k3-boot-firmware (TI_K3_BOOT_FIRMWARE_VERSION) was
>>> fixed in mk file. Introduce a new config option BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
>>> so that user can change the version for ti-k3-boot-firmware using menuconfig.
>>>
>>> This provides greater flexibility for users to select different versions of
>>> ti-k3-boot-firmware without modifying the build script directly.
>>
>> Is the main reason to add an option to specify the ti-k3-boot-firmware version
>> is because it must match exactly with the selected u-boot or ti-k3-r5-loader
>> version due to the TI-SCI protocol and the DMSC prebuilt firmware binary
>> (provided by TI) (DMSC is the Security Manager Core in the SoC)?
>>
> 
> The TI-SCI protocol will always be backward compatible. There should be 
> no worries about using an older TIFS/DM/DMSC firmware with newer kernels 
> and bootloaders and any errors anyone sees should be reported to TI so 
> it can be addressed.
> 
> It gets a little weird with the TIFS <-> DM communication so it's 
> recommended to keep those in sync. I haven't seen any issues but that 
> doesn't mean they don't exist.

Thanks for the info, can you add this recommendation in the commit log?

> 
>>>
>>> Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
>>>
>>> ---
>>> Changes v3 -> v4:
>>>   - Ti k3 -> TI K3 (Suggested by Andreas Dannenberg)
>>>   - git.ti.org -> git.ti.com (Suggested by Andreas Dannenberg)
>>>
>>> Changes v2 -> v3:
>>>   - flexibilty -> flexibility (Suggested by Chirag Shilwant)
>>>
>>> Changes v1 -> v2:
>>>   - Fix whitespaces/indentation in Config.in file (Suggested by Bryan Brattlof)
>>>
>>> ---
>>>  boot/ti-k3-boot-firmware/Config.in            | 30 +++++++++++++++++++
>>>  .../ti-k3-boot-firmware.mk                    |  2 +-
>>>  2 files changed, 31 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/boot/ti-k3-boot-firmware/Config.in b/boot/ti-k3-boot-firmware/Config.in
>>> index d80bb4bdb3..581ec0c3b9 100644
>>> --- a/boot/ti-k3-boot-firmware/Config.in
>>> +++ b/boot/ti-k3-boot-firmware/Config.in
>>> @@ -5,3 +5,33 @@ config BR2_TARGET_TI_K3_BOOT_FIRMWARE
>>>  	  This package downloads and installs the TI-specific ti-sysfw
>>>  	  and ti-dm firmware needed to boot TI K3 platforms (which
>>>  	  include AM62x, AM64x, AM65x and more).
>>> +
>>> +if BR2_TARGET_TI_K3_BOOT_FIRMWARE
>>> +choice
>>> +	prompt "ti-k3-boot-firmware version"
>>> +	default BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
>>> +	help
>>> +	  Select the version of TI K3 boot firmware you want to use.
>>> +
>>> +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
>>> +	bool "09.02.00.009"
>>> +
>>> +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
>>> +	bool "Custom version"
>>> +	help
>>> +	  This option allows to use a specific official version from
>>> +	  git.ti.com.
>>
>> When you use this option, you need to disable the hash checking with:
>>
>> BR_NO_CHECK_HASH_FOR += $(TI_K3_BOOT_FIRMWARE_SOURCE)
>>
>> Otherwise you get:
>>
>> ERROR: No hash found for ti-linux-firmware-10.00.05.tar.xz
>>
>> See how it's done for ti-k3-r5-loader:
>>
>> ifeq ($(BR2_TARGET_TI_K3_R5_LOADER)$(BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION),y)
>> BR_NO_CHECK_HASH_FOR += $(TI_K3_R5_LOADER_SOURCE)
>> endif
>>
> 
> Ah yeah and we should probably add the corresponding hash files in the 
> board directory of the boards who use this for when this version 
> changes. Oops

Yes, perfect!

Best regards,
Romain


> 
> ~Bryan
> 
>> Best regards,
>> Romain
>>
>>
>>> +
>>> +endchoice
>>> +
>>> +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION_VALUE
>>> +	string "Custom ti-k3-boot-firmware version"
>>> +	depends on BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
>>> +
>>> +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_VERSION
>>> +	string
>>> +	default "09.02.00.009"     if BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
>>> +	default BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION_VALUE \
>>> +				if BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
>>> +
>>> +endif
>>> diff --git a/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk b/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
>>> index 9332732ad4..350381ebbe 100644
>>> --- a/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
>>> +++ b/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
>>> @@ -4,7 +4,7 @@
>>>  #
>>>  ################################################################################
>>>  
>>> -TI_K3_BOOT_FIRMWARE_VERSION = 09.02.00.009
>>> +TI_K3_BOOT_FIRMWARE_VERSION = $(call qstrip,$(BR2_TARGET_TI_K3_BOOT_FIRMWARE_VERSION))
>>>  TI_K3_BOOT_FIRMWARE_SITE = https://git.ti.com/cgit/processor-firmware/ti-linux-firmware/snapshot
>>>  TI_K3_BOOT_FIRMWARE_SOURCE = ti-linux-firmware-$(TI_K3_BOOT_FIRMWARE_VERSION).tar.xz
>>>  TI_K3_BOOT_FIRMWARE_INSTALL_IMAGES = YES
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot@buildroot.org
>> https://lists.buildroot.org/mailman/listinfo/buildroot
Paresh Bhagat July 15, 2024, 10:03 a.m. UTC | #4
Hi Bryan, Romain
On 13/07/24 02:09, Bryan Brattlof wrote:
> On July 12, 2024 thus sayeth Romain Naour via buildroot:
>> Hello Paresh, All,
>>
>> Le 11/07/2024 à 08:05, Paresh Bhagat via buildroot a écrit :
>>> Previously the version of ti-k3-boot-firmware (TI_K3_BOOT_FIRMWARE_VERSION) was
>>> fixed in mk file. Introduce a new config option BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
>>> so that user can change the version for ti-k3-boot-firmware using menuconfig.
>>>
>>> This provides greater flexibility for users to select different versions of
>>> ti-k3-boot-firmware without modifying the build script directly.
>> Is the main reason to add an option to specify the ti-k3-boot-firmware version
>> is because it must match exactly with the selected u-boot or ti-k3-r5-loader
>> version due to the TI-SCI protocol and the DMSC prebuilt firmware binary
>> (provided by TI) (DMSC is the Security Manager Core in the SoC)?
>>
> The TI-SCI protocol will always be backward compatible. There should be
> no worries about using an older TIFS/DM/DMSC firmware with newer kernels
> and bootloaders and any errors anyone sees should be reported to TI so
> it can be addressed.
>
> It gets a little weird with the TIFS <-> DM communication so it's
> recommended to keep those in sync. I haven't seen any issues but that
> doesn't mean they don't exist.
>
>>> Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
>>>
>>> ---
>>> Changes v3 -> v4:
>>>    - Ti k3 -> TI K3 (Suggested by Andreas Dannenberg)
>>>    - git.ti.org -> git.ti.com (Suggested by Andreas Dannenberg)
>>>
>>> Changes v2 -> v3:
>>>    - flexibilty -> flexibility (Suggested by Chirag Shilwant)
>>>
>>> Changes v1 -> v2:
>>>    - Fix whitespaces/indentation in Config.in file (Suggested by Bryan Brattlof)
>>>
>>> ---
>>>   boot/ti-k3-boot-firmware/Config.in            | 30 +++++++++++++++++++
>>>   .../ti-k3-boot-firmware.mk                    |  2 +-
>>>   2 files changed, 31 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/boot/ti-k3-boot-firmware/Config.in b/boot/ti-k3-boot-firmware/Config.in
>>> index d80bb4bdb3..581ec0c3b9 100644
>>> --- a/boot/ti-k3-boot-firmware/Config.in
>>> +++ b/boot/ti-k3-boot-firmware/Config.in
>>> @@ -5,3 +5,33 @@ config BR2_TARGET_TI_K3_BOOT_FIRMWARE
>>>   	  This package downloads and installs the TI-specific ti-sysfw
>>>   	  and ti-dm firmware needed to boot TI K3 platforms (which
>>>   	  include AM62x, AM64x, AM65x and more).
>>> +
>>> +if BR2_TARGET_TI_K3_BOOT_FIRMWARE
>>> +choice
>>> +	prompt "ti-k3-boot-firmware version"
>>> +	default BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
>>> +	help
>>> +	  Select the version of TI K3 boot firmware you want to use.
>>> +
>>> +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
>>> +	bool "09.02.00.009"
>>> +
>>> +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
>>> +	bool "Custom version"
>>> +	help
>>> +	  This option allows to use a specific official version from
>>> +	  git.ti.com.
>> When you use this option, you need to disable the hash checking with:
>>
>> BR_NO_CHECK_HASH_FOR += $(TI_K3_BOOT_FIRMWARE_SOURCE)
>>
>> Otherwise you get:
>>
>> ERROR: No hash found for ti-linux-firmware-10.00.05.tar.xz
>>
>> See how it's done for ti-k3-r5-loader:
>>
>> ifeq ($(BR2_TARGET_TI_K3_R5_LOADER)$(BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION),y)
>> BR_NO_CHECK_HASH_FOR += $(TI_K3_R5_LOADER_SOURCE)
>> endif
>>
> Ah yeah and we should probably add the corresponding hash files in the
> board directory of the boards who use this for when this version
> changes. Oops
>
> ~Bryan

I see hash checking is disabled only when using the latest version and 
not when a custom version is specified. So should i disable hash 
checking for latest version here too?

Regards,

Paresh

>
>> Best regards,
>> Romain
>>
>>
>>> +
>>> +endchoice
>>> +
>>> +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION_VALUE
>>> +	string "Custom ti-k3-boot-firmware version"
>>> +	depends on BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
>>> +
>>> +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_VERSION
>>> +	string
>>> +	default "09.02.00.009"     if BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
>>> +	default BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION_VALUE \
>>> +				if BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
>>> +
>>> +endif
>>> diff --git a/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk b/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
>>> index 9332732ad4..350381ebbe 100644
>>> --- a/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
>>> +++ b/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
>>> @@ -4,7 +4,7 @@
>>>   #
>>>   ################################################################################
>>>   
>>> -TI_K3_BOOT_FIRMWARE_VERSION = 09.02.00.009
>>> +TI_K3_BOOT_FIRMWARE_VERSION = $(call qstrip,$(BR2_TARGET_TI_K3_BOOT_FIRMWARE_VERSION))
>>>   TI_K3_BOOT_FIRMWARE_SITE = https://git.ti.com/cgit/processor-firmware/ti-linux-firmware/snapshot
>>>   TI_K3_BOOT_FIRMWARE_SOURCE = ti-linux-firmware-$(TI_K3_BOOT_FIRMWARE_VERSION).tar.xz
>>>   TI_K3_BOOT_FIRMWARE_INSTALL_IMAGES = YES
>> _______________________________________________
>> buildroot mailing list
>> buildroot@buildroot.org
>> https://lists.buildroot.org/mailman/listinfo/buildroot
Bryan Brattlof July 18, 2024, 9:32 p.m. UTC | #5
On July 15, 2024 thus sayeth Paresh Bhagat via buildroot:
> Hi Bryan, Romain
> On 13/07/24 02:09, Bryan Brattlof wrote:
> > On July 12, 2024 thus sayeth Romain Naour via buildroot:
> > > Hello Paresh, All,
> > > 
> > > Le 11/07/2024 à 08:05, Paresh Bhagat via buildroot a écrit :
> > > > Previously the version of ti-k3-boot-firmware (TI_K3_BOOT_FIRMWARE_VERSION) was
> > > > fixed in mk file. Introduce a new config option BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
> > > > so that user can change the version for ti-k3-boot-firmware using menuconfig.
> > > > 
> > > > This provides greater flexibility for users to select different versions of
> > > > ti-k3-boot-firmware without modifying the build script directly.
> > > Is the main reason to add an option to specify the ti-k3-boot-firmware version
> > > is because it must match exactly with the selected u-boot or ti-k3-r5-loader
> > > version due to the TI-SCI protocol and the DMSC prebuilt firmware binary
> > > (provided by TI) (DMSC is the Security Manager Core in the SoC)?
> > > 
> > The TI-SCI protocol will always be backward compatible. There should be
> > no worries about using an older TIFS/DM/DMSC firmware with newer kernels
> > and bootloaders and any errors anyone sees should be reported to TI so
> > it can be addressed.
> > 
> > It gets a little weird with the TIFS <-> DM communication so it's
> > recommended to keep those in sync. I haven't seen any issues but that
> > doesn't mean they don't exist.
> > 
> > > > Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
> > > > 
> > > > ---
> > > > Changes v3 -> v4:
> > > >    - Ti k3 -> TI K3 (Suggested by Andreas Dannenberg)
> > > >    - git.ti.org -> git.ti.com (Suggested by Andreas Dannenberg)
> > > > 
> > > > Changes v2 -> v3:
> > > >    - flexibilty -> flexibility (Suggested by Chirag Shilwant)
> > > > 
> > > > Changes v1 -> v2:
> > > >    - Fix whitespaces/indentation in Config.in file (Suggested by Bryan Brattlof)
> > > > 
> > > > ---
> > > >   boot/ti-k3-boot-firmware/Config.in            | 30 +++++++++++++++++++
> > > >   .../ti-k3-boot-firmware.mk                    |  2 +-
> > > >   2 files changed, 31 insertions(+), 1 deletion(-)
> > > > 
> > > > diff --git a/boot/ti-k3-boot-firmware/Config.in b/boot/ti-k3-boot-firmware/Config.in
> > > > index d80bb4bdb3..581ec0c3b9 100644
> > > > --- a/boot/ti-k3-boot-firmware/Config.in
> > > > +++ b/boot/ti-k3-boot-firmware/Config.in
> > > > @@ -5,3 +5,33 @@ config BR2_TARGET_TI_K3_BOOT_FIRMWARE
> > > >   	  This package downloads and installs the TI-specific ti-sysfw
> > > >   	  and ti-dm firmware needed to boot TI K3 platforms (which
> > > >   	  include AM62x, AM64x, AM65x and more).
> > > > +
> > > > +if BR2_TARGET_TI_K3_BOOT_FIRMWARE
> > > > +choice
> > > > +	prompt "ti-k3-boot-firmware version"
> > > > +	default BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
> > > > +	help
> > > > +	  Select the version of TI K3 boot firmware you want to use.
> > > > +
> > > > +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
> > > > +	bool "09.02.00.009"
> > > > +
> > > > +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
> > > > +	bool "Custom version"
> > > > +	help
> > > > +	  This option allows to use a specific official version from
> > > > +	  git.ti.com.
> > > When you use this option, you need to disable the hash checking with:
> > > 
> > > BR_NO_CHECK_HASH_FOR += $(TI_K3_BOOT_FIRMWARE_SOURCE)
> > > 
> > > Otherwise you get:
> > > 
> > > ERROR: No hash found for ti-linux-firmware-10.00.05.tar.xz
> > > 
> > > See how it's done for ti-k3-r5-loader:
> > > 
> > > ifeq ($(BR2_TARGET_TI_K3_R5_LOADER)$(BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION),y)
> > > BR_NO_CHECK_HASH_FOR += $(TI_K3_R5_LOADER_SOURCE)
> > > endif
> > > 
> > Ah yeah and we should probably add the corresponding hash files in the
> > board directory of the boards who use this for when this version
> > changes. Oops
> > 
> > ~Bryan
> 
> I see hash checking is disabled only when using the latest version and not
> when a custom version is specified. So should i disable hash checking for
> latest version here too?
> 

Hmm I see what you're talking about. We may not want to disable the hash 
check for any option. If we allow boards to begin pinning a 
custom/specific version of TIFS/DM/DMSC they will need to put the hash 
in their board folder to avoid bad downloads.

If they want to prototype something quickly they should probably use the 
locka.mk override system. 

~Bryan

> Regards,
> 
> Paresh
> 
> > 
> > > Best regards,
> > > Romain
> > > 
> > > 
> > > > +
> > > > +endchoice
> > > > +
> > > > +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION_VALUE
> > > > +	string "Custom ti-k3-boot-firmware version"
> > > > +	depends on BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
> > > > +
> > > > +config BR2_TARGET_TI_K3_BOOT_FIRMWARE_VERSION
> > > > +	string
> > > > +	default "09.02.00.009"     if BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
> > > > +	default BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION_VALUE \
> > > > +				if BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
> > > > +
> > > > +endif
> > > > diff --git a/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk b/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
> > > > index 9332732ad4..350381ebbe 100644
> > > > --- a/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
> > > > +++ b/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
> > > > @@ -4,7 +4,7 @@
> > > >   #
> > > >   ################################################################################
> > > > -TI_K3_BOOT_FIRMWARE_VERSION = 09.02.00.009
> > > > +TI_K3_BOOT_FIRMWARE_VERSION = $(call qstrip,$(BR2_TARGET_TI_K3_BOOT_FIRMWARE_VERSION))
> > > >   TI_K3_BOOT_FIRMWARE_SITE = https://git.ti.com/cgit/processor-firmware/ti-linux-firmware/snapshot
> > > >   TI_K3_BOOT_FIRMWARE_SOURCE = ti-linux-firmware-$(TI_K3_BOOT_FIRMWARE_VERSION).tar.xz
> > > >   TI_K3_BOOT_FIRMWARE_INSTALL_IMAGES = YES
> > > _______________________________________________
> > > buildroot mailing list
> > > buildroot@buildroot.org
> > > https://lists.buildroot.org/mailman/listinfo/buildroot
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
diff mbox series

Patch

diff --git a/boot/ti-k3-boot-firmware/Config.in b/boot/ti-k3-boot-firmware/Config.in
index d80bb4bdb3..581ec0c3b9 100644
--- a/boot/ti-k3-boot-firmware/Config.in
+++ b/boot/ti-k3-boot-firmware/Config.in
@@ -5,3 +5,33 @@  config BR2_TARGET_TI_K3_BOOT_FIRMWARE
 	  This package downloads and installs the TI-specific ti-sysfw
 	  and ti-dm firmware needed to boot TI K3 platforms (which
 	  include AM62x, AM64x, AM65x and more).
+
+if BR2_TARGET_TI_K3_BOOT_FIRMWARE
+choice
+	prompt "ti-k3-boot-firmware version"
+	default BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
+	help
+	  Select the version of TI K3 boot firmware you want to use.
+
+config BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
+	bool "09.02.00.009"
+
+config BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
+	bool "Custom version"
+	help
+	  This option allows to use a specific official version from
+	  git.ti.com.
+
+endchoice
+
+config BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION_VALUE
+	string "Custom ti-k3-boot-firmware version"
+	depends on BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
+
+config BR2_TARGET_TI_K3_BOOT_FIRMWARE_VERSION
+	string
+	default "09.02.00.009"     if BR2_TARGET_TI_K3_BOOT_FIRMWARE_LATEST_VERSION
+	default BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION_VALUE \
+				if BR2_TARGET_TI_K3_BOOT_FIRMWARE_CUSTOM_VERSION
+
+endif
diff --git a/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk b/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
index 9332732ad4..350381ebbe 100644
--- a/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
+++ b/boot/ti-k3-boot-firmware/ti-k3-boot-firmware.mk
@@ -4,7 +4,7 @@ 
 #
 ################################################################################
 
-TI_K3_BOOT_FIRMWARE_VERSION = 09.02.00.009
+TI_K3_BOOT_FIRMWARE_VERSION = $(call qstrip,$(BR2_TARGET_TI_K3_BOOT_FIRMWARE_VERSION))
 TI_K3_BOOT_FIRMWARE_SITE = https://git.ti.com/cgit/processor-firmware/ti-linux-firmware/snapshot
 TI_K3_BOOT_FIRMWARE_SOURCE = ti-linux-firmware-$(TI_K3_BOOT_FIRMWARE_VERSION).tar.xz
 TI_K3_BOOT_FIRMWARE_INSTALL_IMAGES = YES