Age | Commit message (Collapse) | Author |
|
iMX8ULP A1 S400 ROM will remove the setting for MRC4/5. So we have to set
them in SPL to allow access to DDR from A35 and APD PER masters
Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
|
|
Since A1 ROM has fixed the ROM API eMMC issue, we should only use
the workaround for A0.1 part. Add a SOC revision check.
Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
|
|
In both SPL and u-boot, after probing the S400 MU, get the chip revision,
lifecycle and UID from Sentinel.
Update get_cpu_rev to use the chip revision not hard coded it for A0
Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
|
|
According to the board design change, move USB i2c devices to lpi2c3 bus.
Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
|
|
The root clock used in imx_get_i2cclk() is incorrect. Change it to
LPI2C1_CLK_ROOT.
Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
|
|
The DTS imx93-pinctrl.h in u-boot is not latest. It uses wrong select
input registers offset. So update this file to align with kernel.
We also update imx93_pins in arch to add SION for all i2c and i3c SCL/SDA
Signed-off-by: Ye Li <ye.li@nxp.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
|
|
According to DDRPHY errata, the Rank-to-Rank Spacing and tphy_rdcsgap
specification does not include the Critical Delay Difference (CDD) to
properly define the required rank-to-rank read command spacing after
executing PHY training firmware.
Following the errata workaround, at the end of data training, we get
all CDD values through the MessageBlock, then re-configure the DDRC
timing of WWT/WRT/RRT/RWT with comparing MAX CDD values.
Signed-off-by: Ye Li <ye.li@nxp.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
|
|
Add nodes for MIPI DSI RM67199 panel and adv7535 DSI to HDMI card
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Sync iMX93 SoC DTSi with kernel for adding and updating nodes in mediamix
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Implement the mxs_set_lcdclk to select video PLL frequency according
to pixel clock rate and set MEDIA_DISP_PIX_CLK_ROOT accordingly
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Change the compatible string from 7533 to 7535 to align with kernel
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Enable DM clock in SPL for i.MX93.
Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Alice Guo <alice.guo@nxp.com>
|
|
Remove legacy command definitions, change to use new ELE_xxx command
request.
Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
|
|
Use common file ele_ahab.c for i.MX9 and iMX8ULP AHAB support, since
both of them use same sentinel ELE APIs
Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
|
|
For ahab_status command, support to get and decode AHAB events
Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
|
|
Add get_events API to retrieve any singular events that has occurred
since the FW has started from sentinel
Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
|
|
The adp5585 used on i.MX93 has 10 GPIOs, so we update ADP5585_MAXGPIO,
ADP5585_BANK and ADP5585_BIT.
GPIO_x_DIR equals to 0 for input and 1 for output. Make corresponding
changes in adp5585_get_function.
Initialize plat->dat_out and plat->dir in adp5585_probe.
Reviewed-by: Haibo Chen <haibo.chen@nxp.com>
Signed-off-by: Alice Guo <alice.guo@nxp.com>
|
|
Add the FDT overlay support for OPTEE.
Signed-off-by: Clement Faure <clement.faure@nxp.com>
|
|
When CLK is enabled, get_lpuart_clk_rate() needs to get a per clock of
lpuart, so that add a per clock for lpuart1.
Signed-off-by: Alice Guo <alice.guo@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
|
|
Update lifecycle decoding to get lifecycle from FSB LMDA status.
Remove unused debug codes
Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
|
|
When A55 boot, DDRMIX is default power on. It is not needed to do
additional power off/on cycle to DDRMIX SRC slice.
This power cycle was thought to resolve DDR PHY accessing issue,
but actually the issue is caused by wrong DDR PLL setting which has
been fixed. So remove the unnecessary power cycle.
Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
|
|
Set ARM clock to OD frequency 1.7Ghz, since we have set PMIC VDD_SOC
to Overdrive voltage 0.9V
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
|
|
Add board codes and defconfig for i.MX93 11x11 EVK board.
Supported functions:
UART, USB host/gadget/typc/pd, I2C, DDR, clock, SD/eMMC,
eQoS, FEC, GPIO, IO Expander, PMIC.
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
|
|
Add DTS file for i.MX93 11x11 EVK board. Support basic functions
like: UART, USB, I2C, PMIC, FEC, eQoS, SD, eMMC, Sentinel MU,
pinctrl.
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Add the DTSi file and DT header files for i.MX93 SoC
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Alice Guo <alice.guo@nxp.com>
|
|
Add clock interfaces to init and get lpi2c clock. By default we
set lpi2c clock rate to 24Mhz.
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Add flexspi memory mapped space to MMU table to allow read to flexspi
NOR flash
Signed-off-by: Alice Guo <alice.guo@nxp.com>
|
|
Add Kconfig for enabling reference events counter in DDRC performance
monitor by default
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Since i.MX9 uses same DDR PHY with i.MX8M, split the DDRPHY to a common
directory under imx, then use dedicated ddr controller driver for each
iMX9 and iMX8M.
The DDRPHY registers are space compressed, so it needs conversion to
access the DDRPHY address. Introduce a common PHY address remap function
for both iMX8M and iMX9 for all PHY registers accessing.
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Implement the DDR driver clock interfaces for set DDR rate and
bypass DDR PLL
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Select env storages according to boot device at runtime
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Add bootaux command to support on-demand booting M33 from u-boot.
It kicks M33 via ATF by "bootaux 0x201e0000 0"
Signed-off-by: Peng Fan <peng.fan@nxp.com>
|
|
To support on-demand booting M33 image from A core. SPL needs
to follow M33 kick up sequence to release M33 firstly,
then set M33 CPUWAIT signal. ATF will clear CPUWAIT to kick
M33 to run.
The prepare function also works around the M33 TCM ECC issue by
clean the TCM. Also enable sentinel handshake and WDOG1 clock
for M33 stop and reset.
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
|
|
Introduce Sentinel API ahab_release_m33_trout to make sure sentinel
release M33 trout and make sure M33 could boot.
Signed-off-by: Peng Fan <peng.fan@nxp.com>
|
|
Add power init of MEDIAMIX, MLMIX and DDRMIX. And clear isolation
of MIPI DSI/CSI, USBPHY after the power up.
SPL should call the power init in its boot sequence before accessing
above three MIX and USB.
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Add GPIO registers structure for iMX93, so that we can enable lpgpio
driver
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Add SoC level support for USB driver:
1. Add USB clock init
2. Clear USB PHY isolation
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Add SoC level support for FEC and eQOS controller.
1. Enable the FEC_QUIRK_ENET_MAC
2. Add clock interfaces for eQOS and FEC. eQoS and FEC work with REF CLK
set to 250M. Because between CCM and ENET, there is a 1/2 divider
3. Set Wakeup AXI clock to 312.5Mhz, because FEC MDIO bus clock has
a range for its clock divider (64 max), for 333Mhz AXI clock, it will
overflow.
4. Add eQOS GPR registers, which is need to set RGMII and clock generation
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
i.MX93 fuse can be accessed through FSB and s400-api. Add mapping tables
for i.MX93. The offset address of FSB accessing OTP shadow registers is
different between i.MX8ULP and i.MX93, so use macro to define the offset
address instead of hardcode.
Signed-off-by: Alice Guo <alice.guo@nxp.com>
|
|
Use more generic name for S40x msg structure
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Since the S4MU will not auto probe, need to probe it explicitly.
arch_cpu_init_dm only probes it for board_f phase, also need to
probe it again for board_r phase
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Update the get chip revision methond to use S400 API, also record
other information like lifecycle and UID to global data.
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Add new API to get sentinel FW status and SoC chip info
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Add AHAB driver for iMX9 to do authentication by calling sentinel API
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Add TRDC driver to iMX9. The TRDC init splits to two phases:
1. Early init phase will release TRDC from Sentinel and open write
permission to the memory where SPL image runs. Sentinel wiil set
the memory to RX only after ROM authentication for the OEM
closed part.
2. Init phase will configure TRDC to allow non-secure master to
access DDR. So the peripherals can work in u-boot.
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
To support more RDC instances on i.MX93, update API to latest
definition.
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Add compatible string for iMX93 and add MU registers structure
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Since iMX9 uses S401 which shares the API with iMX8ULP. So move S400
MU driver and API to a common place and selected by CONFIG_IMX_SENTINEL
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Support the ROM API support on iMX9. Add relevant boot functions
with ROM API used to get boot information
Signed-off-by: Ye Li <ye.li@nxp.com>
|
|
Refactor the APIs for CCM components: root clock, GPR, LPCG.
Add APIs for Int and Frac PLL control.
Signed-off-by: Ye Li <ye.li@nxp.com>
|