mbox series

[v7,0/5] Add initial support for S32V234-EVB

Message ID 1571230107-8493-1-git-send-email-stefan-gabriel.mirea@nxp.com (mailing list archive)
Headers show
Series Add initial support for S32V234-EVB | expand

Message

Stefan-gabriel Mirea Oct. 16, 2019, 12:48 p.m. UTC
Hello,

NXP's S32V234[1] ("Treerunner") vision microprocessors are targeted for
high-performance, computationally intensive vision and sensor fusion
applications that require automotive safety levels. They include leading
edge Camera Vision modules like APEX-2, ISP and GPU. The S32V234-EVB and
S32V234-SBC boards are available for customer evaluation.

The following patch series introduces minimal enablement support for the
NXP S32V234-EVB2[2] board, which leverages most of the SoC capabilities.
Up to v2, this series also included the fsl_linflexuart driver, which has
been included in Linux 5.4-rc1[3].

In the future, we aim to submit multiple drivers upstream, which can be
found in the kernel of our Auto Linux BSP[4] ("ALB"), starting with basic
pinmuxing, clock and uSDHC drivers.

For validation, you can use the U-Boot bootloader in the ALB[5], which we
build and test with our patched version of the Linaro GCC 6.3.1 2017.05
toolchain for ARM 64-bit, with sources available on [6].

Changes in v7:
* Rebase the patch 'serial: fsl_linflexuart: Be consistent with the name'
  on the tty-next branch in Greg's tty git tree.

Changes in v6:
* In the patch 'serial: fsl_linflexuart: Be consistent with the name',
  avoid updating the definition of PORT_LINFLEXUART; that was an
  independent fix which has been submitted and accepted[9] separately;
* Avoid using 'base64' as 'Content-Transfer-Encoding'.

Changes in v5:
* Remove the patch 'dt-bindings: serial: Document Freescale LINFlexD UART'
  following its acceptance in Linux 5.4-rc1[8];
* Rebase the other patches on v5.4-rc1.

Changes in v4:
* Remove the patch 'serial: fsl_linflexuart: Update compatible string'
  following its acceptance[7];
* Rebase the patch 'serial: fsl_linflexuart: Be consistent with the name'
  on the tty-next branch in Greg's tty git tree.

Changes in v3:
* Remove the patch 'tty: serial: Add linflexuart driver for S32V234'
  following its acceptance[3];
* Replace 'Freescale' with 'NXP' in the ARCH_S32 config definition and the
  'model' property from the device tree;
* Remove the 'fsl-' prefixes from the dtsi and dts file names;
* Move the 'model' property from (fsl-)s32v234.dtsi to s32v234-evb.dts;
* Add newlines between the cpu nodes in s32v234.dtsi;
* Make use of GIC_SPI, GIC_PPI, GIC_CPU_MASK_SIMPLE and IRQ_TYPE_* in the
  'interrupts' tuples;
* Move the 'timer' and 'interrupt-controller' nodes before 'soc' in
  s32v234.dtsi;
* Be consistent with the 'LINFlexD' spelling in documentation, strings and
  comments; add new patch 'serial: fsl_linflexuart: Be consistent with the
  name' to update the LINFlexD driver as well;
* Remove from fsl,s32-linflexuart.txt a statement regarding the limitation
  to UART mode;
* Make the compatible string SoC specific ("fsl,s32v234-linflexuart"); add
  new patch 'serial: fsl_linflexuart: Update compatible string' to update
  the LINFlexD driver as well;
* In the LINFlexD binding documentation, insert a space between label and
  node name and remove the 'status' property.

Changes in v2:
* Update the entry in fsl.yaml to apply to all S32V234 based boards;
* Add chosen node to dts, with a 'stdout-path' property for earlycon;
* Remove linflex_verify_port(), because it was only called from
  uart_set_info(), which was going to always fail at the "baud_base < 9600"
  check, as we are not using uartclk from uart_port yet;
* Fix compatible string used in OF_EARLYCON_DECLARE.

[1] https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/s32-automotive-platform/vision-processor-for-front-and-surround-view-camera-machine-learning-and-sensor-fusion:S32V234
[2] https://www.nxp.com/support/developer-resources/evaluation-and-development-boards/ultra-reliable-dev-platforms/s32v-mpus-platforms/s32v-vision-and-sensor-fusion-evaluation-system:S32V234EVB
[3] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=09864c1cdf5c537bd01bff45181406e422ea988c
[4] https://source.codeaurora.org/external/autobsps32/linux/
[5] https://source.codeaurora.org/external/autobsps32/u-boot/
[6] https://source.codeaurora.org/external/s32ds/compiler/gcc/
[7] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2bd3661ea0eb2056852cbc58c5d96bb4df2f164f
[8] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0e16feab6cce2b91d2996d4bc4eff01ece577c4a
[9] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9050079719021776e48437827eb9d5986b6e45d4

