diff mbox series

[1/2] package/freescale-imx: Add option for all i.MX FW needs

Message ID 1593012228-18959-2-git-send-email-stephane.viau@oss.nxp.com
State Changes Requested
Headers show
Series package/freescale-imx: clean-up proposal | expand

Commit Message

Stephane Viau (OSS) June 24, 2020, 3:23 p.m. UTC
Some SoC need a HDMI FW for their bootloader, some other require EPDC,
SDMA and/or VPU.
Instead of trying to "guess" what firmware images need to be installed
in firmware-imx.mk, let the Config framework do the job and allow each
SoC to actually 'select' what firmware they need.

Note that this patch should also help introducing an eventual DP FW, as
Gary mentioned in a separate thread [1].

[1] http://lists.busybox.net/pipermail/buildroot/2020-May/283181.html

Suggested-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
---
 package/freescale-imx/Config.in | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

Comments

Fabio Estevam June 24, 2020, 7:54 p.m. UTC | #1
Hi Stephane,

On Wed, Jun 24, 2020 at 12:57 PM Stephane Viau
<stephane.viau@oss.nxp.com> wrote:

>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
>         bool "imx6sl/imx6sx"
> +       select BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
> +       select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +       select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY

There is no VPU on i.MX6SL/i.MX6SX.

>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
>         bool "imx6ul/imx6ull"
> +       select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +       select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY

There is no VPU on i.MX6UL/i.MX6ULL.

>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
>         bool "imx7d/imx7ulp"
> +       select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +       select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY

There is no VPU on i.MX7.
Fabio Estevam June 24, 2020, 8:11 p.m. UTC | #2
Hi Stephane,

Forgot to add one more comment:

On Wed, Jun 24, 2020 at 12:57 PM Stephane Viau
<stephane.viau@oss.nxp.com> wrote:

> +config BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY

Should we name this after the VPU IP name instead? Something like this:

BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_CODA

> +config BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X

BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_MALONE
Yann E. MORIN June 24, 2020, 8:26 p.m. UTC | #3
Fabio, Stéphane, All,

On 2020-06-24 17:11 -0300, Fabio Estevam spake thusly:
> Forgot to add one more comment:
> 
> On Wed, Jun 24, 2020 at 12:57 PM Stephane Viau
> <stephane.viau@oss.nxp.com> wrote:
> 
> > +config BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
> 
> Should we name this after the VPU IP name instead? Something like this:
> BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_CODA
> 
> > +config BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
> BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_MALONE

If the VPU code names are pretty commonly known, then yes, that looks
better, indeed.

Regards,
Yann E. MORIN.
Thomas Petazzoni June 24, 2020, 8:58 p.m. UTC | #4
Hello,

Thanks for doing this work! It's definitely bringing some good sanity
into this firmware-imx mess! See below some comments.

On Wed, 24 Jun 2020 17:23:47 +0200
Stephane Viau <stephane.viau@oss.nxp.com> wrote:

> diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
> index 0be37ce..2cac650 100644
> --- a/package/freescale-imx/Config.in
> +++ b/package/freescale-imx/Config.in
> @@ -12,40 +12,63 @@ choice
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX25_3STACK
>  	bool "imx25-3stack"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS
>  	bool "imx27ads"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX37_3STACK
>  	bool "imx37-3stack"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX50
>  	bool "imx50"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
>  	bool "imx51"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
>  	bool "imx53"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
>  	bool "imx6q/imx6dl"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
>  	bool "imx6sl/imx6sx"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
>  	bool "imx6ul/imx6ull"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
>  	bool "imx7d/imx7ulp"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
>  	bool "imx8"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
>  	bool "imx8m"
>  	select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_HDMI_FW
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
>  	bool "imx8mm"
> @@ -57,6 +80,7 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
>  	bool "imx8x"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
>  endchoice
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
> @@ -102,6 +126,21 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
>  config BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
>  	bool
>  
> +config BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
> +	bool
> +
> +config BR2_PACKAGE_FREESCALE_IMX_NEED_HDMI_FW
> +	bool
> +
> +config BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	bool
> +
> +config BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
> +	bool
> +
> +config BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
> +	bool

It would be nicer to use "NEEDS" instead of "NEED". That would require
a preparation patch that renames BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
to BR2_PACKAGE_FREESCALE_IMX_NEEDS_DDR_FW.

However, I am wondering if package/freescale-imx/Config.in is the right
place for all this logic. After all, this is only related to the
firmware-imx package.

Shouldn't we instead move that to
package/freescale-imx/firmware-imx/Config.in, with the following form:

config BR2_PACKAGE_FREESCALE_IMX_NEEDS_DDR_FW
	bool
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN

and ditto the other options ? Here as well, it would require a
preparation patch to take care of the NEEDS_DDR_FW case, and then your
patch that handles all other FW files.

Best regards,

Thomas
Stephane Viau (OSS) June 25, 2020, 6:33 a.m. UTC | #5
>Hello,

Hello Thomas, Yann/Gary,

>
>Thanks for doing this work! It's definitely bringing some good sanity
>into this firmware-imx mess! See below some comments.

Glad you like it & thank you for your comments.

>
>> diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
>> index 0be37ce..2cac650 100644
>> --- a/package/freescale-imx/Config.in
>> +++ b/package/freescale-imx/Config.in
>> @@ -12,40 +12,63 @@ choice
>>  
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX25_3STACK
>>        bool "imx25-3stack"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>>  
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS
>>        bool "imx27ads"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>  
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX37_3STACK
>>        bool "imx37-3stack"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>  
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX50
>>        bool "imx50"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>  
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
>>        bool "imx51"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>  
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
>>        bool "imx53"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>  
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
>>        bool "imx6q/imx6dl"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>  
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
>>        bool "imx6sl/imx6sx"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>  
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
>>        bool "imx6ul/imx6ull"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>  
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
>>        bool "imx7d/imx7ulp"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>  
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
>>        bool "imx8"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
>>  
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
>>        bool "imx8m"
>>        select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_HDMI_FW
>>  
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
>>        bool "imx8mm"
>> @@ -57,6 +80,7 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
>>  
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
>>        bool "imx8x"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
>>  endchoice
>>  
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
>> @@ -102,6 +126,21 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
>>  config BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
>>        bool
>>  
>> +config BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
>> +     bool
>> +
>> +config BR2_PACKAGE_FREESCALE_IMX_NEED_HDMI_FW
>> +     bool
>> +
>> +config BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     bool
>> +
>> +config BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>> +     bool
>> +
>> +config BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
>> +     bool
>
>It would be nicer to use "NEEDS" instead of "NEED". That would require
>a preparation patch that renames BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
>to BR2_PACKAGE_FREESCALE_IMX_NEEDS_DDR_FW.

Agreed.

>
>However, I am wondering if package/freescale-imx/Config.in is the right
>place for all this logic. After all, this is only related to the
>firmware-imx package.
>
>Shouldn't we instead move that to
>package/freescale-imx/firmware-imx/Config.in, with the following form:
>
>config BR2_PACKAGE_FREESCALE_IMX_NEEDS_DDR_FW
>        bool
>        default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
>        default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
>        default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
>
>and ditto the other options ? Here as well, it would require a
>preparation patch to take care of the NEEDS_DDR_FW case, and then your
>patch that handles all other FW files.

I'd like to have Yann's and/or Gary's feedback on this. I'm using 'select' based on this comment:
"
  As Yann mentioned on IRC:
  "Usually, when we introduce such option, it does not 'default y' based
  on some other options. Instead, the other options 'select' it."
"
from http://lists.busybox.net/pipermail/buildroot/2020-May/283180.html

BR,
Stephane.

