Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce support for NXP MR-CANHUBK3 board #58332

Merged
merged 12 commits into from Jul 6, 2023

Conversation

manuargue
Copy link
Member

Introduce minimal support for NXP MR-CANHUBK3 board, including: GPIO, UART, pin control and clock control. This board is based on a NXP S32K344, so support for this SoC is also added. The S32K3 family share some fair amount of hardware blocks with other non-S32 devices so in order to reuse existing MCUX-based shim drivers, allow to build MCUX drivers for the NXP S32 family as well.

@zephyrbot
Copy link
Collaborator

zephyrbot commented May 26, 2023

The following west manifest projects have been modified in this Pull Request:

Name Old Revision New Revision Diff
hal_nxp zephyrproject-rtos/hal_nxp@904830e zephyrproject-rtos/hal_nxp@e0116b8 (master) zephyrproject-rtos/hal_nxp@904830e8..e0116b8e

Note: This message is automatically posted and updated by the Manifest GitHub Action.

@manuargue manuargue force-pushed the mr_canhubk3_minimal branch 3 times, most recently from f42022c to d810be2 Compare May 30, 2023 11:39
@manuargue
Copy link
Member Author

manuargue commented Jun 30, 2023

rebased to pick up changes from #59876

@mmahadevan108
Copy link
Collaborator

@manuargue can you please update west.yml

soc/arm/nxp_s32/s32k/Kconfig.defconfig.series Show resolved Hide resolved
soc/arm/nxp_s32/s32k/soc.c Outdated Show resolved Hide resolved
dts/bindings/pinctrl/nxp,s32k3-pinctrl.yaml Show resolved Hide resolved
soc/arm/nxp_s32/s32k/pinctrl_soc.h Outdated Show resolved Hide resolved
manuargue and others added 10 commits July 5, 2023 14:24
The S32K3 MCUs are 32-bit Arm Cortex-M7-based microcontrollers with a
focus on automotive and industrial applications. The S32K344 features
a lock-step core, internal flash, RAM and TCM with ECC.

Co-authored-by: Dat Nguyen Duy <dat.nguyenduy@nxp.com>
Co-authored-by: Cong Nguyen Huu <cong.nguyenhuu@nxp.com>
Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
Introduce minimal power initialization for NXP S32 SoCs and allow to
reset the SoC through the sys_reboot() API.

Presently only S32K3 SoCs is supported but it can be extended later to
other NXP S32 SoCs, hence it's placed in a common directory.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
NXP MR-CANHUBK3 is an evaluation board for mobile robotics applications.
It features an NXP S32K344 MCU based on an Arm Cortex-M7 core
(lock-step).

By default, this board configuration uses Lauterbach TRACE32 West runner
for flashing and debugging applications, but other debuggers can be used
to download the program to flash.

Co-authored-by: Dat Nguyen Duy <dat.nguyenduy@nxp.com>
Co-authored-by: Cong Nguyen Huu <cong.nguyenhuu@nxp.com>
Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
The clock controller is a singleton controller for all the system-level
clocks (XOSC, PLL, CGM, etc) to provide run-time information to the
peripheral device drivers about the module's clocks.
Clock configuration is not yet supported.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
Enable clock control by default on S32K344 SoCs and add clock
definitions.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
Unify the pinctrl_soc.h header for all the NXP S32 family by using
the HAL macros that expose the features supported on specific
devices. This approach still need a different binding for each device to
expose in DT different properties and allowed values.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
Support pin control for NXP S32K3 devices and enable it by default on
mr_canhubk3 board configuration.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
SIUL2 may require multiple interrupt handlers instead of a single one as
currently supported for S32Z/E. This is needed to enable support on
S32K3.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
Add GPIO support for mr_canhubk3 board and enable GPIO tests.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
Some NXP S32 devices share common harwdware blocks with other non-S32
devices which are already supported using MCUX-based drivers. In order
to leverage existing support, allow to build with MCUX enabled for NXP
S32 family.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
@zephyrbot zephyrbot removed the DNM This PR should not be merged (Do Not Merge) label Jul 5, 2023
danieldegrasse
danieldegrasse previously approved these changes Jul 5, 2023
boards/arm/mr_canhubk3/Kconfig.defconfig Outdated Show resolved Hide resolved
Reuse existing MCUX-based shim driver for LPUART that is compatible with
the hardware block in S32K344. DMA is not yet supported.

Use the board's debug connector (P6 / LPUART2) as default console.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
Document current support for mr_canhubk3 board.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
west.yml Show resolved Hide resolved
@mmahadevan108 mmahadevan108 merged commit c15ff10 into zephyrproject-rtos:main Jul 6, 2023
21 checks passed
@manuargue manuargue deleted the mr_canhubk3_minimal branch July 6, 2023 19:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants