[PATCH V3 0/6] remoteproc: imx_rproc: support firmware in DDR
Iuliana Prodan
iuliana.prodan at nxp.com
Fri Feb 10 05:52:01 PST 2023
On 2/9/2023 8:38 AM, Peng Fan (OSS) wrote:
> From: Peng Fan <peng.fan at nxp.com>
>
> V3:
>
> Daniel, Iuliana
>
> Please help review this patchset per Mathieu's comments.
>
> Thanks,
> Peng.
>
> Move patch 3 in v2 to 1st patch in v3 and add Fixes tag Per Daniel
> IMX_RPROC_ANY in patch 3 Per Mathieu
> Update comment and commit log in patch 5, 6.
>
> NXP SDK provides ".interrupts" section, but I am not sure how others
> build the firmware. So I still keep patch 6 as v2, return bootaddr
> if there is no ".interrupts" section.
>
> V2:
> patch 4 is introduced for sparse check warning fix
>
> This pachset is to support i.MX8M and i.MX93 Cortex-M core firmware could
> be in DDR, not just the default TCM.
>
> i.MX8M needs stack/pc value be stored in TCML entry address[0,4], the
> initial value could be got from firmware first section ".interrupts".
> i.MX93 is a bit different, it just needs the address of .interrupts
> section. NXP SDK always has .interrupts section.
>
> So first we need find the .interrupts section from firmware, so patch 1
> is to reuse the code of find_table to introduce a new API
> rproc_elf_find_shdr to find shdr, the it could reused by i.MX driver.
>
> Patch 2 is introduce devtype for i.MX8M/93
>
> Although patch 3 is correct the mapping, but this area was never used
> by NXP SW team, we directly use the DDR region, not the alias region.
> Since this patchset is first to support firmware in DDR, mark this patch
> as a fix does not make much sense.
>
> patch 4 and 5 is support i.MX8M/93 firmware in DDR with parsing .interrupts
> section. Detailed information in each patch commit message.
>
> Patches were tested on i.MX8MQ-EVK i.MX8MP-EVK i.MX93-11x11-EVK
If one can build their firmware as they want, then the .interrupt
section can also be called differently.
I don't think is a good idea to base all your implementation on this
assumption.
It's clear there's a limitation when linking firmware in DDR, so this
should be well documented so one can compile their firmware and put the
needed section (interrupt as we call it in NXP SDK) always in TCML -
independently where the other section go.
Regards,
Iulia
More information about the linux-arm-kernel
mailing list