Browse Source

boards: nxp: imx95_evk: add M7 DDR board variant

Add DDR variant of the i.MX95 EVK board (M7 core). Using this
variant, one can run Zephyr from DDR instead of ITCM/DTCM
as it's the case for the M7 "base" board.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
pull/78626/head
Laurentiu Mihalcea 10 months ago committed by Henrik Brix Andersen
parent
commit
01418564bc
  1. 2
      boards/nxp/imx95_evk/Kconfig.imx95_evk
  2. 2
      boards/nxp/imx95_evk/board.yml
  3. 28
      boards/nxp/imx95_evk/doc/index.rst
  4. 23
      boards/nxp/imx95_evk/imx95_evk_mimx9596_m7_ddr.dts
  5. 18
      boards/nxp/imx95_evk/imx95_evk_mimx9596_m7_ddr.yaml
  6. 22
      boards/nxp/imx95_evk/imx95_evk_mimx9596_m7_ddr_defconfig

2
boards/nxp/imx95_evk/Kconfig.imx95_evk

@ -2,6 +2,6 @@ @@ -2,6 +2,6 @@
# SPDX-License-Identifier: Apache-2.0
config BOARD_IMX95_EVK
select SOC_MIMX9596_M7 if BOARD_IMX95_EVK_MIMX9596_M7
select SOC_MIMX9596_M7 if BOARD_IMX95_EVK_MIMX9596_M7 || BOARD_IMX95_EVK_MIMX9596_M7_DDR
select SOC_MIMX9596_A55 if BOARD_IMX95_EVK_MIMX9596_A55 || BOARD_IMX95_EVK_MIMX9596_A55_SMP
select SOC_PART_NUMBER_MIMX9596AVZXN

2
boards/nxp/imx95_evk/board.yml

@ -6,3 +6,5 @@ board: @@ -6,3 +6,5 @@ board:
variants:
- name: smp
cpucluster: a55
- name: ddr
cpucluster: m7

28
boards/nxp/imx95_evk/doc/index.rst

@ -224,26 +224,46 @@ multiple elements required, like ELE+V2X firmware, System Manager, TCM OEI, Cort @@ -224,26 +224,46 @@ multiple elements required, like ELE+V2X firmware, System Manager, TCM OEI, Cort
image and so on.
The steps making flash.bin and programming should refer to ``Getting Started with
MCUXpresso SDK for IMX95LPD5EVK-19.pdf`` in i.MX95 `MCUX SDK release`_.
MCUXpresso SDK for IMX95LPD5EVK-19.pdf`` in i.MX95 `MCUX SDK release`_. Note that
for the DDR variant, one should use the Makefile targets containing the ``ddr`` keyword.
See ``4.2 Run an example application``, just rename ``zephyr.bin`` to ``m7_image.bin``
to make flash.bin and program to SD/eMMC.
Here is an example for the :zephyr:code-sample:`hello_world` application.
Zephyr supports two M7-based i.MX95 boards: ``imx95_evk/mimx9596/m7`` and
``imx95_evk/mimx9596/m7/ddr``. The main difference between them is the memory
used. ``imx95_evk/mimx9596/m7`` uses TCM (ITCM for code and, generally, read-only
data and DTCM for R/W data), while ``imx95_evk/mimx9596/m7/ddr`` uses DDR.
1. Building the :zephyr:code-sample:`hello_world` application for the TCM-based board
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: imx95_evk/mimx9596/m7
:goals: build
After making flash.bin and program to SD/eMMC, open a serial terminal, reset the board,
and you should see the following message in the terminal:
2. Building the :zephyr:code-sample:`hello_world` application for the DDR-based board
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: imx95_evk/mimx9596/m7/ddr
:goals: build
After making flash.bin and program to SD/eMMC, open a serial terminal, and reset the
board. For the ``imx95_evk/mimx9596/m7`` board you should see something like:
.. code-block:: console
*** Booting Zephyr OS build v3.6.0-4569-g483c01ca11a7 ***
Hello World! imx95_evk/mimx9596/m7
while, for the ``imx95_evk/mimx9596/m7/ddr`` board, you should get the following output:
.. code-block:: console
*** Booting Zephyr OS build v3.6.0-4569-g483c01ca11a7 ***
Hello World! imx95_evk/mimx9596/m7/ddr
.. _System Control and Management Interface (SCMI):
https://developer.arm.com/documentation/den0056/latest/

23
boards/nxp/imx95_evk/imx95_evk_mimx9596_m7_ddr.dts

@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
/*
* Copyright 2024 NXP
*
* SPDX-License-Identifier: Apache-2.0
*/
/dts-v1/;
#include "imx95_evk_mimx9596_m7.dts"
/ {
model = "NXP i.MX95 EVK board DDR variant";
chosen {
zephyr,sram = &ddr;
/delete-property/ zephyr,flash;
};
ddr: memory@80000000 {
device_type = "memory";
reg = <0x80000000 DT_SIZE_M(4)>;
};
};

18
boards/nxp/imx95_evk/imx95_evk_mimx9596_m7_ddr.yaml

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
#
# Copyright 2024 NXP
#
# SPDX-License-Identifier: Apache-2.0
#
identifier: imx95_evk/mimx9596/m7/ddr
name: NXP i.MX95 EVK DDR variant
type: mcu
arch: arm
ram: 256
toolchain:
- zephyr
- gnuarmemb
- xtools
supported:
- uart
vendor: nxp

22
boards/nxp/imx95_evk/imx95_evk_mimx9596_m7_ddr_defconfig

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
#
# Copyright 2024 NXP
#
# SPDX-License-Identifier: Apache-2.0
#
# clock-related configurations
CONFIG_CLOCK_CONTROL=y
# serial interface-related configurations
CONFIG_SERIAL=y
CONFIG_UART_INTERRUPT_DRIVEN=y
CONFIG_UART_CONSOLE=y
CONFIG_CONSOLE=y
# SCMI-related configurations
CONFIG_MBOX=y
CONFIG_MBOX_INIT_PRIORITY=0
CONFIG_ARM_SCMI=y
# kernel-related configurations
CONFIG_XIP=n
Loading…
Cancel
Save