[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230106034305.2868740-1-peng.fan@oss.nxp.com>
Date: Fri, 6 Jan 2023 11:43:00 +0800
From: "Peng Fan (OSS)" <peng.fan@....nxp.com>
To: andersson@...nel.org, mathieu.poirier@...aro.org,
shawnguo@...nel.org, s.hauer@...gutronix.de,
arnaud.pouliquen@...s.st.com
Cc: kernel@...gutronix.de, festevam@...il.com, linux-imx@....com,
linux-remoteproc@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
Peng Fan <peng.fan@....com>
Subject: [PATCH 0/5] remoteproc: imx_rproc: support firmware in DDR
From: Peng Fan <peng.fan@....com>
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
Peng Fan (5):
remoteproc: elf_loader: introduce rproc_elf_find_shdr
remoteproc: imx_rproc: add devtype
remoteproc: imx_rproc: correct i.MX8MQ DDR Code alias mapping
remoteproc: imx_rproc: set Cortex-M stack/pc to TCML
remoteproc: imx_rproc: set address of .interrupts section as bootaddr
drivers/remoteproc/imx_rproc.c | 52 +++++++++++-
drivers/remoteproc/imx_rproc.h | 6 ++
drivers/remoteproc/remoteproc_elf_loader.c | 93 +++++++++++++---------
drivers/remoteproc/remoteproc_internal.h | 2 +
4 files changed, 111 insertions(+), 42 deletions(-)
--
2.37.1
Powered by blists - more mailing lists