* [PATCH v2 0/4] arm64: dts: Add Arm Morello support
@ 2024-12-23 16:20 Vincenzo Frascino
2024-12-23 16:20 ` [PATCH v2 1/4] dt-bindings: arm: Add Morello compatibility Vincenzo Frascino
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Vincenzo Frascino @ 2024-12-23 16:20 UTC (permalink / raw)
To: linux-arm-kernel, devicetree, linux-kernel
Cc: Vincenzo Frascino, Linus Walleij, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Liviu Dudau, Sudeep Holla,
Lorenzo Pieralisi, Russell King
The Morello architecture is an experimental extension to Armv8.2-A,
which extends the AArch64 state with the principles proposed in
version 7 of the Capability Hardware Enhanced RISC Instructions
(CHERI) ISA [1].
This series adds dts support for the Arm Morello System Development
Platform.
[1] https://www.morello-project.org/
To simplify the testing a linux tree rebased on 6.13-rc4 is accessible
at [2].
[2] https://codeberg.org/vincenzo/linux/src/branch/morello/dts/v1
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Changes
=======
v2:
- Addressed review comments.
- Rebased on 6.13-rc4.
- Renamed arm,morello to arm,morello-sdp for clarity.
Vincenzo Frascino (4):
dt-bindings: arm: Add Morello compatibility
arm64: dts: morello: Add support for common functionalities
arm64: dts: morello: Add support for soc dts
MAINTAINERS: Add Vincenzo Frascino as Arm Morello Maintainer
.../bindings/arm/arm,vexpress-juno.yaml | 3 +
MAINTAINERS | 6 +
arch/arm64/boot/dts/arm/Makefile | 1 +
arch/arm64/boot/dts/arm/morello-sdp.dts | 116 ++++++++
arch/arm64/boot/dts/arm/morello.dtsi | 271 ++++++++++++++++++
5 files changed, 397 insertions(+)
create mode 100644 arch/arm64/boot/dts/arm/morello-sdp.dts
create mode 100644 arch/arm64/boot/dts/arm/morello.dtsi
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 1/4] dt-bindings: arm: Add Morello compatibility
2024-12-23 16:20 [PATCH v2 0/4] arm64: dts: Add Arm Morello support Vincenzo Frascino
@ 2024-12-23 16:20 ` Vincenzo Frascino
2024-12-23 16:32 ` Krzysztof Kozlowski
2024-12-23 16:20 ` [PATCH v2 2/4] arm64: dts: morello: Add support for common functionalities Vincenzo Frascino
` (2 subsequent siblings)
3 siblings, 1 reply; 11+ messages in thread
From: Vincenzo Frascino @ 2024-12-23 16:20 UTC (permalink / raw)
To: linux-arm-kernel, devicetree, linux-kernel
Cc: Vincenzo Frascino, Linus Walleij, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Liviu Dudau, Sudeep Holla,
Lorenzo Pieralisi, Russell King
Add compatibility to Arm Morello System Development Platform.
Note: Morello is at the same time the name of an Architecture [1], an SoC
[2] and a Board [2].
To distinguish in between Architecture/SoC and Board we refer to the first
as arm,morello and to the second as arm,morello-sdp.
[1] https://developer.arm.com/Architectures/Morello
[2] https://www.morello-project.org/
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
---
Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml b/Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
index 8dd6b6446394..7934d2c4cba0 100644
--- a/Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
@@ -118,6 +118,9 @@ properties:
items:
- const: arm,foundation-aarch64
- const: arm,vexpress
+ - description: Arm Morello System Development Platform
+ items:
+ - const: arm,morello-sdp
arm,vexpress,position:
description: When daughterboards are stacked on one site, their position
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 2/4] arm64: dts: morello: Add support for common functionalities
2024-12-23 16:20 [PATCH v2 0/4] arm64: dts: Add Arm Morello support Vincenzo Frascino
2024-12-23 16:20 ` [PATCH v2 1/4] dt-bindings: arm: Add Morello compatibility Vincenzo Frascino
@ 2024-12-23 16:20 ` Vincenzo Frascino
2024-12-23 16:39 ` Krzysztof Kozlowski
2024-12-23 16:20 ` [PATCH v2 3/4] arm64: dts: morello: Add support for soc dts Vincenzo Frascino
2024-12-23 16:20 ` [PATCH v2 4/4] MAINTAINERS: Add Vincenzo Frascino as Arm Morello Maintainer Vincenzo Frascino
3 siblings, 1 reply; 11+ messages in thread
From: Vincenzo Frascino @ 2024-12-23 16:20 UTC (permalink / raw)
To: linux-arm-kernel, devicetree, linux-kernel
Cc: Vincenzo Frascino, Linus Walleij, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Liviu Dudau, Sudeep Holla,
Lorenzo Pieralisi, Russell King
The Morello architecture is an experimental extension to Armv8.2-A,
which extends the AArch64 state with the principles proposed in
version 7 of the Capability Hardware Enhanced RISC Instructions
(CHERI) ISA.
The Morello Platform (soc) and the Fixed Virtual Platfom (fvp) share
some functionalities that have conveniently been included in
morello.dtsi to avoid duplication.
Introduce morello.dtsi.
Note: Morello fvp will be introduced with a future patch series.
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
---
arch/arm64/boot/dts/arm/morello.dtsi | 271 +++++++++++++++++++++++++++
1 file changed, 271 insertions(+)
create mode 100644 arch/arm64/boot/dts/arm/morello.dtsi
diff --git a/arch/arm64/boot/dts/arm/morello.dtsi b/arch/arm64/boot/dts/arm/morello.dtsi
new file mode 100644
index 000000000000..b9030007d9e6
--- /dev/null
+++ b/arch/arm64/boot/dts/arm/morello.dtsi
@@ -0,0 +1,271 @@
+// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
+/*
+ * Copyright (c) 2020-2024, Arm Limited. All rights reserved.
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ interrupt-parent = <&gic>;
+
+ aliases {
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ secure-firmware@ff000000 {
+ reg = <0 0xff000000 0 0x01000000>;
+ no-map;
+ };
+ };
+
+ cpus {
+ #address-cells = <2>;
+ #size-cells = <0>;
+ cpu0: cpu0@0 {
+ compatible = "arm,neoverse-n1";
+ reg = <0x0 0x0>;
+ device_type = "cpu";
+ enable-method = "psci";
+ clocks = <&scmi_dvfs 0>;
+ };
+ cpu1: cpu1@100 {
+ compatible = "arm,neoverse-n1";
+ reg = <0x0 0x100>;
+ device_type = "cpu";
+ enable-method = "psci";
+ clocks = <&scmi_dvfs 0>;
+ };
+ cpu2: cpu2@10000 {
+ compatible = "arm,neoverse-n1";
+ reg = <0x0 0x10000>;
+ device_type = "cpu";
+ enable-method = "psci";
+ clocks = <&scmi_dvfs 1>;
+ };
+ cpu3: cpu3@10100 {
+ compatible = "arm,neoverse-n1";
+ reg = <0x0 0x10100>;
+ device_type = "cpu";
+ enable-method = "psci";
+ clocks = <&scmi_dvfs 1>;
+ };
+ };
+
+ /* The first bank of memory, memory map is actually provided by UEFI. */
+ memory@80000000 {
+ device_type = "memory";
+ /* [0x80000000-0xffffffff] */
+ reg = <0x00000000 0x80000000 0x0 0x7F000000>;
+ };
+
+ memory@8080000000 {
+ device_type = "memory";
+ /* [0x8080000000-0x83f7ffffff] */
+ reg = <0x00000080 0x80000000 0x3 0x78000000>;
+ };
+
+ gic: interrupt-controller@2c010000 {
+ compatible = "arm,gic-v3";
+ #address-cells = <2>;
+ #interrupt-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+ interrupt-controller;
+ };
+
+ pmu {
+ compatible = "arm,armv8-pmuv3";
+ interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ spe-pmu {
+ compatible = "arm,statistical-profiling-extension-v1";
+ interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ psci {
+ compatible = "arm,psci-0.2";
+ method = "smc";
+ };
+
+ timer {
+ compatible = "arm,armv8-timer";
+ interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
+ <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
+ <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
+ <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
+ };
+
+ soc_refclk50mhz: clock-50000000 {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <50000000>;
+ clock-output-names = "apb_pclk";
+ };
+
+ soc_refclk85mhz: clock-85000000 {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <85000000>;
+ clock-output-names = "iofpga:aclk";
+ };
+
+ soc_uartclk: clock-50000000-uart {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <50000000>;
+ clock-output-names = "uartclk";
+ };
+
+ soc: soc {
+ compatible = "simple-bus";
+ #address-cells = <2>;
+ #size-cells = <2>;
+ interrupt-parent = <&gic>;
+ ranges;
+
+ mailbox: mhu@45000000 {
+ compatible = "arm,mhu-doorbell", "arm,primecell";
+ reg = <0x0 0x45000000 0x0 0x1000>;
+ interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>;
+ #mbox-cells = <2>;
+ clocks = <&soc_refclk50mhz>;
+ clock-names = "apb_pclk";
+ };
+
+ sram: sram@45200000 {
+ compatible = "mmio-sram";
+ reg = <0x0 0x06000000 0x0 0x8000>;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0 0x0 0x06000000 0x8000>;
+
+ cpu_scp_hpri0: scp-sram@0 {
+ compatible = "arm,scmi-shmem";
+ reg = <0x0 0x80>;
+ };
+
+ cpu_scp_hpri1: scp-sram@80 {
+ compatible = "arm,scmi-shmem";
+ reg = <0x80 0x80>;
+ };
+ };
+
+ uart0: serial@2a400000 {
+ compatible = "arm,pl011", "arm,primecell";
+ reg = <0x0 0x2a400000 0x0 0x1000>;
+ interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&soc_uartclk>, <&soc_refclk50mhz>;
+ clock-names = "uartclk", "apb_pclk";
+ };
+
+ smmu_pcie: iommu@4f400000 {
+ compatible = "arm,smmu-v3";
+ reg = <0 0x4f400000 0 0x40000>;
+ interrupts = <GIC_SPI 235 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 237 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 40 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 236 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
+ msi-parent = <&its2 0>;
+ #iommu-cells = <1>;
+ dma-coherent;
+ };
+
+ pcie_ctlr: pcie@28c0000000 {
+ compatible = "pci-host-ecam-generic";
+ device_type = "pci";
+ reg = <0x28 0xC0000000 0 0x10000000>;
+ bus-range = <0 255>;
+ linux,pci-domain = <0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ dma-coherent;
+ ranges = <0x01000000 0x00 0x00000000 0x00 0x6F000000 0x00 0x00800000>,
+ <0x02000000 0x00 0x60000000 0x00 0x60000000 0x00 0x0F000000>,
+ <0x42000000 0x09 0x00000000 0x09 0x00000000 0x1F 0xC0000000>;
+ #interrupt-cells = <1>;
+ interrupt-map-mask = <0 0 0 7>;
+ interrupt-map = <0 0 0 1 &gic 0 0 0 169 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 2 &gic 0 0 0 170 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 3 &gic 0 0 0 171 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 4 &gic 0 0 0 172 IRQ_TYPE_LEVEL_HIGH>;
+ msi-map = <0 &its_pcie 0 0x10000>;
+ iommu-map = <0 &smmu_pcie 0 0x10000>;
+ status = "okay";
+ };
+
+ smmu_ccix: iommu@4f000000 {
+ compatible = "arm,smmu-v3";
+ reg = <0 0x4f000000 0 0x40000>;
+ interrupts = <GIC_SPI 228 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 230 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 41 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 229 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
+ msi-parent = <&its1 0>;
+ #iommu-cells = <1>;
+ dma-coherent;
+ };
+
+ ccix_pcie_ctlr: pcie@4fc0000000 {
+ compatible = "pci-host-ecam-generic";
+ device_type = "pci";
+ reg = <0x4F 0xC0000000 0 0x10000000>;
+ bus-range = <0 255>;
+ linux,pci-domain = <1>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ dma-coherent;
+ ranges = <0x01000000 0x00 0x00000000 0x00 0x7F000000 0x00 0x00800000>,
+ <0x02000000 0x00 0x70000000 0x00 0x70000000 0x00 0x0F000000>,
+ <0x42000000 0x30 0x00000000 0x30 0x00000000 0x1F 0xC0000000>;
+ #interrupt-cells = <1>;
+ interrupt-map-mask = <0 0 0 7>;
+ interrupt-map = <0 0 0 1 &gic 0 0 0 201 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 2 &gic 0 0 0 202 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 3 &gic 0 0 0 203 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 4 &gic 0 0 0 204 IRQ_TYPE_LEVEL_HIGH>;
+ msi-map = <0 &its_ccix 0 0x10000>;
+ iommu-map = <0 &smmu_ccix 0 0x10000>;
+ status = "okay";
+ };
+
+ firmware {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ interrupt-parent = <&gic>;
+ ranges;
+
+ scmi {
+ compatible = "arm,scmi";
+ mbox-names = "tx", "rx";
+ mboxes = <&mailbox 1 0>, <&mailbox 1 1>;
+ shmem = <&cpu_scp_hpri0>, <&cpu_scp_hpri1>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ scmi_dvfs: protocol@13 {
+ reg = <0x13>;
+ #clock-cells = <1>;
+ };
+ scmi_clk: protocol@14 {
+ reg = <0x14>;
+ #clock-cells = <1>;
+ };
+ };
+ };
+ };
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 3/4] arm64: dts: morello: Add support for soc dts
2024-12-23 16:20 [PATCH v2 0/4] arm64: dts: Add Arm Morello support Vincenzo Frascino
2024-12-23 16:20 ` [PATCH v2 1/4] dt-bindings: arm: Add Morello compatibility Vincenzo Frascino
2024-12-23 16:20 ` [PATCH v2 2/4] arm64: dts: morello: Add support for common functionalities Vincenzo Frascino
@ 2024-12-23 16:20 ` Vincenzo Frascino
2024-12-23 16:43 ` Krzysztof Kozlowski
2024-12-23 16:20 ` [PATCH v2 4/4] MAINTAINERS: Add Vincenzo Frascino as Arm Morello Maintainer Vincenzo Frascino
3 siblings, 1 reply; 11+ messages in thread
From: Vincenzo Frascino @ 2024-12-23 16:20 UTC (permalink / raw)
To: linux-arm-kernel, devicetree, linux-kernel
Cc: Vincenzo Frascino, Linus Walleij, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Liviu Dudau, Sudeep Holla,
Lorenzo Pieralisi, Russell King
The Morello architecture is an experimental extension to Armv8.2-A,
which extends the AArch64 state with the principles proposed in
version 7 of the Capability Hardware Enhanced RISC Instructions
(CHERI) ISA.
Introduce Morello SoC dts.
Note: Morello is at the same time the name of an Architecture [1], an SoC
[2] and a Board [2].
To distinguish in between Architecture/SoC and Board we refer to the first
as arm,morello and to the second as arm,morello-sdp.
[1] https://developer.arm.com/Architectures/Morello
[2] https://www.morello-project.org/
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
---
arch/arm64/boot/dts/arm/Makefile | 1 +
arch/arm64/boot/dts/arm/morello-sdp.dts | 116 ++++++++++++++++++++++++
2 files changed, 117 insertions(+)
create mode 100644 arch/arm64/boot/dts/arm/morello-sdp.dts
diff --git a/arch/arm64/boot/dts/arm/Makefile b/arch/arm64/boot/dts/arm/Makefile
index d908e96d7ddc..869667bef7c0 100644
--- a/arch/arm64/boot/dts/arm/Makefile
+++ b/arch/arm64/boot/dts/arm/Makefile
@@ -7,3 +7,4 @@ dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb
dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2f-1xv7-ca53x2.dtb
dtb-$(CONFIG_ARCH_VEXPRESS) += fvp-base-revc.dtb
dtb-$(CONFIG_ARCH_VEXPRESS) += corstone1000-fvp.dtb corstone1000-mps3.dtb
+dtb-$(CONFIG_ARCH_VEXPRESS) += morello-sdp.dtb
diff --git a/arch/arm64/boot/dts/arm/morello-sdp.dts b/arch/arm64/boot/dts/arm/morello-sdp.dts
new file mode 100644
index 000000000000..143e644361e4
--- /dev/null
+++ b/arch/arm64/boot/dts/arm/morello-sdp.dts
@@ -0,0 +1,116 @@
+// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
+/*
+ * Copyright (c) 2021-2024, Arm Limited. All rights reserved.
+
+ */
+
+/dts-v1/;
+#include "morello.dtsi"
+
+/ {
+ model = "Arm Morello System Development Platform";
+ compatible = "arm,morello-sdp";
+
+ smmu_dp: iommu@2ce00000 {
+ compatible = "arm,smmu-v3";
+ reg = <0 0x2ce00000 0 0x40000>;
+ interrupts = <GIC_SPI 76 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 80 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "eventq", "gerror", "cmdq-sync";
+ #iommu-cells = <1>;
+ };
+
+ dp0: display@2cc00000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "arm,mali-d32", "arm,mali-d71";
+ reg = <0 0x2cc00000 0 0x20000>;
+ interrupts = <0 69 4>;
+ clocks = <&dpu_aclk>;
+ clock-names = "aclk";
+ iommus = <&smmu_dp 0>, <&smmu_dp 1>, <&smmu_dp 2>, <&smmu_dp 3>,
+ <&smmu_dp 8>;
+
+ pl0: pipeline@0 {
+ reg = <0>;
+ clocks = <&dpu_pixel_clk>;
+ clock-names = "pxclk";
+ port {
+ dp_pl0_out0: endpoint {
+ remote-endpoint = <&tda998x_0_input>;
+ };
+ };
+ };
+ };
+
+ i2c@1c0f0000 {
+ compatible = "cdns,i2c-r1p14";
+ reg = <0x0 0x1c0f0000 0x0 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clock-frequency = <100000>;
+ interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&dpu_aclk>;
+
+ hdmi_tx: hdmi-transmitter@70 {
+ compatible = "nxp,tda998x";
+ reg = <0x70>;
+ video-ports = <0x234501>;
+ port {
+ tda998x_0_input: endpoint {
+ remote-endpoint = <&dp_pl0_out0>;
+ };
+ };
+ };
+ };
+
+ dpu_aclk: dpu_aclk {
+ /* 77.1 MHz derived from 24 MHz reference clock */
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <350000000>;
+ clock-output-names = "aclk";
+ };
+
+ dpu_pixel_clk: dpu-pixel-clk {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <148500000>;
+ clock-output-names = "pxclk";
+ };
+};
+
+&gic {
+ reg = <0x0 0x30000000 0 0x10000>, /* GICD */
+ <0x0 0x300c0000 0 0x80000>; /* GICR */
+ interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+
+ its1: msi-controller@30040000 {
+ compatible = "arm,gic-v3-its";
+ msi-controller;
+ #msi-cells = <1>;
+ reg = <0x0 0x30040000 0x0 0x20000>;
+ };
+
+ its2: msi-controller@30060000 {
+ compatible = "arm,gic-v3-its";
+ msi-controller;
+ #msi-cells = <1>;
+ reg = <0x0 0x30060000 0x0 0x20000>;
+ };
+
+ its_ccix: msi-controller@30080000 {
+ compatible = "arm,gic-v3-its";
+ msi-controller;
+ #msi-cells = <1>;
+ reg = <0x0 0x30080000 0x0 0x20000>;
+ };
+
+ its_pcie: msi-controller@300a0000 {
+ compatible = "arm,gic-v3-its";
+ msi-controller;
+ #msi-cells = <1>;
+ reg = <0x0 0x300a0000 0x0 0x20000>;
+ };
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 4/4] MAINTAINERS: Add Vincenzo Frascino as Arm Morello Maintainer
2024-12-23 16:20 [PATCH v2 0/4] arm64: dts: Add Arm Morello support Vincenzo Frascino
` (2 preceding siblings ...)
2024-12-23 16:20 ` [PATCH v2 3/4] arm64: dts: morello: Add support for soc dts Vincenzo Frascino
@ 2024-12-23 16:20 ` Vincenzo Frascino
2024-12-23 16:43 ` Krzysztof Kozlowski
3 siblings, 1 reply; 11+ messages in thread
From: Vincenzo Frascino @ 2024-12-23 16:20 UTC (permalink / raw)
To: linux-arm-kernel, devicetree, linux-kernel
Cc: Vincenzo Frascino, Linus Walleij, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Liviu Dudau, Sudeep Holla,
Lorenzo Pieralisi, Russell King
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
---
MAINTAINERS | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 910305c11e8a..8b2d20fc8cdb 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2711,6 +2711,12 @@ F: arch/arm/boot/dts/socionext/milbeaut*
F: arch/arm/mach-milbeaut/
N: milbeaut
+ARM/MORELLO PLATFORM
+M: Vincenzo Frascino <vincenzo.frascino@arm.com>
+L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+S: Maintained
+F: arch/arm64/boot/dts/arm/morello*
+
ARM/MOXA ART SOC
M: Krzysztof Kozlowski <krzk@kernel.org>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: arm: Add Morello compatibility
2024-12-23 16:20 ` [PATCH v2 1/4] dt-bindings: arm: Add Morello compatibility Vincenzo Frascino
@ 2024-12-23 16:32 ` Krzysztof Kozlowski
2024-12-23 16:41 ` Vincenzo Frascino
0 siblings, 1 reply; 11+ messages in thread
From: Krzysztof Kozlowski @ 2024-12-23 16:32 UTC (permalink / raw)
To: Vincenzo Frascino, linux-arm-kernel, devicetree, linux-kernel
Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Russell King
On 23/12/2024 17:20, Vincenzo Frascino wrote:
> Add compatibility to Arm Morello System Development Platform.
>
> Note: Morello is at the same time the name of an Architecture [1], an SoC
> [2] and a Board [2].
> To distinguish in between Architecture/SoC and Board we refer to the first
> as arm,morello and to the second as arm,morello-sdp.
>
> [1] https://developer.arm.com/Architectures/Morello
> [2] https://www.morello-project.org/
>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Sudeep Holla <sudeep.holla@arm.com>
> Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
> Cc: Russell King <linux@armlinux.org.uk>
> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
> ---
> Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml b/Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
> index 8dd6b6446394..7934d2c4cba0 100644
> --- a/Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
> +++ b/Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
> @@ -118,6 +118,9 @@ properties:
> items:
> - const: arm,foundation-aarch64
> - const: arm,vexpress
> + - description: Arm Morello System Development Platform
> + items:
> + - const: arm,morello-sdp
Also:
const: arm,morello
Unless you claim that this cannot be used in any other product than SDP,
but this then needs explanation in commit msg.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/4] arm64: dts: morello: Add support for common functionalities
2024-12-23 16:20 ` [PATCH v2 2/4] arm64: dts: morello: Add support for common functionalities Vincenzo Frascino
@ 2024-12-23 16:39 ` Krzysztof Kozlowski
0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2024-12-23 16:39 UTC (permalink / raw)
To: Vincenzo Frascino, linux-arm-kernel, devicetree, linux-kernel
Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Russell King
On 23/12/2024 17:20, Vincenzo Frascino wrote:
> The Morello architecture is an experimental extension to Armv8.2-A,
> which extends the AArch64 state with the principles proposed in
> version 7 of the Capability Hardware Enhanced RISC Instructions
> (CHERI) ISA.
>
> The Morello Platform (soc) and the Fixed Virtual Platfom (fvp) share
> some functionalities that have conveniently been included in
> morello.dtsi to avoid duplication.
>
> Introduce morello.dtsi.
>
> Note: Morello fvp will be introduced with a future patch series.
>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Sudeep Holla <sudeep.holla@arm.com>
> Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
> Cc: Russell King <linux@armlinux.org.uk>
> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
> ---
> arch/arm64/boot/dts/arm/morello.dtsi | 271 +++++++++++++++++++++++++++
> 1 file changed, 271 insertions(+)
> create mode 100644 arch/arm64/boot/dts/arm/morello.dtsi
>
> diff --git a/arch/arm64/boot/dts/arm/morello.dtsi b/arch/arm64/boot/dts/arm/morello.dtsi
> new file mode 100644
> index 000000000000..b9030007d9e6
> --- /dev/null
> +++ b/arch/arm64/boot/dts/arm/morello.dtsi
> @@ -0,0 +1,271 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
> +/*
> + * Copyright (c) 2020-2024, Arm Limited. All rights reserved.
> + */
> +
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> +/ {
> + #address-cells = <2>;
> + #size-cells = <2>;
> + interrupt-parent = <&gic>;
> +
> + aliases {
> + serial0 = &uart0;
This belongs to DTS file.
> + };
> +
> + chosen {
> + stdout-path = "serial0:115200n8";
As well.
> + };
> +
> + reserved-memory {
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> +
> + secure-firmware@ff000000 {
> + reg = <0 0xff000000 0 0x01000000>;
> + no-map;
> + };
> + };
> +
> + cpus {
> + #address-cells = <2>;
> + #size-cells = <0>;
Blank line
> + cpu0: cpu0@0 {
> + compatible = "arm,neoverse-n1";
> + reg = <0x0 0x0>;
> + device_type = "cpu";
> + enable-method = "psci";
> + clocks = <&scmi_dvfs 0>;
> + };
Blank line between each device node.
> + cpu1: cpu1@100 {
> + compatible = "arm,neoverse-n1";
> + reg = <0x0 0x100>;
> + device_type = "cpu";
> + enable-method = "psci";
> + clocks = <&scmi_dvfs 0>;
> + };
> + cpu2: cpu2@10000 {
> + compatible = "arm,neoverse-n1";
> + reg = <0x0 0x10000>;
> + device_type = "cpu";
> + enable-method = "psci";
> + clocks = <&scmi_dvfs 1>;
> + };
> + cpu3: cpu3@10100 {
> + compatible = "arm,neoverse-n1";
> + reg = <0x0 0x10100>;
> + device_type = "cpu";
> + enable-method = "psci";
> + clocks = <&scmi_dvfs 1>;
> + };
> + };
> +
> + /* The first bank of memory, memory map is actually provided by UEFI. */
> + memory@80000000 {
> + device_type = "memory";
> + /* [0x80000000-0xffffffff] */
> + reg = <0x00000000 0x80000000 0x0 0x7F000000>;
> + };
> +
> + memory@8080000000 {
> + device_type = "memory";
> + /* [0x8080000000-0x83f7ffffff] */
> + reg = <0x00000080 0x80000000 0x3 0x78000000>;
> + };
> +
> + gic: interrupt-controller@2c010000 {
You need 'soc' node. ARM DTS files have this unusual, I don't understand
why these were done like that. Don't use them as example. Take some
latest qcom (sm8650.dtsi) as an example.
> + compatible = "arm,gic-v3";
> + #address-cells = <2>;
> + #interrupt-cells = <3>;
> + #size-cells = <2>;
> + ranges;
> + interrupt-controller;
> + };
> +
> + pmu {
> + compatible = "arm,armv8-pmuv3";
> + interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
> + };
> +
> + spe-pmu {
> + compatible = "arm,statistical-profiling-extension-v1";
> + interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_HIGH>;
> + };
> +
> + psci {
> + compatible = "arm,psci-0.2";
> + method = "smc";
> + };
> +
> + timer {
> + compatible = "arm,armv8-timer";
> + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
> + };
> +
> + soc_refclk50mhz: clock-50000000 {
Keep nodes ordered by name.
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <50000000>;
> + clock-output-names = "apb_pclk";
> + };
> +
> + soc_refclk85mhz: clock-85000000 {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <85000000>;
> + clock-output-names = "iofpga:aclk";
> + };
> +
> + soc_uartclk: clock-50000000-uart {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <50000000>;
> + clock-output-names = "uartclk";
> + };
> +
> + soc: soc {
Ah, so here is the soc. GIC should be inside.
> + compatible = "simple-bus";
> + #address-cells = <2>;
> + #size-cells = <2>;
> + interrupt-parent = <&gic>;
> + ranges;
> +
> + mailbox: mhu@45000000 {
> + compatible = "arm,mhu-doorbell", "arm,primecell";
> + reg = <0x0 0x45000000 0x0 0x1000>;
> + interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>;
Misaligned. It should be aligned to previous <
> + #mbox-cells = <2>;
> + clocks = <&soc_refclk50mhz>;
> + clock-names = "apb_pclk";
> + };
> +
> + sram: sram@45200000 {
> + compatible = "mmio-sram";
> + reg = <0x0 0x06000000 0x0 0x8000>;
> +
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges = <0 0x0 0x06000000 0x8000>;
Ranges go immediately after reg (see DTS coding style)
> +
> + cpu_scp_hpri0: scp-sram@0 {
> + compatible = "arm,scmi-shmem";
> + reg = <0x0 0x80>;
> + };
> +
> + cpu_scp_hpri1: scp-sram@80 {
> + compatible = "arm,scmi-shmem";
> + reg = <0x80 0x80>;
> + };
> + };
> +
> + uart0: serial@2a400000 {
> + compatible = "arm,pl011", "arm,primecell";
> + reg = <0x0 0x2a400000 0x0 0x1000>;
> + interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&soc_uartclk>, <&soc_refclk50mhz>;
> + clock-names = "uartclk", "apb_pclk";
This should be disabled and board should enable it.
> + };
> +
> + smmu_pcie: iommu@4f400000 {
> + compatible = "arm,smmu-v3";
> + reg = <0 0x4f400000 0 0x40000>;
> + interrupts = <GIC_SPI 235 IRQ_TYPE_EDGE_RISING>,
> + <GIC_SPI 237 IRQ_TYPE_EDGE_RISING>,
> + <GIC_SPI 40 IRQ_TYPE_EDGE_RISING>,
> + <GIC_SPI 236 IRQ_TYPE_EDGE_RISING>;
> + interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
> + msi-parent = <&its2 0>;
> + #iommu-cells = <1>;
> + dma-coherent;
> + };
> +
> + pcie_ctlr: pcie@28c0000000 {
> + compatible = "pci-host-ecam-generic";
> + device_type = "pci";
> + reg = <0x28 0xC0000000 0 0x10000000>;
> + bus-range = <0 255>;
> + linux,pci-domain = <0>;
> + #address-cells = <3>;
> + #size-cells = <2>;
> + dma-coherent;
> + ranges = <0x01000000 0x00 0x00000000 0x00 0x6F000000 0x00 0x00800000>,
> + <0x02000000 0x00 0x60000000 0x00 0x60000000 0x00 0x0F000000>,
> + <0x42000000 0x09 0x00000000 0x09 0x00000000 0x1F 0xC0000000>;
> + #interrupt-cells = <1>;
> + interrupt-map-mask = <0 0 0 7>;
> + interrupt-map = <0 0 0 1 &gic 0 0 0 169 IRQ_TYPE_LEVEL_HIGH>,
> + <0 0 0 2 &gic 0 0 0 170 IRQ_TYPE_LEVEL_HIGH>,
> + <0 0 0 3 &gic 0 0 0 171 IRQ_TYPE_LEVEL_HIGH>,
> + <0 0 0 4 &gic 0 0 0 172 IRQ_TYPE_LEVEL_HIGH>;
> + msi-map = <0 &its_pcie 0 0x10000>;
> + iommu-map = <0 &smmu_pcie 0 0x10000>;
> + status = "okay";
> + };
> +
> + smmu_ccix: iommu@4f000000 {
> + compatible = "arm,smmu-v3";
> + reg = <0 0x4f000000 0 0x40000>;
> + interrupts = <GIC_SPI 228 IRQ_TYPE_EDGE_RISING>,
> + <GIC_SPI 230 IRQ_TYPE_EDGE_RISING>,
> + <GIC_SPI 41 IRQ_TYPE_EDGE_RISING>,
> + <GIC_SPI 229 IRQ_TYPE_EDGE_RISING>;
> + interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
> + msi-parent = <&its1 0>;
> + #iommu-cells = <1>;
> + dma-coherent;
> + };
> +
> + ccix_pcie_ctlr: pcie@4fc0000000 {
> + compatible = "pci-host-ecam-generic";
> + device_type = "pci";
> + reg = <0x4F 0xC0000000 0 0x10000000>;
> + bus-range = <0 255>;
> + linux,pci-domain = <1>;
> + #address-cells = <3>;
> + #size-cells = <2>;
> + dma-coherent;
> + ranges = <0x01000000 0x00 0x00000000 0x00 0x7F000000 0x00 0x00800000>,
> + <0x02000000 0x00 0x70000000 0x00 0x70000000 0x00 0x0F000000>,
> + <0x42000000 0x30 0x00000000 0x30 0x00000000 0x1F 0xC0000000>;
> + #interrupt-cells = <1>;
> + interrupt-map-mask = <0 0 0 7>;
> + interrupt-map = <0 0 0 1 &gic 0 0 0 201 IRQ_TYPE_LEVEL_HIGH>,
> + <0 0 0 2 &gic 0 0 0 202 IRQ_TYPE_LEVEL_HIGH>,
> + <0 0 0 3 &gic 0 0 0 203 IRQ_TYPE_LEVEL_HIGH>,
> + <0 0 0 4 &gic 0 0 0 204 IRQ_TYPE_LEVEL_HIGH>;
> + msi-map = <0 &its_ccix 0 0x10000>;
> + iommu-map = <0 &smmu_ccix 0 0x10000>;
> + status = "okay";
Drop, everywhere
> + };
> +
> + firmware {
firmware is not part of soc.
> + #address-cells = <2>;
> + #size-cells = <2>;
Drop both
> + interrupt-parent = <&gic>;
> + ranges;
Drop ranges, this is all odd.
> +
> + scmi {
> + compatible = "arm,scmi";
> + mbox-names = "tx", "rx";
> + mboxes = <&mailbox 1 0>, <&mailbox 1 1>;
> + shmem = <&cpu_scp_hpri0>, <&cpu_scp_hpri1>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + scmi_dvfs: protocol@13 {
> + reg = <0x13>;
> + #clock-cells = <1>;
> + };
> + scmi_clk: protocol@14 {
> + reg = <0x14>;
> + #clock-cells = <1>;
> + };
> + };
> + };
> + };
> +};
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: arm: Add Morello compatibility
2024-12-23 16:32 ` Krzysztof Kozlowski
@ 2024-12-23 16:41 ` Vincenzo Frascino
2024-12-24 8:52 ` Krzysztof Kozlowski
0 siblings, 1 reply; 11+ messages in thread
From: Vincenzo Frascino @ 2024-12-23 16:41 UTC (permalink / raw)
To: Krzysztof Kozlowski, linux-arm-kernel, devicetree, linux-kernel
Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Russell King
On 23/12/2024 16:32, Krzysztof Kozlowski wrote:
> On 23/12/2024 17:20, Vincenzo Frascino wrote:
>> Add compatibility to Arm Morello System Development Platform.
>>
>> Note: Morello is at the same time the name of an Architecture [1], an SoC
>> [2] and a Board [2].
>> To distinguish in between Architecture/SoC and Board we refer to the first
>> as arm,morello and to the second as arm,morello-sdp.
>>
>> [1] https://developer.arm.com/Architectures/Morello
>> [2] https://www.morello-project.org/
>>
>> Cc: Linus Walleij <linus.walleij@linaro.org>
>> Cc: Rob Herring <robh@kernel.org>
>> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
>> Cc: Conor Dooley <conor+dt@kernel.org>
>> Cc: Liviu Dudau <liviu.dudau@arm.com>
>> Cc: Sudeep Holla <sudeep.holla@arm.com>
>> Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
>> Cc: Russell King <linux@armlinux.org.uk>
>> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
>> ---
>> Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml b/Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
>> index 8dd6b6446394..7934d2c4cba0 100644
>> --- a/Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
>> +++ b/Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
>> @@ -118,6 +118,9 @@ properties:
>> items:
>> - const: arm,foundation-aarch64
>> - const: arm,vexpress
>> + - description: Arm Morello System Development Platform
>> + items:
>> + - const: arm,morello-sdp
> Also:
> const: arm,morello
>
> Unless you claim that this cannot be used in any other product than SDP,
> but this then needs explanation in commit msg.
>
Morello is a Prototype architecture and there are no plans to use it outside of
SDP hence I did not add arm,morello.
I thought it was clear since the note states that Architecture, SoC and Board
have the same name, if not, happy do address it in v3.
> Best regards,
> Krzysztof
--
Regards,
Vincenzo
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 3/4] arm64: dts: morello: Add support for soc dts
2024-12-23 16:20 ` [PATCH v2 3/4] arm64: dts: morello: Add support for soc dts Vincenzo Frascino
@ 2024-12-23 16:43 ` Krzysztof Kozlowski
0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2024-12-23 16:43 UTC (permalink / raw)
To: Vincenzo Frascino, linux-arm-kernel, devicetree, linux-kernel
Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Russell King
On 23/12/2024 17:20, Vincenzo Frascino wrote:
> The Morello architecture is an experimental extension to Armv8.2-A,
> which extends the AArch64 state with the principles proposed in
> version 7 of the Capability Hardware Enhanced RISC Instructions
> (CHERI) ISA.
>
> Introduce Morello SoC dts.
>
> Note: Morello is at the same time the name of an Architecture [1], an SoC
> [2] and a Board [2].
> To distinguish in between Architecture/SoC and Board we refer to the first
> as arm,morello and to the second as arm,morello-sdp.
>
> [1] https://developer.arm.com/Architectures/Morello
> [2] https://www.morello-project.org/
Drop both above paragraphs, you already said this in previous commit.
This still does not help me (See further questions).
>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Please drop the autogenerated scripts/get_maintainer.pl CC-entries from
commit msg. There is no single need to store automated output of
get_maintainers.pl in the git log. It can be easily re-created at any
given time, thus its presence in the git history is redundant and
obfuscates the log.
If you need it for your own patch management purposes, keep it under the
--- separator.
Or just use b4 and none of these are needed.
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Sudeep Holla <sudeep.holla@arm.com>
> Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
> Cc: Russell King <linux@armlinux.org.uk>
> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
> ---
> arch/arm64/boot/dts/arm/Makefile | 1 +
> arch/arm64/boot/dts/arm/morello-sdp.dts | 116 ++++++++++++++++++++++++
> 2 files changed, 117 insertions(+)
> create mode 100644 arch/arm64/boot/dts/arm/morello-sdp.dts
>
> diff --git a/arch/arm64/boot/dts/arm/Makefile b/arch/arm64/boot/dts/arm/Makefile
> index d908e96d7ddc..869667bef7c0 100644
> --- a/arch/arm64/boot/dts/arm/Makefile
> +++ b/arch/arm64/boot/dts/arm/Makefile
> @@ -7,3 +7,4 @@ dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb
> dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2f-1xv7-ca53x2.dtb
> dtb-$(CONFIG_ARCH_VEXPRESS) += fvp-base-revc.dtb
> dtb-$(CONFIG_ARCH_VEXPRESS) += corstone1000-fvp.dtb corstone1000-mps3.dtb
> +dtb-$(CONFIG_ARCH_VEXPRESS) += morello-sdp.dtb
> diff --git a/arch/arm64/boot/dts/arm/morello-sdp.dts b/arch/arm64/boot/dts/arm/morello-sdp.dts
> new file mode 100644
> index 000000000000..143e644361e4
> --- /dev/null
> +++ b/arch/arm64/boot/dts/arm/morello-sdp.dts
> @@ -0,0 +1,116 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
> +/*
> + * Copyright (c) 2021-2024, Arm Limited. All rights reserved.
> +
> + */
> +
> +/dts-v1/;
> +#include "morello.dtsi"
> +
> +/ {
> + model = "Arm Morello System Development Platform";
> + compatible = "arm,morello-sdp";
> +
> + smmu_dp: iommu@2ce00000 {
Well, this is confusing. Boards are almost never adding things to the
soc node, where this belongs to.
Your commit msg should explain this.
> + compatible = "arm,smmu-v3";
> + reg = <0 0x2ce00000 0 0x40000>;
> + interrupts = <GIC_SPI 76 IRQ_TYPE_EDGE_RISING>,
> + <GIC_SPI 80 IRQ_TYPE_EDGE_RISING>,
> + <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>;
> + interrupt-names = "eventq", "gerror", "cmdq-sync";
> + #iommu-cells = <1>;
> + };
> +
> + dp0: display@2cc00000 {
display/GPU is outside of SoC? Really? Please explain the hardware in
the commit msg.
> + #address-cells = <1>;
> + #size-cells = <0>;
> + compatible = "arm,mali-d32", "arm,mali-d71";
> + reg = <0 0x2cc00000 0 0x20000>;
> + interrupts = <0 69 4>;
> + clocks = <&dpu_aclk>;
> + clock-names = "aclk";
> + iommus = <&smmu_dp 0>, <&smmu_dp 1>, <&smmu_dp 2>, <&smmu_dp 3>,
> + <&smmu_dp 8>;
> +
> + pl0: pipeline@0 {
> + reg = <0>;
> + clocks = <&dpu_pixel_clk>;
> + clock-names = "pxclk";
> + port {
> + dp_pl0_out0: endpoint {
> + remote-endpoint = <&tda998x_0_input>;
> + };
> + };
> + };
> + };
> +
> + i2c@1c0f0000 {
> + compatible = "cdns,i2c-r1p14";
I really doubt that you can package cdns IP block outside of SoC.
> + reg = <0x0 0x1c0f0000 0x0 0x1000>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + clock-frequency = <100000>;
> + interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&dpu_aclk>;
> +
> + hdmi_tx: hdmi-transmitter@70 {
> + compatible = "nxp,tda998x";
> + reg = <0x70>;
> + video-ports = <0x234501>;
> + port {
> + tda998x_0_input: endpoint {
> + remote-endpoint = <&dp_pl0_out0>;
> + };
> + };
> + };
> + };
> +
> + dpu_aclk: dpu_aclk {
Use consistent names
> + /* 77.1 MHz derived from 24 MHz reference clock */
77.1 or 35?
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <350000000>;
> + clock-output-names = "aclk";
aclk? Sounds like something belonging to the clock controller.
> + };
> +
> + dpu_pixel_clk: dpu-pixel-clk {
Same comment
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <148500000>;
> + clock-output-names = "pxclk";
> + };
> +};
> +
> +&gic {
> + reg = <0x0 0x30000000 0 0x10000>, /* GICD */
> + <0x0 0x300c0000 0 0x80000>; /* GICR */
> + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
> +
> + its1: msi-controller@30040000 {
> + compatible = "arm,gic-v3-its";
> + msi-controller;
> + #msi-cells = <1>;
> + reg = <0x0 0x30040000 0x0 0x20000>;
> + };
> +
> + its2: msi-controller@30060000 {
> + compatible = "arm,gic-v3-its";
> + msi-controller;
> + #msi-cells = <1>;
> + reg = <0x0 0x30060000 0x0 0x20000>;
> + };
> +
> + its_ccix: msi-controller@30080000 {
> + compatible = "arm,gic-v3-its";
> + msi-controller;
> + #msi-cells = <1>;
> + reg = <0x0 0x30080000 0x0 0x20000>;
> + };
> +
> + its_pcie: msi-controller@300a0000 {
> + compatible = "arm,gic-v3-its";
> + msi-controller;
> + #msi-cells = <1>;
> + reg = <0x0 0x300a0000 0x0 0x20000>;
> + };
> +};
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 4/4] MAINTAINERS: Add Vincenzo Frascino as Arm Morello Maintainer
2024-12-23 16:20 ` [PATCH v2 4/4] MAINTAINERS: Add Vincenzo Frascino as Arm Morello Maintainer Vincenzo Frascino
@ 2024-12-23 16:43 ` Krzysztof Kozlowski
0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2024-12-23 16:43 UTC (permalink / raw)
To: Vincenzo Frascino, linux-arm-kernel, devicetree, linux-kernel
Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Russell King
On 23/12/2024 17:20, Vincenzo Frascino wrote:
> Cc: Linus Walleij <linus.walleij@linaro.org>
Please run scripts/checkpatch.pl and fix reported warnings. Some
warnings can be ignored, especially from --strict run, but the code here
looks like it needs a fix. Feel free to get in touch if the warning is
not clear.
> Cc: Rob Herring <robh@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Sudeep Holla <sudeep.holla@arm.com>
> Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
> Cc: Russell King <linux@armlinux.org.uk>
> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
> ---
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: arm: Add Morello compatibility
2024-12-23 16:41 ` Vincenzo Frascino
@ 2024-12-24 8:52 ` Krzysztof Kozlowski
0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2024-12-24 8:52 UTC (permalink / raw)
To: Vincenzo Frascino, linux-arm-kernel, devicetree, linux-kernel
Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Russell King
On 23/12/2024 17:41, Vincenzo Frascino wrote:
>
>
> On 23/12/2024 16:32, Krzysztof Kozlowski wrote:
>> On 23/12/2024 17:20, Vincenzo Frascino wrote:
>>> Add compatibility to Arm Morello System Development Platform.
>>>
>>> Note: Morello is at the same time the name of an Architecture [1], an SoC
>>> [2] and a Board [2].
>>> To distinguish in between Architecture/SoC and Board we refer to the first
>>> as arm,morello and to the second as arm,morello-sdp.
>>>
>>> [1] https://developer.arm.com/Architectures/Morello
>>> [2] https://www.morello-project.org/
>>>
>>> Cc: Linus Walleij <linus.walleij@linaro.org>
>>> Cc: Rob Herring <robh@kernel.org>
>>> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
>>> Cc: Conor Dooley <conor+dt@kernel.org>
>>> Cc: Liviu Dudau <liviu.dudau@arm.com>
>>> Cc: Sudeep Holla <sudeep.holla@arm.com>
>>> Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
>>> Cc: Russell King <linux@armlinux.org.uk>
>>> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
>>> ---
>>> Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml | 3 +++
>>> 1 file changed, 3 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml b/Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
>>> index 8dd6b6446394..7934d2c4cba0 100644
>>> --- a/Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
>>> +++ b/Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
>>> @@ -118,6 +118,9 @@ properties:
>>> items:
>>> - const: arm,foundation-aarch64
>>> - const: arm,vexpress
>>> + - description: Arm Morello System Development Platform
>>> + items:
>>> + - const: arm,morello-sdp
>> Also:
>> const: arm,morello
>>
>> Unless you claim that this cannot be used in any other product than SDP,
>> but this then needs explanation in commit msg.
>>
>
> Morello is a Prototype architecture and there are no plans to use it outside of
> SDP hence I did not add arm,morello.
>
> I thought it was clear since the note states that Architecture, SoC and Board
> have the same name, if not, happy do address it in v3.
No, it's not clear because that statement still does not close
possibility of creating "Morello SDP v2" board. You should have two
compatibles, even if there are no plans to add new boards.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2024-12-24 8:52 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-23 16:20 [PATCH v2 0/4] arm64: dts: Add Arm Morello support Vincenzo Frascino
2024-12-23 16:20 ` [PATCH v2 1/4] dt-bindings: arm: Add Morello compatibility Vincenzo Frascino
2024-12-23 16:32 ` Krzysztof Kozlowski
2024-12-23 16:41 ` Vincenzo Frascino
2024-12-24 8:52 ` Krzysztof Kozlowski
2024-12-23 16:20 ` [PATCH v2 2/4] arm64: dts: morello: Add support for common functionalities Vincenzo Frascino
2024-12-23 16:39 ` Krzysztof Kozlowski
2024-12-23 16:20 ` [PATCH v2 3/4] arm64: dts: morello: Add support for soc dts Vincenzo Frascino
2024-12-23 16:43 ` Krzysztof Kozlowski
2024-12-23 16:20 ` [PATCH v2 4/4] MAINTAINERS: Add Vincenzo Frascino as Arm Morello Maintainer Vincenzo Frascino
2024-12-23 16:43 ` Krzysztof Kozlowski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).