mbox series

[v1,0/5] xen/arm: Add support for S32CC platforms and LINFlexD UART

Message ID 20240910143411.178704-1-andrei.cherechesu@oss.nxp.com (mailing list archive)
Headers show
Series xen/arm: Add support for S32CC platforms and LINFlexD UART | expand

Message

Andrei Cherechesu Sept. 10, 2024, 2:34 p.m. UTC
From: Andrei Cherechesu <andrei.cherechesu@nxp.com>

This patch series adds support for NXP Automotive S32CC platform
family, which includes S32G [0] and S32R [1].

First patch adds the driver for the NXP LINFlexD UART, available
on S32V, S32G and S32R automotive processors. The compatibles in
the driver match the ones in upstream Linux [2]. The second patch
adds early printk support via LINFlexD UART.

The third patch introduces the S32CC platforms and adds the
platform-specific code, which enables forwarding SCMI over SMC
calls to software running at EL3. The fourth patch adds support
for an early printk menuconfig option for S32CC platforms using
the LINFlexD UART.

The fifth patch enables the workaround for ARM Cortex-A53 erratum
1530924, already implemented in Xen for other cores via
ARM64_WORKAROUND_AT_SPECULATE.

[0] https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32g-vehicle-network-processors:S32G-PROCESSORS
[1] https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32r-radar-processing:S32R-FAMILY
[2] https://elixir.bootlin.com/linux/v6.11-rc7/source/Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.yaml#L27

Andrei Cherechesu (5):
  xen/arm: Add NXP LINFlexD UART Driver
  xen/arm: Add NXP LINFlexD UART early printk support
  xen/arm: platforms: Add NXP S32CC platform code
  xen/arm: Enable early printk for S32CC via LINFlexD UART
  xen/arm: Enable workaround for Cortex-A53 erratum #1530924

 docs/misc/arm/silicon-errata.txt        |   1 +
 xen/arch/arm/Kconfig.debug              |  18 ++
 xen/arch/arm/arm64/debug-linflex.inc    |  58 ++++
 xen/arch/arm/cpuerrata.c                |   6 +
 xen/arch/arm/include/asm/linflex-uart.h |  62 ++++
 xen/arch/arm/platforms/Kconfig          |  10 +
 xen/arch/arm/platforms/Makefile         |   1 +
 xen/arch/arm/platforms/s32cc.c          |  84 ++++++
 xen/drivers/char/Kconfig                |   8 +
 xen/drivers/char/Makefile               |   1 +
 xen/drivers/char/linflex-uart.c         | 365 ++++++++++++++++++++++++
 11 files changed, 614 insertions(+)
 create mode 100644 xen/arch/arm/arm64/debug-linflex.inc
 create mode 100644 xen/arch/arm/include/asm/linflex-uart.h
 create mode 100644 xen/arch/arm/platforms/s32cc.c
 create mode 100644 xen/drivers/char/linflex-uart.c

Comments

Oleksii Kurochko Sept. 17, 2024, 3:24 p.m. UTC | #1
Hello,

I think it would be a good idea to update the CHANGELOG.md as well and
mention that support for the S32CC platform has been added.

Thanks.

~ Oleksii
On Tue, 2024-09-10 at 17:34 +0300, Andrei Cherechesu (OSS) wrote:
> From: Andrei Cherechesu <andrei.cherechesu@nxp.com>
> 
> This patch series adds support for NXP Automotive S32CC platform
> family, which includes S32G [0] and S32R [1].
> 
> First patch adds the driver for the NXP LINFlexD UART, available
> on S32V, S32G and S32R automotive processors. The compatibles in
> the driver match the ones in upstream Linux [2]. The second patch
> adds early printk support via LINFlexD UART.
> 
> The third patch introduces the S32CC platforms and adds the
> platform-specific code, which enables forwarding SCMI over SMC
> calls to software running at EL3. The fourth patch adds support
> for an early printk menuconfig option for S32CC platforms using
> the LINFlexD UART.
> 
> The fifth patch enables the workaround for ARM Cortex-A53 erratum
> 1530924, already implemented in Xen for other cores via
> ARM64_WORKAROUND_AT_SPECULATE.
> 
> [0]
> https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32g-vehicle-network-processors:S32G-PROCESSORS
> [1]
> https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32r-radar-processing:S32R-FAMILY
> [2]
> https://elixir.bootlin.com/linux/v6.11-rc7/source/Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.yaml#L27
> 
> Andrei Cherechesu (5):
>   xen/arm: Add NXP LINFlexD UART Driver
>   xen/arm: Add NXP LINFlexD UART early printk support
>   xen/arm: platforms: Add NXP S32CC platform code
>   xen/arm: Enable early printk for S32CC via LINFlexD UART
>   xen/arm: Enable workaround for Cortex-A53 erratum #1530924
> 
>  docs/misc/arm/silicon-errata.txt        |   1 +
>  xen/arch/arm/Kconfig.debug              |  18 ++
>  xen/arch/arm/arm64/debug-linflex.inc    |  58 ++++
>  xen/arch/arm/cpuerrata.c                |   6 +
>  xen/arch/arm/include/asm/linflex-uart.h |  62 ++++
>  xen/arch/arm/platforms/Kconfig          |  10 +
>  xen/arch/arm/platforms/Makefile         |   1 +
>  xen/arch/arm/platforms/s32cc.c          |  84 ++++++
>  xen/drivers/char/Kconfig                |   8 +
>  xen/drivers/char/Makefile               |   1 +
>  xen/drivers/char/linflex-uart.c         | 365
> ++++++++++++++++++++++++
>  11 files changed, 614 insertions(+)
>  create mode 100644 xen/arch/arm/arm64/debug-linflex.inc
>  create mode 100644 xen/arch/arm/include/asm/linflex-uart.h
>  create mode 100644 xen/arch/arm/platforms/s32cc.c
>  create mode 100644 xen/drivers/char/linflex-uart.c
>