>
>Best regards,
>
>Thomas
>-- 
>Thomas Petazzoni, CTO, Bootlin
>Embedded Linux and Kernel engineering
>https://bootlin.com
Yann E. MORIN June 25, 2020, 8:33 p.m. UTC | #6
Stephane, All,

On 2020-06-25 06:33 +0000, Stephane Viau (OSS) spake thusly:
> Thomas wrote:
> >However, I am wondering if package/freescale-imx/Config.in is the right
> >place for all this logic. After all, this is only related to the
> >firmware-imx package.
> >
> >Shouldn't we instead move that to
> >package/freescale-imx/firmware-imx/Config.in, with the following form:
> >
> >config BR2_PACKAGE_FREESCALE_IMX_NEEDS_DDR_FW
> >        bool
> >        default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
> >        default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
> >        default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
> >
> >and ditto the other options ? Here as well, it would require a
> >preparation patch to take care of the NEEDS_DDR_FW case, and then your
> >patch that handles all other FW files.
> 
> I'd like to have Yann's and/or Gary's feedback on this. I'm using 'select' based on this comment:
> "
>   As Yann mentioned on IRC:
>   "Usually, when we introduce such option, it does not 'default y' based
>   on some other options. Instead, the other options 'select' it."
> "
> from http://lists.busybox.net/pipermail/buildroot/2020-May/283180.html

True, that's what I said. That was based on the assumption that the
options would be in package/freescale-imx/Config.in.

But now, seeing the reasonning by Thomas, I agree with him: those are
better suited to live in package/freescale-imx/firmware-imx/Config.in/

And thus it is less clean that the variant selection in the generic
choice would have to catter with options specific to a package.

Hence, the "default y if ..." is indeed better.

Sorry I did not have that insight to begin with...

Regards,
Yann E. MORIN.
Stephane Viau (OSS) June 29, 2020, 6:38 a.m. UTC | #7
Yann, Sebastien, all,

>> Thomas wrote:                                                                 
>> >However, I am wondering if package/freescale-imx/Config.in is the right      
>> >place for all this logic. After all, this is only related to the             
>> >firmware-imx package.                                                        
>> >                                                                             
>> >Shouldn't we instead move that to                                            
>> >package/freescale-imx/firmware-imx/Config.in, with the following form:       
>> >                                                                             
>> >config BR2_PACKAGE_FREESCALE_IMX_NEEDS_DDR_FW                                
>> >        bool                                                                 
>> >        default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M                
>> >        default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM               
>> >        default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN               
>> >                                                                             
>> >and ditto the other options ? Here as well, it would require a               
>> >preparation patch to take care of the NEEDS_DDR_FW case, and then your       
>> >patch that handles all other FW files.                                       
>>                                                                               
>> I'd like to have Yann's and/or Gary's feedback on this. I'm using 'select' based on this comment:
>> "                                                                             
>>   As Yann mentioned on IRC:                                                   
>>   "Usually, when we introduce such option, it does not 'default y' based      
>>   on some other options. Instead, the other options 'select' it."             
>> "                                                                             
>> from http://lists.busybox.net/pipermail/buildroot/2020-May/283180.html        
>                                                                                
>True, that's what I said. That was based on the assumption that the             
>options would be in package/freescale-imx/Config.in.                            
>                                                                                
>But now, seeing the reasonning by Thomas, I agree with him: those are           
>better suited to live in package/freescale-imx/firmware-imx/Config.in/          
>                                                                                
>And thus it is less clean that the variant selection in the generic             
>choice would have to catter with options specific to a package.                 
>                                                                                
>Hence, the "default y if ..." is indeed better.                                 
>                                                                                
>Sorry I did not have that insight to begin with...                              

No worries ; thank you all for your comments!
Will send out a v2 soon..

BTW, I'm also thinking of embedding the 'install path' fix proposed by Sebastien here:
http://lists.busybox.net/pipermail/buildroot/2020-June/284875.html 

BR,
Stephane. 
                                                                                 
