All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gary Bisson <gary.bisson@boundarydevices.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] package/freescale-imx/firmware-imx: fix sdma support for imx8m family
Date: Thu, 16 Jul 2020 15:52:50 +0200	[thread overview]
Message-ID: <20200716135250.GA467516@p1g2> (raw)
In-Reply-To: <20200716154637.52159ef7@windsurf.home>

Hi Thomas, St?phane,

On Thu, Jul 16, 2020 at 03:46:37PM +0200, Thomas Petazzoni wrote:
> On Thu, 16 Jul 2020 15:03:17 +0200
> Gary Bisson <gary.bisson@boundarydevices.com> wrote:
> 
> > In latest patch the SDMA installation was limited to platforms whose
> > name was mentioned in the binary. That would unfortunately be too simple
> > to manage, instead the i.MX 8M family uses the same binary as the i.MX 7
> > processors [1].
> > 
> > Fixes: fad2df39b9 ("package/freescale-imx/firmware-imx: clarify
> > installation of firmware files")
> > 
> > [1]
> > https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm64/boot/dts/freescale/imx8mq.dtsi?h=imx_5.4.24_2.1.0#n519
> > 
> > Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
> > ---
> >  package/freescale-imx/firmware-imx/Config.in       | 3 +++
> >  package/freescale-imx/firmware-imx/firmware-imx.mk | 6 +++++-
> >  2 files changed, 8 insertions(+), 1 deletion(-)
> > 
> > diff --git a/package/freescale-imx/firmware-imx/Config.in b/package/freescale-imx/firmware-imx/Config.in
> > index aae552177f..3859cc1d14 100644
> > --- a/package/freescale-imx/firmware-imx/Config.in
> > +++ b/package/freescale-imx/firmware-imx/Config.in
> > @@ -20,6 +20,9 @@ config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_SDMA_FW
> >  	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
> >  	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
> >  	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
> > +	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
> 
> Thanks for looking into this. Another possible solution if we have more
> of this in the future (we already have it for vpu and sdma) would be to
> drop the NEEDS_XYZ_FW options and instead do this:
> 
> config BR2_PACKAGE_FIRMWARE_IMX_VPU_FW_NAME
> 	string
> 	default "imx53" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
> 	default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
> 	default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
> 	default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
> 
> and then in the .mk file, we rely on
> BR2_PACKAGE_FIRMWARE_IMX_VPU_FW_NAME being empty or not to decide
> whether the VPU firmware should be installed. And because this variable
> is not just a boolean, it also tells us what is the firmware name.

Yes it looks like a better option, we could even do the same for VPU
then.
Are we all ok with such approach?

> >  config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_VPU_FW
> >  	bool
> > diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk
> > index cd299aad5e..90d9a79860 100644
> > --- a/package/freescale-imx/firmware-imx/firmware-imx.mk
> > +++ b/package/freescale-imx/firmware-imx/firmware-imx.mk
> > @@ -107,9 +107,13 @@ endif
> >  #
> >  
> >  ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_NEEDS_SDMA_FW),y)
> > +FIRMWARE_IMX_SDMA_NAME = $(FIRMWARE_IMX_PLATFORM_LOWER)
> > +ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN),y)
> > +FIRMWARE_IMX_SDMA_NAME = imx7d
> > +endif
> 
> I'd prefer:
> 
> ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN),y)
> FIRMWARE_IMX_SDMA_NAME = imx7d
> else
> FIRMWARE_IMX_SDMA_NAME = $(FIRMWARE_IMX_PLATFORM_LOWER)
> endif
> 
> Also, now that I looked at this more closely, the SDMA firmware is
> sdma-imx7d.bin, but the BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 is
> named just "IMX7", so this will not work, so I'm not sure how the:
> 
>         default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
> 
> currently works for BR2_PACKAGE_FIRMWARE_IMX_NEEDS_SDMA_FW.

Note the '*' which makes everything works ;)
That is why imx7 will properly the imx7d binary and the imx27 will copy
the imx27_TO2 one.

Regards,
Gary

  reply	other threads:[~2020-07-16 13:52 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-16 13:03 [Buildroot] [PATCH] package/freescale-imx/firmware-imx: fix sdma support for imx8m family Gary Bisson
2020-07-16 13:21 ` Stephane Viau
2020-07-16 13:46 ` Thomas Petazzoni
2020-07-16 13:52   ` Gary Bisson [this message]
2020-07-16 14:07     ` Thomas Petazzoni
2020-07-16 14:14       ` Gary Bisson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200716135250.GA467516@p1g2 \
    --to=gary.bisson@boundarydevices.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.