imx95-evk: update configs; add imx95-evk:can

This commit is contained in:
Andre Heinemans 2024-12-18 09:40:52 +01:00 committed by Xiang Xiao
parent 16babb08c9
commit 58e232863d
6 changed files with 156 additions and 25 deletions

View file

@ -3,7 +3,9 @@ IMX95LPD5EVK-19
===============
The IMX95LPD5EVK-19 board is a platform designed to show the most commonly
used features of the i.MX 95 automotive applications processor.
used features of the
`i.MX 95 automotive applications processor
<https://www.nxp.com/products/iMX95>`_ .
Features
========
@ -46,9 +48,39 @@ The IMX95LPD5EVK-19 board provides a 2x5-pin Samtec FTSH-105-01-L-DV-K header
processor. The FT4234H JTAG provides the remote debug option for the i.MX95
processor.
Firmware location
=================
Instruction Tightly Coupled Memory (ITCM)
-----------------------------------------
The purpose of the Tightly-Coupled Memory (TCM) is to provide low-latency
memory that the processor can use without the unpredictability that is a
feature of caches. By default the firmware will be located in this area
(256K).
DDR
---
DDR memory can be used in case the code memory footprint becomes bigger than
the ITCM size. Using this configuration implies that other cores should be
aware of this.
For the default sd-card image from the EVK, these adaptations are needed on
the software running on the M33 and A55 cores.
- `System Manager <https://github.com/nxp-imx/imx-sm>`_ (M33) should give
the M7 access to the DDR region
- `linux-imx <https://github.com/nxp-imx/linux-imx>`_ (A55) should reserve
the DDR region by specifying it in the device tree so linux won't make
use of it
Configurations
==============
All the configurations can be used in combination with the default sd-card
image that is shipped with the EVK.
nsh
---
@ -57,8 +89,26 @@ configuration is focused on low level, command-line driver testing. Built-in
applications are supported, but none are enabled. This configuration does not
support a network.
This configuration can be used in combination with the default sd-card image
that is shipped with the EVK.
can
---
Configures the NuttShell (nsh) and also adds CAN support. CAN1 is enabled and
can be accessed at J17 on the EVK. Make sure that SW9[3] (PDM_CAN_SEL) is set
to ON. The configuration includes CAN utilities as candump and cansend.
.. note::
`System Manager <https://github.com/nxp-imx/imx-sm>`_ (M33) should give
the M7 access rights to the PIN_PDM_CLK (CAN1_TX) and
PIN_PDM_BIT_STREAM0 (CAN1_RX) pins in the mx95evk.cfg.
Alternatively these can be set manually in the system manager's console:
.. code-block:: console
>$ mm 0x443c01e0 0x6
>$ mm 0x443c01e4 0x6
rpmsg
-----
@ -70,16 +120,7 @@ an OS running on the A55 cores can connect. There is also an option to use
the filesystem client feature in which a remote directory can be mounted to
a local directory (CONFIG_FS_RPMSGFS).
The rpmsg configuration executes the code from DDR since its code memory
footprint is bigger than the ITCM size. In the case of using the default
sd-card image from the EVK, adaptations are needed on the software running on
the M33 and A55 cores.
- `System Manager <https://github.com/nxp-imx/imx-sm>`_ (M33) should give
the M7 access to the DDR region
- `linux-imx <https://github.com/nxp-imx/linux-imx>`_ (A55) should reserve
the DDR region by specifying it in the device tree so linux won't make
use of it
- `linux-imx <https://github.com/nxp-imx/linux-imx>`_ (A55) needs the
.. note::
`linux-imx <https://github.com/nxp-imx/linux-imx>`_ (A55) needs the
NuttX compatible rpmsg_tty and rpmsg_fs drivers. See `dev mailing list
<https://www.mail-archive.com/dev@nuttx.apache.org/msg12112.html>`_

View file