>                                                                                
>Regards,                                                                        
>Yann E. MORIN.                                                                  
>                                                                                
>--                                                                              
>.-----------------.--------------------.------------------.--------------------.
>|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
>| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
>| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
>| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
>'------------------------------^-------^------------------^--------------------'
Gary Bisson June 29, 2020, 8:08 a.m. UTC | #8
Hi Stephane,

Sorry for the late reply, apart for the comments already made by otherse
I have one suggestion below.

On Wed, Jun 24, 2020 at 05:23:47PM +0200, Stephane Viau wrote:
> Some SoC need a HDMI FW for their bootloader, some other require EPDC,
> SDMA and/or VPU.
> Instead of trying to "guess" what firmware images need to be installed
> in firmware-imx.mk, let the Config framework do the job and allow each
> SoC to actually 'select' what firmware they need.
> 
> Note that this patch should also help introducing an eventual DP FW, as
> Gary mentioned in a separate thread [1].
> 
> [1] http://lists.busybox.net/pipermail/buildroot/2020-May/283181.html
> 
> Suggested-by: Yann E. MORIN <yann.morin.1998@free.fr>
> Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
> ---
>  package/freescale-imx/Config.in | 39 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 39 insertions(+)
> 
> diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
> index 0be37ce..2cac650 100644
> --- a/package/freescale-imx/Config.in
> +++ b/package/freescale-imx/Config.in
> @@ -12,40 +12,63 @@ choice
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX25_3STACK
>  	bool "imx25-3stack"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS
>  	bool "imx27ads"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX37_3STACK
>  	bool "imx37-3stack"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX50
>  	bool "imx50"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
>  	bool "imx51"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
>  	bool "imx53"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
>  	bool "imx6q/imx6dl"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
>  	bool "imx6sl/imx6sx"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
>  	bool "imx6ul/imx6ull"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
>  	bool "imx7d/imx7ulp"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
>  	bool "imx8"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
>  	bool "imx8m"
>  	select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_HDMI_FW
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
>  	bool "imx8mm"
> @@ -57,6 +80,7 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
>  	bool "imx8x"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
>  endchoice
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
> @@ -102,6 +126,21 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
>  config BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
>  	bool
>  
> +config BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
> +	bool
> +
> +config BR2_PACKAGE_FREESCALE_IMX_NEED_HDMI_FW
> +	bool
> +
> +config BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> +	bool
> +
> +config BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
> +	bool
> +
> +config BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
> +	bool

So here you would copy all VPU FW for "LEGACY" but the one for
IMX8/IMX8X?
I'd rather have a generic IMX_NEED_VPU_FW for all platforms that require
a VPU FW and then in firmware-imx.mk only copy the files relevant to the
platform selected (imx35,51,6,8x), what do you think?

Regards,
Gary
Stephane Viau (OSS) June 29, 2020, 8:26 a.m. UTC | #9
>
>________________________________________
>From: Gary Bisson <gary.bisson@boundarydevices.com>
>Sent: Monday, June 29, 2020 8:08 AM
>To: Stephane Viau (OSS)
>Cc: buildroot@buildroot.org; Gary Bisson; Refik Tuzakli; Yann E . MORIN
>Subject: Re: [Buildroot] [PATCH 1/2] package/freescale-imx: Add option for all i.MX FW needs
>
>Hi Stephane,

Hi Gary, 