Eddy Petrișor (1):
  dt-bindings: arm: fsl: Add the S32V234-EVB board

Mihaela Martinas (2):
  arm64: Introduce config for S32
  arm64: defconfig: Enable configs for S32V234

Stefan-Gabriel Mirea (1):
  serial: fsl_linflexuart: Be consistent with the name

Stoica Cosmin-Stefan (1):
  arm64: dts: fsl: Add device tree for S32V234-EVB

 .../admin-guide/kernel-parameters.txt         |   2 +-
 .../devicetree/bindings/arm/fsl.yaml          |   6 +
 arch/arm64/Kconfig.platforms                  |   5 +
 arch/arm64/boot/dts/freescale/Makefile        |   2 +
 arch/arm64/boot/dts/freescale/s32v234-evb.dts |  25 ++++
 arch/arm64/boot/dts/freescale/s32v234.dtsi    | 139 ++++++++++++++++++
 arch/arm64/configs/defconfig                  |   3 +
 drivers/tty/serial/Kconfig                    |   8 +-
 drivers/tty/serial/fsl_linflexuart.c          |   4 +-
 include/uapi/linux/serial_core.h              |   2 +-
 10 files changed, 188 insertions(+), 8 deletions(-)
 create mode 100644 arch/arm64/boot/dts/freescale/s32v234-evb.dts
 create mode 100644 arch/arm64/boot/dts/freescale/s32v234.dtsi

Comments

Greg KH Oct. 16, 2019, 1:17 p.m. UTC | #1
On Wed, Oct 16, 2019 at 03:48:22PM +0300, Stefan-Gabriel Mirea wrote:
> Hello,
> 
> NXP's S32V234[1] ("Treerunner") vision microprocessors are targeted for
> high-performance, computationally intensive vision and sensor fusion
> applications that require automotive safety levels. They include leading
> edge Camera Vision modules like APEX-2, ISP and GPU. The S32V234-EVB and
> S32V234-SBC boards are available for customer evaluation.
> 
> The following patch series introduces minimal enablement support for the
> NXP S32V234-EVB2[2] board, which leverages most of the SoC capabilities.
> Up to v2, this series also included the fsl_linflexuart driver, which has
> been included in Linux 5.4-rc1[3].
> 
> In the future, we aim to submit multiple drivers upstream, which can be
> found in the kernel of our Auto Linux BSP[4] ("ALB"), starting with basic
> pinmuxing, clock and uSDHC drivers.
> 
> For validation, you can use the U-Boot bootloader in the ALB[5], which we
> build and test with our patched version of the Linaro GCC 6.3.1 2017.05
> toolchain for ARM 64-bit, with sources available on [6].
> 
> Changes in v7:
> * Rebase the patch 'serial: fsl_linflexuart: Be consistent with the name'
>   on the tty-next branch in Greg's tty git tree.

I've taken patch 3 in my tty-next tree.  The others should probably go
through an arm-specific tree, right?

thanks,

greg k-h
Stefan-gabriel Mirea Oct. 16, 2019, 4:54 p.m. UTC | #2
On 10/16/2019 4:17 PM, Greg KH wrote:
> 
> I've taken patch 3 in my tty-next tree.  The others should probably go
> through an arm-specific tree, right?

Thank you very much, Greg! That was all for the tty tree.

I think that the other patches should go to the following trees:
* git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git:
    patches #1 and possibly #4 (as it covers arch/*/boot/dts/);
* git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git:
    patches #2, #5 and possibly #4 (as it covers arch/arm64/boot/dts/)
* git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git
    possibly patch #4 (as it covers arch/arm64/boot/dts/freescale/fsl-*)

As a general question, would it be any chance to have the device tree
included in v5.4 (along with its compatible documentation and config
definition, without enablement)? That is, only the patches #1, #2 and
#4, because #3 is a cosmetic change and #5 enables the new configs by
default. That would complete a minimal support for S32V234-EVB, together
with the LINFlexD UART driver which was accepted.

From the development process documentation[1]: "An occasional exception
is made for drivers for previously-unsupported hardware; if they touch
no in-tree code, they cannot cause regressions and should be safe to add
at any time".