@ -0,0 +1,81 @@
#
# This file is autogenerated: PLEASE DO NOT EDIT IT.
#
# You can use "make menuconfig" to make any modifications to the installed .config file.
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
# modifications.
#
# CONFIG_ARCH_LEDS is not set
# CONFIG_ARCH_RAMFUNCS is not set
# CONFIG_IMX9_WFI_AWAKES_AT_SYSTICK is not set
# CONFIG_NET_RECV_PACK is not set
CONFIG_ALLOW_BSD_COMPONENTS=y
CONFIG_ARCH="arm"
CONFIG_ARCH_BOARD="imx95-evk"
CONFIG_ARCH_BOARD_IMX95_EVK=y
CONFIG_ARCH_CHIP="imx9"
CONFIG_ARCH_CHIP_IMX95_M7=y
CONFIG_ARCH_CHIP_IMX9_CORTEX_M=y
CONFIG_ARCH_INTERRUPTSTACK=4096
CONFIG_ARCH_STACKDUMP=y
CONFIG_ARMV7M_DCACHE=y
CONFIG_ARMV7M_DCACHE_WRITETHROUGH=y
CONFIG_ARMV7M_DTCM=y
CONFIG_ARMV7M_ICACHE=y
CONFIG_ARMV7M_ITCM=y
CONFIG_BINFMT_DISABLE=y
CONFIG_BOARD_LOOPSPERMSEC=2664
CONFIG_BUILTIN=y
CONFIG_CANUTILS_CANDUMP=y
CONFIG_CANUTILS_CANSEND=y
CONFIG_CANUTILS_LIBCANUTILS=y
CONFIG_DEBUG_ASSERTIONS=y
CONFIG_DEBUG_ASSERTIONS_EXPRESSION=y
CONFIG_DEBUG_BUSFAULT=y
CONFIG_DEBUG_FEATURES=y
CONFIG_DEBUG_FULLOPT=y
CONFIG_DEBUG_HARDFAULT_ALERT=y
CONFIG_DEBUG_HARDFAULT_INFO=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DEBUG_USAGEFAULT=y
CONFIG_DEFAULT_TASK_STACKSIZE=8192
CONFIG_FS_PROCFS=y
CONFIG_IDLETHREAD_STACKSIZE=8192
CONFIG_IMX9_FLEXCAN1=y
CONFIG_IMX9_IOMUX_OVER_SCMI=y
CONFIG_IMX9_LPUART3=y
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_INTELHEX_BINARY=y
CONFIG_IOB_ALLOC=y
CONFIG_IOB_NOTIFIER=y
CONFIG_IOB_THROTTLE=8
CONFIG_LIBC_LOCALTIME=y
CONFIG_LPUART3_SERIAL_CONSOLE=y
CONFIG_NET=y
CONFIG_NETDEV_CAN_BITRATE_IOCTL=y
CONFIG_NETDEV_IFINDEX=y
CONFIG_NETDEV_LATEINIT=y
CONFIG_NETDEV_WORK_THREAD=y
CONFIG_NET_CAN=y
CONFIG_NET_CAN_EXTID=y
CONFIG_NET_CAN_NOTIFIER=y
CONFIG_NET_CAN_RAW_TX_DEADLINE=y
CONFIG_NET_CAN_SOCK_OPTS=y
CONFIG_NET_LL_GUARDSIZE=14
CONFIG_NET_TIMESTAMP=y
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_FILEIOSIZE=512
CONFIG_RAM_SIZE=134217728
CONFIG_RAM_START=0x80000000
CONFIG_RAW_BINARY=y
CONFIG_SCHED_BACKTRACE=y
CONFIG_SCHED_HPWORK=y
CONFIG_SCHED_LPWORK=y
CONFIG_SERIAL_TERMIOS=y
CONFIG_STACK_COLORATION=y
CONFIG_START_DAY=14
CONFIG_START_MONTH=3
CONFIG_SYSTEM_NSH=y
CONFIG_TTY_SIGINT=y
CONFIG_TTY_SIGTSTP=y

View file

@ -7,6 +7,7 @@
#
# CONFIG_ARCH_LEDS is not set
# CONFIG_ARCH_RAMFUNCS is not set
# CONFIG_IMX9_WFI_AWAKES_AT_SYSTICK is not set
# CONFIG_NDEBUG is not set
CONFIG_ARCH="arm"
CONFIG_ARCH_BOARD="imx95-evk"
@ -31,16 +32,14 @@ CONFIG_DEBUG_HARDFAULT_INFO=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DEBUG_USAGEFAULT=y
CONFIG_DEFAULT_TASK_STACKSIZE=8192
CONFIG_EXAMPLES_CALIB_UDELAY=y
CONFIG_FS_PROCFS=y
CONFIG_IDLETHREAD_STACKSIZE=8192
CONFIG_IMX9_IOMUX_OVER_SCMI=y
CONFIG_IMX9_LPUART3=y
CONFIG_IMX9_OCRAM_HEAP=y
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_INTELHEX_BINARY=y
CONFIG_LIBC_LOCALTIME=y
CONFIG_LPUART3_SERIAL_CONSOLE=y
CONFIG_MM_REGIONS=2
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_DISABLE_IFUPDOWN=y

View file

@ -7,6 +7,7 @@
#
# CONFIG_ARCH_LEDS is not set
# CONFIG_ARCH_RAMFUNCS is not set
# CONFIG_IMX9_WFI_AWAKES_AT_SYSTICK is not set
# CONFIG_NDEBUG is not set
CONFIG_ARCH="arm"
CONFIG_ARCH_BOARD="imx95-evk"
@ -26,6 +27,7 @@ CONFIG_BOARD_LOOPSPERMSEC=2664
CONFIG_BUILTIN=y
CONFIG_DEBUG_BUSFAULT=y
CONFIG_DEBUG_FEATURES=y
CONFIG_DEBUG_FULLOPT=y
CONFIG_DEBUG_HARDFAULT_ALERT=y
CONFIG_DEBUG_HARDFAULT_INFO=y
CONFIG_DEBUG_IPC=y
@ -34,10 +36,6 @@ CONFIG_DEBUG_IPC_WARN=y
CONFIG_DEBUG_RPMSG=y
CONFIG_DEBUG_RPMSG_ERROR=y
CONFIG_DEBUG_RPMSG_WARN=y
CONFIG_DEBUG_SENSORS=y
CONFIG_DEBUG_SENSORS_ERROR=y
CONFIG_DEBUG_SENSORS_INFO=y
CONFIG_DEBUG_SENSORS_WARN=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DEBUG_USAGEFAULT=y
CONFIG_DEBUG_VIRTIO=y
@ -51,16 +49,14 @@ CONFIG_DRIVERS_VIRTIO=y
CONFIG_FS_PROCFS=y
CONFIG_FS_RPMSGFS=y
CONFIG_IDLETHREAD_STACKSIZE=8192
CONFIG_IMX95_RUN_FROM_DDR=y
CONFIG_IMX9_IOMUX_OVER_SCMI=y
CONFIG_IMX9_LPUART3=y
CONFIG_IMX9_MU7=y
CONFIG_IMX9_OCRAM_HEAP=y
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_INTELHEX_BINARY=y
CONFIG_LIBC_LOCALTIME=y
CONFIG_LPUART3_SERIAL_CONSOLE=y
CONFIG_MM_HEAP_MEMPOOL_THRESHOLD=0
CONFIG_MM_REGIONS=2
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_DISABLE_IFUPDOWN=y
@ -72,7 +68,6 @@ CONFIG_RPMSG_LOCAL_CPUNAME="cpuapp"
CONFIG_RPMSG_UART=y
CONFIG_RPTUN=y
CONFIG_SCHED_BACKTRACE=y
CONFIG_SENSORS=y
CONFIG_SERIAL_TERMIOS=y
CONFIG_STACK_COLORATION=y
CONFIG_START_DAY=14

View file

@ -122,6 +122,9 @@
#define GPIO_FLEXCAN1_TX IOMUX_CFG(IOMUXC_PAD_PDM_CLK_CAN1_TX, IOMUX_GPIO_DEFAULT, IOMUXC_MUX_SION_ON)
#define GPIO_FLEXCAN1_RX IOMUX_CFG(IOMUXC_PAD_PDM_BIT_STREAM0_CAN1_RX, IOMUX_GPIO_DEFAULT, IOMUXC_MUX_SION_ON)
#define GPIO_FLEXCAN2_TX IOMUX_CFG(IOMUXC_PAD_GPIO_IO25_CAN2_TX, IOMUX_GPIO_DEFAULT, IOMUXC_MUX_SION_ON)
#define GPIO_FLEXCAN2_RX IOMUX_CFG(IOMUXC_PAD_GPIO_IO27_CAN2_RX, IOMUX_GPIO_DEFAULT, IOMUXC_MUX_SION_ON)
/* Set the PLL clocks as follows:
*
* - OSC24M : 24 MHz

View file

@ -39,6 +39,10 @@
# include <nuttx/serial/uart_rpmsg.h>
#endif
#ifdef CONFIG_IMX9_FLEXCAN
# include "imx9_flexcan.h"
#endif
/****************************************************************************
* Public Functions
****************************************************************************/
@ -96,6 +100,14 @@ int imx95_bringup(void)
}
#endif
#ifdef CONFIG_IMX9_FLEXCAN1
imx9_caninitialize(1);
#endif
#ifdef CONFIG_IMX9_FLEXCAN2
imx9_caninitialize(2);
#endif
UNUSED(ret);
return OK;
}