>
>Sorry for the late reply, apart for the comments already made by otherse
>I have one suggestion below.
>
>On Wed, Jun 24, 2020 at 05:23:47PM +0200, Stephane Viau wrote:
>> Some SoC need a HDMI FW for their bootloader, some other require EPDC,
>> SDMA and/or VPU.
>> Instead of trying to "guess" what firmware images need to be installed
>> in firmware-imx.mk, let the Config framework do the job and allow each
>> SoC to actually 'select' what firmware they need.
>>
>> Note that this patch should also help introducing an eventual DP FW, as
>> Gary mentioned in a separate thread [1].
>>
>> [1] http://lists.busybox.net/pipermail/buildroot/2020-May/283181.html
>>
>> Suggested-by: Yann E. MORIN <yann.morin.1998@free.fr>
>> Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
>> ---
>>  package/freescale-imx/Config.in | 39 +++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 39 insertions(+)
>>
>> diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
>> index 0be37ce..2cac650 100644
>> --- a/package/freescale-imx/Config.in
>> +++ b/package/freescale-imx/Config.in
>> @@ -12,40 +12,63 @@ choice
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX25_3STACK
>>       bool "imx25-3stack"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS
>>       bool "imx27ads"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX37_3STACK
>>       bool "imx37-3stack"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX50
>>       bool "imx50"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
>>       bool "imx51"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
>>       bool "imx53"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
>>       bool "imx6q/imx6dl"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
>>       bool "imx6sl/imx6sx"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
>>       bool "imx6ul/imx6ull"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
>>       bool "imx7d/imx7ulp"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
>>       bool "imx8"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
>>       bool "imx8m"
>>       select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_HDMI_FW
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
>>       bool "imx8mm"
>> @@ -57,6 +80,7 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
>>       bool "imx8x"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
>>  endchoice
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
>> @@ -102,6 +126,21 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
>>  config BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
>>       bool
>>
>> +config BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
>> +     bool
>> +
>> +config BR2_PACKAGE_FREESCALE_IMX_NEED_HDMI_FW
>> +     bool
>> +
>> +config BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
>> +     bool
>> +
>> +config BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
>> +     bool
>> +
>> +config BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
>> +     bool
>
>So here you would copy all VPU FW for "LEGACY" but the one for
>IMX8/IMX8X?
>I'd rather have a generic IMX_NEED_VPU_FW for all platforms that require
>a VPU FW and then in firmware-imx.mk only copy the files relevant to the
>platform selected (imx35,51,6,8x), what do you think?

This whole section has been reworked in v2 ; 
can you please review and let me know if you still want some improvement there?

BR, 
Stephane.