I know that it mentions only drivers and not device trees, but from the
history is seems that there have also been dts/dtsi files added outside
of merge windows, such as:
* arch/riscv/boot/dts/sifive/fu540-c000.dtsi;
* arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts;
* arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts;
* arch/xtensa/boot/dts/lx200mx.dts;
* arch/xtensa/boot/dts/kc705.dts;
* arch/xtensa/boot/dts/xtfpga-flash-128m.dtsi;
* arch/arm/boot/dts/omap3-beagle-xm-ab.dts;
* arch/arm/boot/dts/at91-sama5d3_xplained.dts;
* arch/arm/boot/dts/am335x-boneblack.dts;
* arch/powerpc/boot/dts/charon.dts.

I am sorry if my question is inopportune, I am definitely not trying to
rush anyone. I just ask because this has been under review for some
time and all the feedback has been addressed. We would really appreciate
to have this SoC and board supported in the following LTS release if
there are no other issues.

Regards,
Stefan

[1] https://www.kernel.org/doc/html/v5.3/process/2.Process.html
Shawn Guo Oct. 26, 2019, 1:26 p.m. UTC | #3
On Wed, Oct 16, 2019 at 04:54:58PM +0000, Stefan-gabriel Mirea wrote:
> On 10/16/2019 4:17 PM, Greg KH wrote:
> > 
> > I've taken patch 3 in my tty-next tree.  The others should probably go
> > through an arm-specific tree, right?
> 
> Thank you very much, Greg! That was all for the tty tree.
> 
> I think that the other patches should go to the following trees:
> * git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git:
>     patches #1 and possibly #4 (as it covers arch/*/boot/dts/);
> * git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git:
>     patches #2, #5 and possibly #4 (as it covers arch/arm64/boot/dts/)
> * git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git
>     possibly patch #4 (as it covers arch/arm64/boot/dts/freescale/fsl-*)
> 
> As a general question, would it be any chance to have the device tree
> included in v5.4 (along with its compatible documentation and config
> definition, without enablement)? That is, only the patches #1, #2 and
> #4, because #3 is a cosmetic change and #5 enables the new configs by
> default. That would complete a minimal support for S32V234-EVB, together
> with the LINFlexD UART driver which was accepted.
> 
> From the development process documentation[1]: "An occasional exception
> is made for drivers for previously-unsupported hardware; if they touch
> no in-tree code, they cannot cause regressions and should be safe to add
> at any time".
> 
> I know that it mentions only drivers and not device trees, but from the
> history is seems that there have also been dts/dtsi files added outside
> of merge windows, such as:
> * arch/riscv/boot/dts/sifive/fu540-c000.dtsi;
> * arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts;
> * arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts;
> * arch/xtensa/boot/dts/lx200mx.dts;
> * arch/xtensa/boot/dts/kc705.dts;
> * arch/xtensa/boot/dts/xtfpga-flash-128m.dtsi;
> * arch/arm/boot/dts/omap3-beagle-xm-ab.dts;
> * arch/arm/boot/dts/at91-sama5d3_xplained.dts;
> * arch/arm/boot/dts/am335x-boneblack.dts;
> * arch/powerpc/boot/dts/charon.dts.
> 
> I am sorry if my question is inopportune, I am definitely not trying to
> rush anyone. I just ask because this has been under review for some
> time and all the feedback has been addressed. We would really appreciate
> to have this SoC and board supported in the following LTS release if
> there are no other issues.

Sorry, no.  It happens occasionally that non-fixing patches are merged
during -rc time, mostly because they are supposed to land mainline
during merge window, but missed the window for some reason, like
subsystem maintainers did not send pull request to Linus in time.
Also the patches are only taken in early -rc like rc2.

Shawn
Shawn Guo Oct. 26, 2019, 1:44 p.m. UTC | #4
On Wed, Oct 16, 2019 at 03:48:22PM +0300, Stefan-Gabriel Mirea wrote:
> Eddy Petrișor (1):
>   dt-bindings: arm: fsl: Add the S32V234-EVB board
> 
> Mihaela Martinas (2):
>   arm64: Introduce config for S32
>   arm64: defconfig: Enable configs for S32V234
...
> Stoica Cosmin-Stefan (1):
>   arm64: dts: fsl: Add device tree for S32V234-EVB

Applied these 4, thanks.
Stefan-gabriel Mirea Oct. 26, 2019, 3:12 p.m. UTC | #5
Hello Shawn,

On 10/26/2019 4:27 PM, Shawn Guo wrote:
> 
> Sorry, no.  It happens occasionally that non-fixing patches are merged
> during -rc time, mostly because they are supposed to land mainline
> during merge window, but missed the window for some reason, like
> subsystem maintainers did not send pull request to Linus in time.
> Also the patches are only taken in early -rc like rc2.
> 

Okay, thank you for your clarification!

Regards,
Stefan