>
>Regards,
>Gary
>
Kurt Van Dijck June 29, 2020, 8:32 a.m. UTC | #10
On do, 25 jun 2020 06:33:59 +0000, Stephane Viau (OSS) wrote:
> Date: Thu, 25 Jun 2020 06:33:59 +0000
> From: "Stephane Viau (OSS)" <stephane.viau@oss.nxp.com>
> To: Thomas Petazzoni <thomas.petazzoni@bootlin.com>, "Yann E. MORIN"
>  <yann.morin.1998@free.fr>, Gary Bisson <bisson.gary@gmail.com>
> Cc: Refik Tuzakli <tuzakli.refik@gmail.com>, "buildroot@buildroot.org"
>  <buildroot@buildroot.org>
> Subject: Re: [Buildroot] [PATCH 1/2] package/freescale-imx: Add option for
>  all i.MX FW needs
> 
> 
> >Hello,
> 
> Hello Thomas, Yann/Gary,
> 
> >
> >Thanks for doing this work! It's definitely bringing some good sanity
> >into this firmware-imx mess! See below some comments.
> 
> Glad you like it & thank you for your comments.
> 
> >
> >> diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
> >> index 0be37ce..2cac650 100644
> >> --- a/package/freescale-imx/Config.in
> >> +++ b/package/freescale-imx/Config.in
> >> @@ -12,40 +12,63 @@ choice
> >>  
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX25_3STACK
> >>        bool "imx25-3stack"
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> >>  
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS
> >>        bool "imx27ads"
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
> >>  
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX37_3STACK
> >>        bool "imx37-3stack"
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
> >>  
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX50
> >>        bool "imx50"
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
> >>  
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
> >>        bool "imx51"
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
> >>  
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
> >>        bool "imx53"
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
> >>  
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
> >>        bool "imx6q/imx6dl"
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
> >>  
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
> >>        bool "imx6sl/imx6sx"
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
> >>  
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
> >>        bool "imx6ul/imx6ull"
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
> >>  
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
> >>        bool "imx7d/imx7ulp"
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
> >>  
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
> >>        bool "imx8"
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
> >>  
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
> >>        bool "imx8m"
> >>        select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_HDMI_FW
> >>  
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
> >>        bool "imx8mm"
> >> @@ -57,6 +80,7 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
> >>  
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
> >>        bool "imx8x"
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
> >>  endchoice
> >>  
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
> >> @@ -102,6 +126,21 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
> >>  config BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
> >>        bool
> >>  
> >> +config BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
> >> +     bool
> >> +
> >> +config BR2_PACKAGE_FREESCALE_IMX_NEED_HDMI_FW
> >> +     bool
> >> +
> >> +config BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
> >> +     bool
> >> +
> >> +config BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
> >> +     bool
> >> +
> >> +config BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
> >> +     bool
> >
> >It would be nicer to use "NEEDS" instead of "NEED". That would require
> >a preparation patch that renames BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
> >to BR2_PACKAGE_FREESCALE_IMX_NEEDS_DDR_FW.
> 
> Agreed.
> 
> >
> >However, I am wondering if package/freescale-imx/Config.in is the right
> >place for all this logic. After all, this is only related to the
> >firmware-imx package.
> >
> >Shouldn't we instead move that to
> >package/freescale-imx/firmware-imx/Config.in, with the following form:
> >
> >config BR2_PACKAGE_FREESCALE_IMX_NEEDS_DDR_FW
> >        bool
> >        default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
> >        default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
> >        default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
> >
> >and ditto the other options ? Here as well, it would require a
> >preparation patch to take care of the NEEDS_DDR_FW case, and then your
> >patch that handles all other FW files.
> 
> I'd like to have Yann's and/or Gary's feedback on this. I'm using 'select' based on this comment:
> "
>   As Yann mentioned on IRC:
>   "Usually, when we introduce such option, it does not 'default y' based
>   on some other options. Instead, the other options 'select' it."
> "
> from http://lists.busybox.net/pipermail/buildroot/2020-May/283180.html

If you insert a prompt statement, then that allows to NOT include the
firmware if explicitely turned off.
I'm currently working on an imx8 platform without VPU needs.
I don't like shipping firmware that I don't need.

Kurt
diff mbox series

Patch

diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index 0be37ce..2cac650 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -12,40 +12,63 @@  choice
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX25_3STACK
 	bool "imx25-3stack"
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS
 	bool "imx27ads"
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX37_3STACK
 	bool "imx37-3stack"
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX50
 	bool "imx50"
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
 	bool "imx51"
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
 	bool "imx53"
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
 	bool "imx6q/imx6dl"
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
 	bool "imx6sl/imx6sx"
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
 	bool "imx6ul/imx6ull"
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
 	bool "imx7d/imx7ulp"
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
 	bool "imx8"
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
 	bool "imx8m"
 	select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_HDMI_FW
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
 	bool "imx8mm"
@@ -57,6 +80,7 @@  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
 	bool "imx8x"
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
 endchoice
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
@@ -102,6 +126,21 @@  config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
 config BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
 	bool
 
+config BR2_PACKAGE_FREESCALE_IMX_NEED_EPDC_FW
+	bool
+
+config BR2_PACKAGE_FREESCALE_IMX_NEED_HDMI_FW
+	bool
+
+config BR2_PACKAGE_FREESCALE_IMX_NEED_SDMA_FW
+	bool
+
+config BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_LEGACY
+	bool
+
+config BR2_PACKAGE_FREESCALE_IMX_NEED_VPU_FW_IMX8_IMX8X
+	bool
+
 source "package/freescale-imx/imx-alsa-plugins/Config.in"
 source "package/freescale-imx/imx-codec/Config.in"
 source "package/freescale-imx/imx-kobs/Config.in"