All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/7] riscv: add initial support for Canaan Kendryte K230
@ 2024-03-05 20:01 ` Yangyu Chen
  0 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-05 20:01 UTC (permalink / raw)
  To: linux-riscv
  Cc: Conor Dooley, Damien Le Moal, Rob Herring, Krzysztof Kozlowski,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, devicetree,
	linux-kernel, Yangyu Chen

K230 is an ideal chip for RISC-V Vector 1.0 evaluation now. Add initial
support for it to allow more people to participate in building drivers
to mainline for it.

This kernel has been tested upon factory SDK [1] with
k230_evb_only_linux_defconfig and patched mainline opensbi [2] to skip
locked pmp and successfully booted to busybox on initrd with this log [3].

[1] https://github.com/kendryte/k230_sdk
[2] https://github.com/cyyself/opensbi/tree/k230
[3] https://gist.github.com/cyyself/b9445f38cc3ba1094924bd41c9086176

Changes since v4:
- Reword commit message on dts that the B-ext version of c908 is 1.0 rather
  than 1.0-rc1

v4: https://lore.kernel.org/linux-riscv/tencent_587730262984A011834F42D0563BC6B10405@qq.com/

Changes since v3:
- Refactor Kconfig.soc which uses ARCH_CANAAN for regular Canaan SoCs and
  rename SOC_CANAAN to SOC_CANAAN_K210 for K210 in patch [5/7]
- Sort dt-binding stings on Cannan SoCs in alphanumerical order

v3: https://lore.kernel.org/linux-riscv/tencent_BB2364BBF1812F4E304F7BDDD11E57356605@qq.com/

Changes since v2:
- Add MIT License to dts file
- Sort dt-binding stings in alphanumerical order
- Sort filename in dts Makefile in alphanumerical order
- Rename canmv-k230.dts to k230-canmv.dts

v2: https://lore.kernel.org/linux-riscv/tencent_64A9B4B31C2D70D5633042461AC9F80C0509@qq.com/

Changes since v1:
- Patch dt-bindings in clint and plic
- Use enum in K230 compatible dt bindings
- Fix dts to pass `make dtbs_check`
- Add more details in commit message

v1: https://lore.kernel.org/linux-riscv/tencent_E15F8FE0B6769E6338AE690C7F4844A31706@qq.com/

Yangyu Chen (7):
  dt-bindings: riscv: Add T-HEAD C908 compatible
  dt-bindings: add Canaan K230 boards compatible strings
  dt-bindings: timer: Add Canaan K230 CLINT
  dt-bindings: interrupt-controller: Add Canaan K230 PLIC
  riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210
  riscv: dts: add initial canmv-k230 and k230-evb dts
  riscv: config: enable ARCH_CANAAN in defconfig

 .../sifive,plic-1.0.0.yaml                    |   1 +
 .../devicetree/bindings/riscv/canaan.yaml     |   8 +-
 .../devicetree/bindings/riscv/cpus.yaml       |   1 +
 .../bindings/timer/sifive,clint.yaml          |   1 +
 arch/riscv/Kconfig.socs                       |   8 +-
 arch/riscv/Makefile                           |   2 +-
 arch/riscv/boot/dts/canaan/Makefile           |   2 +
 arch/riscv/boot/dts/canaan/k230-canmv.dts     |  24 +++
 arch/riscv/boot/dts/canaan/k230-evb.dts       |  24 +++
 arch/riscv/boot/dts/canaan/k230.dtsi          | 140 ++++++++++++++++++
 arch/riscv/configs/defconfig                  |   1 +
 arch/riscv/configs/nommu_k210_defconfig       |   3 +-
 .../riscv/configs/nommu_k210_sdcard_defconfig |   3 +-
 drivers/clk/Kconfig                           |   4 +-
 drivers/pinctrl/Kconfig                       |   4 +-
 drivers/reset/Kconfig                         |   4 +-
 drivers/soc/Makefile                          |   2 +-
 drivers/soc/canaan/Kconfig                    |   4 +-
 18 files changed, 220 insertions(+), 16 deletions(-)
 create mode 100644 arch/riscv/boot/dts/canaan/k230-canmv.dts
 create mode 100644 arch/riscv/boot/dts/canaan/k230-evb.dts
 create mode 100644 arch/riscv/boot/dts/canaan/k230.dtsi

-- 
2.43.0


^ permalink raw reply	[flat|nested] 36+ messages in thread

* [PATCH v5 0/7] riscv: add initial support for Canaan Kendryte K230
@ 2024-03-05 20:01 ` Yangyu Chen
  0 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-05 20:01 UTC (permalink / raw)
  To: linux-riscv
  Cc: Conor Dooley, Damien Le Moal, Rob Herring, Krzysztof Kozlowski,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, devicetree,
	linux-kernel, Yangyu Chen

K230 is an ideal chip for RISC-V Vector 1.0 evaluation now. Add initial
support for it to allow more people to participate in building drivers
to mainline for it.

This kernel has been tested upon factory SDK [1] with
k230_evb_only_linux_defconfig and patched mainline opensbi [2] to skip
locked pmp and successfully booted to busybox on initrd with this log [3].

[1] https://github.com/kendryte/k230_sdk
[2] https://github.com/cyyself/opensbi/tree/k230
[3] https://gist.github.com/cyyself/b9445f38cc3ba1094924bd41c9086176

Changes since v4:
- Reword commit message on dts that the B-ext version of c908 is 1.0 rather
  than 1.0-rc1

v4: https://lore.kernel.org/linux-riscv/tencent_587730262984A011834F42D0563BC6B10405@qq.com/

Changes since v3:
- Refactor Kconfig.soc which uses ARCH_CANAAN for regular Canaan SoCs and
  rename SOC_CANAAN to SOC_CANAAN_K210 for K210 in patch [5/7]
- Sort dt-binding stings on Cannan SoCs in alphanumerical order

v3: https://lore.kernel.org/linux-riscv/tencent_BB2364BBF1812F4E304F7BDDD11E57356605@qq.com/

Changes since v2:
- Add MIT License to dts file
- Sort dt-binding stings in alphanumerical order
- Sort filename in dts Makefile in alphanumerical order
- Rename canmv-k230.dts to k230-canmv.dts

v2: https://lore.kernel.org/linux-riscv/tencent_64A9B4B31C2D70D5633042461AC9F80C0509@qq.com/

Changes since v1:
- Patch dt-bindings in clint and plic
- Use enum in K230 compatible dt bindings
- Fix dts to pass `make dtbs_check`
- Add more details in commit message

v1: https://lore.kernel.org/linux-riscv/tencent_E15F8FE0B6769E6338AE690C7F4844A31706@qq.com/

Yangyu Chen (7):
  dt-bindings: riscv: Add T-HEAD C908 compatible
  dt-bindings: add Canaan K230 boards compatible strings
  dt-bindings: timer: Add Canaan K230 CLINT
  dt-bindings: interrupt-controller: Add Canaan K230 PLIC
  riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210
  riscv: dts: add initial canmv-k230 and k230-evb dts
  riscv: config: enable ARCH_CANAAN in defconfig

 .../sifive,plic-1.0.0.yaml                    |   1 +
 .../devicetree/bindings/riscv/canaan.yaml     |   8 +-
 .../devicetree/bindings/riscv/cpus.yaml       |   1 +
 .../bindings/timer/sifive,clint.yaml          |   1 +
 arch/riscv/Kconfig.socs                       |   8 +-
 arch/riscv/Makefile                           |   2 +-
 arch/riscv/boot/dts/canaan/Makefile           |   2 +
 arch/riscv/boot/dts/canaan/k230-canmv.dts     |  24 +++
 arch/riscv/boot/dts/canaan/k230-evb.dts       |  24 +++
 arch/riscv/boot/dts/canaan/k230.dtsi          | 140 ++++++++++++++++++
 arch/riscv/configs/defconfig                  |   1 +
 arch/riscv/configs/nommu_k210_defconfig       |   3 +-
 .../riscv/configs/nommu_k210_sdcard_defconfig |   3 +-
 drivers/clk/Kconfig                           |   4 +-
 drivers/pinctrl/Kconfig                       |   4 +-
 drivers/reset/Kconfig                         |   4 +-
 drivers/soc/Makefile                          |   2 +-
 drivers/soc/canaan/Kconfig                    |   4 +-
 18 files changed, 220 insertions(+), 16 deletions(-)
 create mode 100644 arch/riscv/boot/dts/canaan/k230-canmv.dts
 create mode 100644 arch/riscv/boot/dts/canaan/k230-evb.dts
 create mode 100644 arch/riscv/boot/dts/canaan/k230.dtsi

-- 
2.43.0


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 36+ messages in thread

* [PATCH v5 1/7] dt-bindings: riscv: Add T-HEAD C908 compatible
  2024-03-05 20:01 ` Yangyu Chen
@ 2024-03-05 20:02   ` Yangyu Chen
  -1 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-05 20:02 UTC (permalink / raw)
  To: linux-riscv
  Cc: Conor Dooley, Damien Le Moal, Rob Herring, Krzysztof Kozlowski,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, devicetree,
	linux-kernel, Yangyu Chen, Conor Dooley

The thead,c908 is a RISC-V CPU core from T-HEAD Semiconductor which used
in Canaan Kendryte K230 SoC.

Signed-off-by: Yangyu Chen <cyy@cyyself.name>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
---
 Documentation/devicetree/bindings/riscv/cpus.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/riscv/cpus.yaml b/Documentation/devicetree/bindings/riscv/cpus.yaml
index 9d8670c00e3b..e853a7fcee8a 100644
--- a/Documentation/devicetree/bindings/riscv/cpus.yaml
+++ b/Documentation/devicetree/bindings/riscv/cpus.yaml
@@ -47,6 +47,7 @@ properties:
               - sifive,u74
               - sifive,u74-mc
               - thead,c906
+              - thead,c908
               - thead,c910
               - thead,c920
           - const: riscv
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v5 1/7] dt-bindings: riscv: Add T-HEAD C908 compatible
@ 2024-03-05 20:02   ` Yangyu Chen
  0 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-05 20:02 UTC (permalink / raw)
  To: linux-riscv
  Cc: Conor Dooley, Damien Le Moal, Rob Herring, Krzysztof Kozlowski,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, devicetree,
	linux-kernel, Yangyu Chen, Conor Dooley

The thead,c908 is a RISC-V CPU core from T-HEAD Semiconductor which used
in Canaan Kendryte K230 SoC.

Signed-off-by: Yangyu Chen <cyy@cyyself.name>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
---
 Documentation/devicetree/bindings/riscv/cpus.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/riscv/cpus.yaml b/Documentation/devicetree/bindings/riscv/cpus.yaml
index 9d8670c00e3b..e853a7fcee8a 100644
--- a/Documentation/devicetree/bindings/riscv/cpus.yaml
+++ b/Documentation/devicetree/bindings/riscv/cpus.yaml
@@ -47,6 +47,7 @@ properties:
               - sifive,u74
               - sifive,u74-mc
               - thead,c906
+              - thead,c908
               - thead,c910
               - thead,c920
           - const: riscv
-- 
2.43.0


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v5 2/7] dt-bindings: add Canaan K230 boards compatible strings
  2024-03-05 20:01 ` Yangyu Chen
@ 2024-03-05 20:02   ` Yangyu Chen
  -1 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-05 20:02 UTC (permalink / raw)
  To: linux-riscv
  Cc: Conor Dooley, Damien Le Moal, Rob Herring, Krzysztof Kozlowski,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, devicetree,
	linux-kernel, Yangyu Chen, Krzysztof Kozlowski

Since K230 was released, K210 is no longer the only SoC in the Kendryte
series, so remove the K210 string from the description. Also, add two
boards based on k230 to compatible strings to allow them to be used in the
dt.

Signed-off-by: Yangyu Chen <cyy@cyyself.name>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
---
 Documentation/devicetree/bindings/riscv/canaan.yaml | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/riscv/canaan.yaml b/Documentation/devicetree/bindings/riscv/canaan.yaml
index 41fd11f70a49..f9854ff43ac6 100644
--- a/Documentation/devicetree/bindings/riscv/canaan.yaml
+++ b/Documentation/devicetree/bindings/riscv/canaan.yaml
@@ -10,7 +10,7 @@ maintainers:
   - Damien Le Moal <dlemoal@kernel.org>
 
 description:
-  Canaan Kendryte K210 SoC-based boards
+  Canaan Kendryte SoC-based boards
 
 properties:
   $nodename:
@@ -42,6 +42,12 @@ properties:
       - items:
           - const: canaan,kendryte-k210
 
+      - items:
+          - enum:
+              - canaan,canmv-k230
+              - canaan,k230-usip-lp3-evb
+          - const: canaan,kendryte-k230
+
 additionalProperties: true
 
 ...
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v5 2/7] dt-bindings: add Canaan K230 boards compatible strings
@ 2024-03-05 20:02   ` Yangyu Chen
  0 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-05 20:02 UTC (permalink / raw)
  To: linux-riscv
  Cc: Conor Dooley, Damien Le Moal, Rob Herring, Krzysztof Kozlowski,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, devicetree,
	linux-kernel, Yangyu Chen, Krzysztof Kozlowski

Since K230 was released, K210 is no longer the only SoC in the Kendryte
series, so remove the K210 string from the description. Also, add two
boards based on k230 to compatible strings to allow them to be used in the
dt.

Signed-off-by: Yangyu Chen <cyy@cyyself.name>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
---
 Documentation/devicetree/bindings/riscv/canaan.yaml | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/riscv/canaan.yaml b/Documentation/devicetree/bindings/riscv/canaan.yaml
index 41fd11f70a49..f9854ff43ac6 100644
--- a/Documentation/devicetree/bindings/riscv/canaan.yaml
+++ b/Documentation/devicetree/bindings/riscv/canaan.yaml
@@ -10,7 +10,7 @@ maintainers:
   - Damien Le Moal <dlemoal@kernel.org>
 
 description:
-  Canaan Kendryte K210 SoC-based boards
+  Canaan Kendryte SoC-based boards
 
 properties:
   $nodename:
@@ -42,6 +42,12 @@ properties:
       - items:
           - const: canaan,kendryte-k210
 
+      - items:
+          - enum:
+              - canaan,canmv-k230
+              - canaan,k230-usip-lp3-evb
+          - const: canaan,kendryte-k230
+
 additionalProperties: true
 
 ...
-- 
2.43.0


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v5 3/7] dt-bindings: timer: Add Canaan K230 CLINT
  2024-03-05 20:01 ` Yangyu Chen
@ 2024-03-05 20:02   ` Yangyu Chen
  -1 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-05 20:02 UTC (permalink / raw)
  To: linux-riscv
  Cc: Conor Dooley, Damien Le Moal, Rob Herring, Krzysztof Kozlowski,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, devicetree,
	linux-kernel, Yangyu Chen, Rob Herring

Add compatible string for Canaan K230 CLINT.

Signed-off-by: Yangyu Chen <cyy@cyyself.name>
Acked-by: Rob Herring <robh@kernel.org>
---
 Documentation/devicetree/bindings/timer/sifive,clint.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/timer/sifive,clint.yaml b/Documentation/devicetree/bindings/timer/sifive,clint.yaml
index fced6f2d8ecb..06c67f20ad3c 100644
--- a/Documentation/devicetree/bindings/timer/sifive,clint.yaml
+++ b/Documentation/devicetree/bindings/timer/sifive,clint.yaml
@@ -38,6 +38,7 @@ properties:
       - items:
           - enum:
               - allwinner,sun20i-d1-clint
+              - canaan,k230-clint
               - sophgo,cv1800b-clint
               - sophgo,cv1812h-clint
               - thead,th1520-clint
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v5 3/7] dt-bindings: timer: Add Canaan K230 CLINT
@ 2024-03-05 20:02   ` Yangyu Chen
  0 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-05 20:02 UTC (permalink / raw)
  To: linux-riscv
  Cc: Conor Dooley, Damien Le Moal, Rob Herring, Krzysztof Kozlowski,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, devicetree,
	linux-kernel, Yangyu Chen, Rob Herring

Add compatible string for Canaan K230 CLINT.

Signed-off-by: Yangyu Chen <cyy@cyyself.name>
Acked-by: Rob Herring <robh@kernel.org>
---
 Documentation/devicetree/bindings/timer/sifive,clint.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/timer/sifive,clint.yaml b/Documentation/devicetree/bindings/timer/sifive,clint.yaml
index fced6f2d8ecb..06c67f20ad3c 100644
--- a/Documentation/devicetree/bindings/timer/sifive,clint.yaml
+++ b/Documentation/devicetree/bindings/timer/sifive,clint.yaml
@@ -38,6 +38,7 @@ properties:
       - items:
           - enum:
               - allwinner,sun20i-d1-clint
+              - canaan,k230-clint
               - sophgo,cv1800b-clint
               - sophgo,cv1812h-clint
               - thead,th1520-clint
-- 
2.43.0


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v5 4/7] dt-bindings: interrupt-controller: Add Canaan K230 PLIC
  2024-03-05 20:01 ` Yangyu Chen
@ 2024-03-05 20:02   ` Yangyu Chen
  -1 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-05 20:02 UTC (permalink / raw)
  To: linux-riscv
  Cc: Conor Dooley, Damien Le Moal, Rob Herring, Krzysztof Kozlowski,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, devicetree,
	linux-kernel, Yangyu Chen, Rob Herring

Add compatible string for Canaan K230 PLIC.

Signed-off-by: Yangyu Chen <cyy@cyyself.name>
Acked-by: Rob Herring <robh@kernel.org>
---
 .../bindings/interrupt-controller/sifive,plic-1.0.0.yaml         | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml b/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml
index 709b2211276b..122f9b7b3f52 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml
@@ -65,6 +65,7 @@ properties:
       - items:
           - enum:
               - allwinner,sun20i-d1-plic
+              - canaan,k230-plic
               - sophgo,cv1800b-plic
               - sophgo,cv1812h-plic
               - sophgo,sg2042-plic
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v5 4/7] dt-bindings: interrupt-controller: Add Canaan K230 PLIC
@ 2024-03-05 20:02   ` Yangyu Chen
  0 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-05 20:02 UTC (permalink / raw)
  To: linux-riscv
  Cc: Conor Dooley, Damien Le Moal, Rob Herring, Krzysztof Kozlowski,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, devicetree,
	linux-kernel, Yangyu Chen, Rob Herring

Add compatible string for Canaan K230 PLIC.

Signed-off-by: Yangyu Chen <cyy@cyyself.name>
Acked-by: Rob Herring <robh@kernel.org>
---
 .../bindings/interrupt-controller/sifive,plic-1.0.0.yaml         | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml b/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml
index 709b2211276b..122f9b7b3f52 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml
@@ -65,6 +65,7 @@ properties:
       - items:
           - enum:
               - allwinner,sun20i-d1-plic
+              - canaan,k230-plic
               - sophgo,cv1800b-plic
               - sophgo,cv1812h-plic
               - sophgo,sg2042-plic
-- 
2.43.0


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v5 5/7] riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210
  2024-03-05 20:01 ` Yangyu Chen
@ 2024-03-05 20:03   ` Yangyu Chen
  -1 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-05 20:03 UTC (permalink / raw)
  To: linux-riscv
  Cc: Conor Dooley, Damien Le Moal, Rob Herring, Krzysztof Kozlowski,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, devicetree,
	linux-kernel, Yangyu Chen

Since we have Canaan Kendryte K230 with MMU now. The use of SOC_CANAAN
is no longer only referred to K210. Split them and add _K210 suffix
to the name for old SOC_CANAAN. And allows ARCH_CANAAN to be selected
for other Canaan SoCs.

Signed-off-by: Yangyu Chen <cyy@cyyself.name>
---
 arch/riscv/Kconfig.socs                        | 8 +++++---
 arch/riscv/Makefile                            | 2 +-
 arch/riscv/configs/nommu_k210_defconfig        | 3 ++-
 arch/riscv/configs/nommu_k210_sdcard_defconfig | 3 ++-
 drivers/clk/Kconfig                            | 4 ++--
 drivers/pinctrl/Kconfig                        | 4 ++--
 drivers/reset/Kconfig                          | 4 ++--
 drivers/soc/Makefile                           | 2 +-
 drivers/soc/canaan/Kconfig                     | 4 ++--
 9 files changed, 19 insertions(+), 15 deletions(-)

diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs
index 623de5f8a208..5710aee456ac 100644
--- a/arch/riscv/Kconfig.socs
+++ b/arch/riscv/Kconfig.socs
@@ -72,11 +72,13 @@ config SOC_VIRT
 	  This enables support for QEMU Virt Machine.
 
 config ARCH_CANAAN
-	def_bool SOC_CANAAN
+	bool "Canaan Kendryte SoC"
+	help
+	  This enables support for Canaan Kendryte SoC platform hardware.
 
-config SOC_CANAAN
+config SOC_CANAAN_K210
 	bool "Canaan Kendryte K210 SoC"
-	depends on !MMU
+	depends on !MMU && ARCH_CANAAN
 	select CLINT_TIMER if RISCV_M_MODE
 	select ARCH_HAS_RESET_CONTROLLER
 	select PINCTRL
diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
index 252d63942f34..fa6c389c3986 100644
--- a/arch/riscv/Makefile
+++ b/arch/riscv/Makefile
@@ -154,7 +154,7 @@ vdso-install-y			+= arch/riscv/kernel/vdso/vdso.so.dbg
 vdso-install-$(CONFIG_COMPAT)	+= arch/riscv/kernel/compat_vdso/compat_vdso.so.dbg:../compat_vdso/compat_vdso.so
 
 ifneq ($(CONFIG_XIP_KERNEL),y)
-ifeq ($(CONFIG_RISCV_M_MODE)$(CONFIG_ARCH_CANAAN),yy)
+ifeq ($(CONFIG_RISCV_M_MODE)$(CONFIG_SOC_CANAAN_K210),yy)
 KBUILD_IMAGE := $(boot)/loader.bin
 else
 ifeq ($(CONFIG_EFI_ZBOOT),)
diff --git a/arch/riscv/configs/nommu_k210_defconfig b/arch/riscv/configs/nommu_k210_defconfig
index 7e75200543f4..2552e78074a3 100644
--- a/arch/riscv/configs/nommu_k210_defconfig
+++ b/arch/riscv/configs/nommu_k210_defconfig
@@ -27,7 +27,8 @@ CONFIG_EXPERT=y
 CONFIG_SLUB=y
 CONFIG_SLUB_TINY=y
 # CONFIG_MMU is not set
-CONFIG_SOC_CANAAN=y
+CONFIG_ARCH_CANAAN=y
+CONFIG_SOC_CANAAN_K210=y
 CONFIG_NONPORTABLE=y
 CONFIG_SMP=y
 CONFIG_NR_CPUS=2
diff --git a/arch/riscv/configs/nommu_k210_sdcard_defconfig b/arch/riscv/configs/nommu_k210_sdcard_defconfig
index 0ba353e9ca71..8f67fb830585 100644
--- a/arch/riscv/configs/nommu_k210_sdcard_defconfig
+++ b/arch/riscv/configs/nommu_k210_sdcard_defconfig
@@ -19,7 +19,8 @@ CONFIG_EXPERT=y
 CONFIG_SLUB=y
 CONFIG_SLUB_TINY=y
 # CONFIG_MMU is not set
-CONFIG_SOC_CANAAN=y
+CONFIG_ARCH_CANAAN=y
+CONFIG_SOC_CANAAN_K210=y
 CONFIG_NONPORTABLE=y
 CONFIG_SMP=y
 CONFIG_NR_CPUS=2
diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig
index 50af5fc7f570..7517a0dfd15c 100644
--- a/drivers/clk/Kconfig
+++ b/drivers/clk/Kconfig
@@ -451,8 +451,8 @@ config COMMON_CLK_FIXED_MMIO
 
 config COMMON_CLK_K210
 	bool "Clock driver for the Canaan Kendryte K210 SoC"
-	depends on OF && RISCV && SOC_CANAAN
-	default SOC_CANAAN
+	depends on OF && RISCV && SOC_CANAAN_K210
+	default SOC_CANAAN_K210
 	help
 	  Support for the Canaan Kendryte K210 RISC-V SoC clocks.
 
diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
index 8163a5983166..837b3bac8aac 100644
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -217,13 +217,13 @@ config PINCTRL_INGENIC
 
 config PINCTRL_K210
 	bool "Pinctrl driver for the Canaan Kendryte K210 SoC"
-	depends on RISCV && SOC_CANAAN && OF
+	depends on RISCV && SOC_CANAAN_K210 && OF
 	select GENERIC_PINMUX_FUNCTIONS
 	select GENERIC_PINCONF
 	select GPIOLIB
 	select OF_GPIO
 	select REGMAP_MMIO
-	default SOC_CANAAN
+	default SOC_CANAAN_K210
 	help
 	  Add support for the Canaan Kendryte K210 RISC-V SOC Field
 	  Programmable IO Array (FPIOA) controller.
diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig
index ccd59ddd7610..6499da7ecc3b 100644
--- a/drivers/reset/Kconfig
+++ b/drivers/reset/Kconfig
@@ -94,9 +94,9 @@ config RESET_INTEL_GW
 
 config RESET_K210
 	bool "Reset controller driver for Canaan Kendryte K210 SoC"
-	depends on (SOC_CANAAN || COMPILE_TEST) && OF
+	depends on (SOC_CANAAN_K210 || COMPILE_TEST) && OF
 	select MFD_SYSCON
-	default SOC_CANAAN
+	default SOC_CANAAN_K210
 	help
 	  Support for the Canaan Kendryte K210 RISC-V SoC reset controller.
 	  Say Y if you want to control reset signals provided by this
diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile
index ba8f5b5460e1..fb2bd31387d0 100644
--- a/drivers/soc/Makefile
+++ b/drivers/soc/Makefile
@@ -7,7 +7,7 @@ obj-y				+= apple/
 obj-y				+= aspeed/
 obj-$(CONFIG_ARCH_AT91)		+= atmel/
 obj-y				+= bcm/
-obj-$(CONFIG_SOC_CANAAN)	+= canaan/
+obj-$(CONFIG_ARCH_CANAAN)	+= canaan/
 obj-$(CONFIG_ARCH_DOVE)		+= dove/
 obj-$(CONFIG_MACH_DOVE)		+= dove/
 obj-y				+= fsl/
diff --git a/drivers/soc/canaan/Kconfig b/drivers/soc/canaan/Kconfig
index 43ced2bf8444..3121d351fea6 100644
--- a/drivers/soc/canaan/Kconfig
+++ b/drivers/soc/canaan/Kconfig
@@ -2,9 +2,9 @@
 
 config SOC_K210_SYSCTL
 	bool "Canaan Kendryte K210 SoC system controller"
-	depends on RISCV && SOC_CANAAN && OF
+	depends on RISCV && SOC_CANAAN_K210 && OF
 	depends on COMMON_CLK_K210
-	default SOC_CANAAN
+	default SOC_CANAAN_K210
 	select PM
 	select MFD_SYSCON
 	help
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v5 5/7] riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210
@ 2024-03-05 20:03   ` Yangyu Chen
  0 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-05 20:03 UTC (permalink / raw)
  To: linux-riscv
  Cc: Conor Dooley, Damien Le Moal, Rob Herring, Krzysztof Kozlowski,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, devicetree,
	linux-kernel, Yangyu Chen

Since we have Canaan Kendryte K230 with MMU now. The use of SOC_CANAAN
is no longer only referred to K210. Split them and add _K210 suffix
to the name for old SOC_CANAAN. And allows ARCH_CANAAN to be selected
for other Canaan SoCs.

Signed-off-by: Yangyu Chen <cyy@cyyself.name>
---
 arch/riscv/Kconfig.socs                        | 8 +++++---
 arch/riscv/Makefile                            | 2 +-
 arch/riscv/configs/nommu_k210_defconfig        | 3 ++-
 arch/riscv/configs/nommu_k210_sdcard_defconfig | 3 ++-
 drivers/clk/Kconfig                            | 4 ++--
 drivers/pinctrl/Kconfig                        | 4 ++--
 drivers/reset/Kconfig                          | 4 ++--
 drivers/soc/Makefile                           | 2 +-
 drivers/soc/canaan/Kconfig                     | 4 ++--
 9 files changed, 19 insertions(+), 15 deletions(-)

diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs
index 623de5f8a208..5710aee456ac 100644
--- a/arch/riscv/Kconfig.socs
+++ b/arch/riscv/Kconfig.socs
@@ -72,11 +72,13 @@ config SOC_VIRT
 	  This enables support for QEMU Virt Machine.
 
 config ARCH_CANAAN
-	def_bool SOC_CANAAN
+	bool "Canaan Kendryte SoC"
+	help
+	  This enables support for Canaan Kendryte SoC platform hardware.
 
-config SOC_CANAAN
+config SOC_CANAAN_K210
 	bool "Canaan Kendryte K210 SoC"
-	depends on !MMU
+	depends on !MMU && ARCH_CANAAN
 	select CLINT_TIMER if RISCV_M_MODE
 	select ARCH_HAS_RESET_CONTROLLER
 	select PINCTRL
diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
index 252d63942f34..fa6c389c3986 100644
--- a/arch/riscv/Makefile
+++ b/arch/riscv/Makefile
@@ -154,7 +154,7 @@ vdso-install-y			+= arch/riscv/kernel/vdso/vdso.so.dbg
 vdso-install-$(CONFIG_COMPAT)	+= arch/riscv/kernel/compat_vdso/compat_vdso.so.dbg:../compat_vdso/compat_vdso.so
 
 ifneq ($(CONFIG_XIP_KERNEL),y)
-ifeq ($(CONFIG_RISCV_M_MODE)$(CONFIG_ARCH_CANAAN),yy)
+ifeq ($(CONFIG_RISCV_M_MODE)$(CONFIG_SOC_CANAAN_K210),yy)
 KBUILD_IMAGE := $(boot)/loader.bin
 else
 ifeq ($(CONFIG_EFI_ZBOOT),)
diff --git a/arch/riscv/configs/nommu_k210_defconfig b/arch/riscv/configs/nommu_k210_defconfig
index 7e75200543f4..2552e78074a3 100644
--- a/arch/riscv/configs/nommu_k210_defconfig
+++ b/arch/riscv/configs/nommu_k210_defconfig
@@ -27,7 +27,8 @@ CONFIG_EXPERT=y
 CONFIG_SLUB=y
 CONFIG_SLUB_TINY=y
 # CONFIG_MMU is not set
-CONFIG_SOC_CANAAN=y
+CONFIG_ARCH_CANAAN=y
+CONFIG_SOC_CANAAN_K210=y
 CONFIG_NONPORTABLE=y
 CONFIG_SMP=y
 CONFIG_NR_CPUS=2
diff --git a/arch/riscv/configs/nommu_k210_sdcard_defconfig b/arch/riscv/configs/nommu_k210_sdcard_defconfig
index 0ba353e9ca71..8f67fb830585 100644
--- a/arch/riscv/configs/nommu_k210_sdcard_defconfig
+++ b/arch/riscv/configs/nommu_k210_sdcard_defconfig
@@ -19,7 +19,8 @@ CONFIG_EXPERT=y
 CONFIG_SLUB=y
 CONFIG_SLUB_TINY=y
 # CONFIG_MMU is not set
-CONFIG_SOC_CANAAN=y
+CONFIG_ARCH_CANAAN=y
+CONFIG_SOC_CANAAN_K210=y
 CONFIG_NONPORTABLE=y
 CONFIG_SMP=y
 CONFIG_NR_CPUS=2
diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig
index 50af5fc7f570..7517a0dfd15c 100644
--- a/drivers/clk/Kconfig
+++ b/drivers/clk/Kconfig
@@ -451,8 +451,8 @@ config COMMON_CLK_FIXED_MMIO
 
 config COMMON_CLK_K210
 	bool "Clock driver for the Canaan Kendryte K210 SoC"
-	depends on OF && RISCV && SOC_CANAAN
-	default SOC_CANAAN
+	depends on OF && RISCV && SOC_CANAAN_K210
+	default SOC_CANAAN_K210
 	help
 	  Support for the Canaan Kendryte K210 RISC-V SoC clocks.
 
diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
index 8163a5983166..837b3bac8aac 100644
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -217,13 +217,13 @@ config PINCTRL_INGENIC
 
 config PINCTRL_K210
 	bool "Pinctrl driver for the Canaan Kendryte K210 SoC"
-	depends on RISCV && SOC_CANAAN && OF
+	depends on RISCV && SOC_CANAAN_K210 && OF
 	select GENERIC_PINMUX_FUNCTIONS
 	select GENERIC_PINCONF
 	select GPIOLIB
 	select OF_GPIO
 	select REGMAP_MMIO
-	default SOC_CANAAN
+	default SOC_CANAAN_K210
 	help
 	  Add support for the Canaan Kendryte K210 RISC-V SOC Field
 	  Programmable IO Array (FPIOA) controller.
diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig
index ccd59ddd7610..6499da7ecc3b 100644
--- a/drivers/reset/Kconfig
+++ b/drivers/reset/Kconfig
@@ -94,9 +94,9 @@ config RESET_INTEL_GW
 
 config RESET_K210
 	bool "Reset controller driver for Canaan Kendryte K210 SoC"
-	depends on (SOC_CANAAN || COMPILE_TEST) && OF
+	depends on (SOC_CANAAN_K210 || COMPILE_TEST) && OF
 	select MFD_SYSCON
-	default SOC_CANAAN
+	default SOC_CANAAN_K210
 	help
 	  Support for the Canaan Kendryte K210 RISC-V SoC reset controller.
 	  Say Y if you want to control reset signals provided by this
diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile
index ba8f5b5460e1..fb2bd31387d0 100644
--- a/drivers/soc/Makefile
+++ b/drivers/soc/Makefile
@@ -7,7 +7,7 @@ obj-y				+= apple/
 obj-y				+= aspeed/
 obj-$(CONFIG_ARCH_AT91)		+= atmel/
 obj-y				+= bcm/
-obj-$(CONFIG_SOC_CANAAN)	+= canaan/
+obj-$(CONFIG_ARCH_CANAAN)	+= canaan/
 obj-$(CONFIG_ARCH_DOVE)		+= dove/
 obj-$(CONFIG_MACH_DOVE)		+= dove/
 obj-y				+= fsl/
diff --git a/drivers/soc/canaan/Kconfig b/drivers/soc/canaan/Kconfig
index 43ced2bf8444..3121d351fea6 100644
--- a/drivers/soc/canaan/Kconfig
+++ b/drivers/soc/canaan/Kconfig
@@ -2,9 +2,9 @@
 
 config SOC_K210_SYSCTL
 	bool "Canaan Kendryte K210 SoC system controller"
-	depends on RISCV && SOC_CANAAN && OF
+	depends on RISCV && SOC_CANAAN_K210 && OF
 	depends on COMMON_CLK_K210
-	default SOC_CANAAN
+	default SOC_CANAAN_K210
 	select PM
 	select MFD_SYSCON
 	help
-- 
2.43.0


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v5 6/7] riscv: dts: add initial canmv-k230 and k230-evb dts
  2024-03-05 20:01 ` Yangyu Chen
@ 2024-03-05 20:03   ` Yangyu Chen
  -1 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-05 20:03 UTC (permalink / raw)
  To: linux-riscv
  Cc: Conor Dooley, Damien Le Moal, Rob Herring, Krzysztof Kozlowski,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, devicetree,
	linux-kernel, Yangyu Chen

Add initial dts for CanMV-K230 and K230-EVB powered by Canaan Kendryte
K230 SoC [1].

Some key consideration:
- Only place BigCore which is 1.6GHz RV64GCBV

The existence of cache coherence between the two cores remains unknown
since they have dedicated L2 caches. And the factory SDK uses it for
other OS by default. I don't know whether the two CPUs on K230 SoC
can be used in one system. So only place BigCore here.

Meanwhile, although docs from Canaan said 1.6GHz Core with Vector is
CPU1, the csr.mhartid of this core is 0.

- Support for "zba" "zbb" "zbc" "zbs" are tested by hand

The user manual of C908 from T-Head does not document it specifically.
It just said it supports B extension V1.0. [2]

I have tested it by using this [3] which attempts to execute "add.uw",
"andn", "clmulr", "bclr" and they doesn't traps on K230. But on JH7110,
"clmulr" and "bclr" will trap.

- Support for "zicbom" is tested by hand

Have tested with some out-of-tree drivers from [4] that need DMA and they
do not come to the dts currently.

- Cache parameters are inferred from T-Head docs [2] and Canaan docs [1]

L1i: 32KB, VIPT 4-Way set-associative, 64B Cacheline
L1d: 32KB, VIPT 4-Way set-associative, 64B Cacheline
L2: 256KB, PIPT 16-way set-associative, 64B Cacheline

The numbers of cache sets are calculated from these parameters.

- MMU only supports Sv39

Since T-Head docs [2] say C908 should support Sv48. However, it will fail
during the kernel probe when running Linux on K230. I also tested it by
hand on M-Mode software, writing Sv48 to satp.mode will not trap but will
leave the csr unchanged. While writing Sv39 it will take effect. It shows
that this CPU does not support Sv48.

- Svpbmt and T-Head MAEE both supported

T-Head C908 does support both Svpbmt and T-Head MAEE for page-based memory
attributes and is controlled by csr.mxstatus. If the kernel wants to use
svpbmt, the m-mode software should set BIT(21) of csr.mxstatus to zero
before entering the s-mode kernel. Otherwise, the kernel will not boot as 0
on T-Head MAEE represent to NonCachable Memory and it will lose dirty cache
lines modification that haven't been written back to the memory.

[1] https://developer.canaan-creative.com/k230/dev/zh/00_hardware/K230_datasheet.html#chapter-1-introduction
[2] https://occ-intl-prod.oss-ap-southeast-1.aliyuncs.com/resource//1699268369347/XuanTie-C908-UserManual.pdf
[3] https://github.com/cyyself/rvb_test
[4] https://github.com/cyyself/linux/tree/k230-mainline

Signed-off-by: Yangyu Chen <cyy@cyyself.name>
---
 arch/riscv/boot/dts/canaan/Makefile       |   2 +
 arch/riscv/boot/dts/canaan/k230-canmv.dts |  24 ++++
 arch/riscv/boot/dts/canaan/k230-evb.dts   |  24 ++++
 arch/riscv/boot/dts/canaan/k230.dtsi      | 140 ++++++++++++++++++++++
 4 files changed, 190 insertions(+)
 create mode 100644 arch/riscv/boot/dts/canaan/k230-canmv.dts
 create mode 100644 arch/riscv/boot/dts/canaan/k230-evb.dts
 create mode 100644 arch/riscv/boot/dts/canaan/k230.dtsi

diff --git a/arch/riscv/boot/dts/canaan/Makefile b/arch/riscv/boot/dts/canaan/Makefile
index 987d1f0c41f0..7d54ea5c6f3d 100644
--- a/arch/riscv/boot/dts/canaan/Makefile
+++ b/arch/riscv/boot/dts/canaan/Makefile
@@ -1,6 +1,8 @@
 # SPDX-License-Identifier: GPL-2.0
 dtb-$(CONFIG_ARCH_CANAAN) += canaan_kd233.dtb
 dtb-$(CONFIG_ARCH_CANAAN) += k210_generic.dtb
+dtb-$(CONFIG_ARCH_CANAAN) += k230-canmv.dtb
+dtb-$(CONFIG_ARCH_CANAAN) += k230-evb.dtb
 dtb-$(CONFIG_ARCH_CANAAN) += sipeed_maix_bit.dtb
 dtb-$(CONFIG_ARCH_CANAAN) += sipeed_maix_dock.dtb
 dtb-$(CONFIG_ARCH_CANAAN) += sipeed_maix_go.dtb
diff --git a/arch/riscv/boot/dts/canaan/k230-canmv.dts b/arch/riscv/boot/dts/canaan/k230-canmv.dts
new file mode 100644
index 000000000000..3ab5c8de11a8
--- /dev/null
+++ b/arch/riscv/boot/dts/canaan/k230-canmv.dts
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
+ */
+
+#include "k230.dtsi"
+
+/ {
+	model = "Canaan CanMV-K230";
+	compatible = "canaan,canmv-k230", "canaan,kendryte-k230";
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	ddr: memory@0 {
+		device_type = "memory";
+		reg = <0x0 0x0 0x0 0x1fdff000>;
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
diff --git a/arch/riscv/boot/dts/canaan/k230-evb.dts b/arch/riscv/boot/dts/canaan/k230-evb.dts
new file mode 100644
index 000000000000..42720113c566
--- /dev/null
+++ b/arch/riscv/boot/dts/canaan/k230-evb.dts
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
+ */
+
+#include "k230.dtsi"
+
+/ {
+	model = "Kendryte K230 EVB";
+	compatible = "canaan,k230-usip-lp3-evb", "canaan,kendryte-k230";
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	ddr: memory@0 {
+		device_type = "memory";
+		reg = <0x0 0x0 0x0 0x1fdff000>;
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
diff --git a/arch/riscv/boot/dts/canaan/k230.dtsi b/arch/riscv/boot/dts/canaan/k230.dtsi
new file mode 100644
index 000000000000..0bcff67b78a8
--- /dev/null
+++ b/arch/riscv/boot/dts/canaan/k230.dtsi
@@ -0,0 +1,140 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/dts-v1/;
+/ {
+	#address-cells = <2>;
+	#size-cells = <2>;
+	compatible = "canaan,kendryte-k230";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		timebase-frequency = <27000000>;
+
+		cpu@0 {
+			compatible = "thead,c908", "riscv";
+			device_type = "cpu";
+			reg = <0>;
+			riscv,isa = "rv64imafdcv_zba_zbb_zbc_zbs_zicbom_svpbmt";
+			riscv,isa-base = "rv64i";
+			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zba", "zbb",
+					       "zbc", "zbs", "zicbom", "zicntr", "zicsr",
+					       "zifencei", "zihpm", "svpbmt";
+			riscv,cbom-block-size = <64>;
+			d-cache-block-size = <64>;
+			d-cache-sets = <128>;
+			d-cache-size = <32768>;
+			i-cache-block-size = <64>;
+			i-cache-sets = <128>;
+			i-cache-size = <32768>;
+			next-level-cache = <&l2_cache>;
+			mmu-type = "riscv,sv39";
+
+			cpu0_intc: interrupt-controller {
+				compatible = "riscv,cpu-intc";
+				interrupt-controller;
+				#interrupt-cells = <1>;
+			};
+		};
+
+		l2_cache: l2-cache {
+			compatible = "cache";
+			cache-block-size = <64>;
+			cache-level = <2>;
+			cache-size = <262144>;
+			cache-sets = <256>;
+			cache-unified;
+		};
+	};
+
+	apb_clk: apb-clk-clock {
+		compatible = "fixed-clock";
+		clock-frequency = <50000000>;
+		clock-output-names = "apb_clk";
+		#clock-cells = <0>;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		interrupt-parent = <&plic>;
+		#address-cells = <2>;
+		#size-cells = <2>;
+		dma-noncoherent;
+		ranges;
+
+		plic: interrupt-controller@f00000000 {
+			compatible = "canaan,k230-plic" ,"thead,c900-plic";
+			reg = <0xf 0x00000000 0x0 0x04000000>;
+			interrupts-extended = <&cpu0_intc 11>, <&cpu0_intc 9>;
+			interrupt-controller;
+			#address-cells = <0>;
+			#interrupt-cells = <2>;
+			riscv,ndev = <208>;
+		};
+
+		clint: timer@f04000000 {
+			compatible = "canaan,k230-clint", "thead,c900-clint";
+			reg = <0xf 0x04000000 0x0 0x04000000>;
+			interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>;
+		};
+
+		uart0: serial@91400000 {
+			compatible = "snps,dw-apb-uart";
+			reg = <0x0 0x91400000 0x0 0x1000>;
+			clocks = <&apb_clk>;
+			interrupts = <16 IRQ_TYPE_LEVEL_HIGH>;
+			reg-io-width = <4>;
+			reg-shift = <2>;
+			status = "disabled";
+		};
+
+		uart1: serial@91401000 {
+			compatible = "snps,dw-apb-uart";
+			reg = <0x0 0x91401000 0x0 0x1000>;
+			clocks = <&apb_clk>;
+			interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
+			reg-io-width = <4>;
+			reg-shift = <2>;
+			status = "disabled";
+		};
+
+		uart2: serial@91402000 {
+			compatible = "snps,dw-apb-uart";
+			reg = <0x0 0x91402000 0x0 0x1000>;
+			clocks = <&apb_clk>;
+			interrupts = <18 IRQ_TYPE_LEVEL_HIGH>;
+			reg-io-width = <4>;
+			reg-shift = <2>;
+			status = "disabled";
+		};
+
+		uart3: serial@91403000 {
+			compatible = "snps,dw-apb-uart";
+			reg = <0x0 0x91403000 0x0 0x1000>;
+			clocks = <&apb_clk>;
+			interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
+			reg-io-width = <4>;
+			reg-shift = <2>;
+			status = "disabled";
+		};
+
+		uart4: serial@91404000 {
+			compatible = "snps,dw-apb-uart";
+			reg = <0x0 0x91404000 0x0 0x1000>;
+			clocks = <&apb_clk>;
+			interrupts = <20 IRQ_TYPE_LEVEL_HIGH>;
+			reg-io-width = <4>;
+			reg-shift = <2>;
+			status = "disabled";
+		};
+	};
+};
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v5 6/7] riscv: dts: add initial canmv-k230 and k230-evb dts
@ 2024-03-05 20:03   ` Yangyu Chen
  0 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-05 20:03 UTC (permalink / raw)
  To: linux-riscv
  Cc: Conor Dooley, Damien Le Moal, Rob Herring, Krzysztof Kozlowski,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, devicetree,
	linux-kernel, Yangyu Chen

Add initial dts for CanMV-K230 and K230-EVB powered by Canaan Kendryte
K230 SoC [1].

Some key consideration:
- Only place BigCore which is 1.6GHz RV64GCBV

The existence of cache coherence between the two cores remains unknown
since they have dedicated L2 caches. And the factory SDK uses it for
other OS by default. I don't know whether the two CPUs on K230 SoC
can be used in one system. So only place BigCore here.

Meanwhile, although docs from Canaan said 1.6GHz Core with Vector is
CPU1, the csr.mhartid of this core is 0.

- Support for "zba" "zbb" "zbc" "zbs" are tested by hand

The user manual of C908 from T-Head does not document it specifically.
It just said it supports B extension V1.0. [2]

I have tested it by using this [3] which attempts to execute "add.uw",
"andn", "clmulr", "bclr" and they doesn't traps on K230. But on JH7110,
"clmulr" and "bclr" will trap.

- Support for "zicbom" is tested by hand

Have tested with some out-of-tree drivers from [4] that need DMA and they
do not come to the dts currently.

- Cache parameters are inferred from T-Head docs [2] and Canaan docs [1]

L1i: 32KB, VIPT 4-Way set-associative, 64B Cacheline
L1d: 32KB, VIPT 4-Way set-associative, 64B Cacheline
L2: 256KB, PIPT 16-way set-associative, 64B Cacheline

The numbers of cache sets are calculated from these parameters.

- MMU only supports Sv39

Since T-Head docs [2] say C908 should support Sv48. However, it will fail
during the kernel probe when running Linux on K230. I also tested it by
hand on M-Mode software, writing Sv48 to satp.mode will not trap but will
leave the csr unchanged. While writing Sv39 it will take effect. It shows
that this CPU does not support Sv48.

- Svpbmt and T-Head MAEE both supported

T-Head C908 does support both Svpbmt and T-Head MAEE for page-based memory
attributes and is controlled by csr.mxstatus. If the kernel wants to use
svpbmt, the m-mode software should set BIT(21) of csr.mxstatus to zero
before entering the s-mode kernel. Otherwise, the kernel will not boot as 0
on T-Head MAEE represent to NonCachable Memory and it will lose dirty cache
lines modification that haven't been written back to the memory.

[1] https://developer.canaan-creative.com/k230/dev/zh/00_hardware/K230_datasheet.html#chapter-1-introduction
[2] https://occ-intl-prod.oss-ap-southeast-1.aliyuncs.com/resource//1699268369347/XuanTie-C908-UserManual.pdf
[3] https://github.com/cyyself/rvb_test
[4] https://github.com/cyyself/linux/tree/k230-mainline

Signed-off-by: Yangyu Chen <cyy@cyyself.name>
---
 arch/riscv/boot/dts/canaan/Makefile       |   2 +
 arch/riscv/boot/dts/canaan/k230-canmv.dts |  24 ++++
 arch/riscv/boot/dts/canaan/k230-evb.dts   |  24 ++++
 arch/riscv/boot/dts/canaan/k230.dtsi      | 140 ++++++++++++++++++++++
 4 files changed, 190 insertions(+)
 create mode 100644 arch/riscv/boot/dts/canaan/k230-canmv.dts
 create mode 100644 arch/riscv/boot/dts/canaan/k230-evb.dts
 create mode 100644 arch/riscv/boot/dts/canaan/k230.dtsi

diff --git a/arch/riscv/boot/dts/canaan/Makefile b/arch/riscv/boot/dts/canaan/Makefile
index 987d1f0c41f0..7d54ea5c6f3d 100644
--- a/arch/riscv/boot/dts/canaan/Makefile
+++ b/arch/riscv/boot/dts/canaan/Makefile
@@ -1,6 +1,8 @@
 # SPDX-License-Identifier: GPL-2.0
 dtb-$(CONFIG_ARCH_CANAAN) += canaan_kd233.dtb
 dtb-$(CONFIG_ARCH_CANAAN) += k210_generic.dtb
+dtb-$(CONFIG_ARCH_CANAAN) += k230-canmv.dtb
+dtb-$(CONFIG_ARCH_CANAAN) += k230-evb.dtb
 dtb-$(CONFIG_ARCH_CANAAN) += sipeed_maix_bit.dtb
 dtb-$(CONFIG_ARCH_CANAAN) += sipeed_maix_dock.dtb
 dtb-$(CONFIG_ARCH_CANAAN) += sipeed_maix_go.dtb
diff --git a/arch/riscv/boot/dts/canaan/k230-canmv.dts b/arch/riscv/boot/dts/canaan/k230-canmv.dts
new file mode 100644
index 000000000000..3ab5c8de11a8
--- /dev/null
+++ b/arch/riscv/boot/dts/canaan/k230-canmv.dts
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
+ */
+
+#include "k230.dtsi"
+
+/ {
+	model = "Canaan CanMV-K230";
+	compatible = "canaan,canmv-k230", "canaan,kendryte-k230";
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	ddr: memory@0 {
+		device_type = "memory";
+		reg = <0x0 0x0 0x0 0x1fdff000>;
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
diff --git a/arch/riscv/boot/dts/canaan/k230-evb.dts b/arch/riscv/boot/dts/canaan/k230-evb.dts
new file mode 100644
index 000000000000..42720113c566
--- /dev/null
+++ b/arch/riscv/boot/dts/canaan/k230-evb.dts
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
+ */
+
+#include "k230.dtsi"
+
+/ {
+	model = "Kendryte K230 EVB";
+	compatible = "canaan,k230-usip-lp3-evb", "canaan,kendryte-k230";
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	ddr: memory@0 {
+		device_type = "memory";
+		reg = <0x0 0x0 0x0 0x1fdff000>;
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
diff --git a/arch/riscv/boot/dts/canaan/k230.dtsi b/arch/riscv/boot/dts/canaan/k230.dtsi
new file mode 100644
index 000000000000..0bcff67b78a8
--- /dev/null
+++ b/arch/riscv/boot/dts/canaan/k230.dtsi
@@ -0,0 +1,140 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/dts-v1/;
+/ {
+	#address-cells = <2>;
+	#size-cells = <2>;
+	compatible = "canaan,kendryte-k230";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		timebase-frequency = <27000000>;
+
+		cpu@0 {
+			compatible = "thead,c908", "riscv";
+			device_type = "cpu";
+			reg = <0>;
+			riscv,isa = "rv64imafdcv_zba_zbb_zbc_zbs_zicbom_svpbmt";
+			riscv,isa-base = "rv64i";
+			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zba", "zbb",
+					       "zbc", "zbs", "zicbom", "zicntr", "zicsr",
+					       "zifencei", "zihpm", "svpbmt";
+			riscv,cbom-block-size = <64>;
+			d-cache-block-size = <64>;
+			d-cache-sets = <128>;
+			d-cache-size = <32768>;
+			i-cache-block-size = <64>;
+			i-cache-sets = <128>;
+			i-cache-size = <32768>;
+			next-level-cache = <&l2_cache>;
+			mmu-type = "riscv,sv39";
+
+			cpu0_intc: interrupt-controller {
+				compatible = "riscv,cpu-intc";
+				interrupt-controller;
+				#interrupt-cells = <1>;
+			};
+		};
+
+		l2_cache: l2-cache {
+			compatible = "cache";
+			cache-block-size = <64>;
+			cache-level = <2>;
+			cache-size = <262144>;
+			cache-sets = <256>;
+			cache-unified;
+		};
+	};
+
+	apb_clk: apb-clk-clock {
+		compatible = "fixed-clock";
+		clock-frequency = <50000000>;
+		clock-output-names = "apb_clk";
+		#clock-cells = <0>;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		interrupt-parent = <&plic>;
+		#address-cells = <2>;
+		#size-cells = <2>;
+		dma-noncoherent;
+		ranges;
+
+		plic: interrupt-controller@f00000000 {
+			compatible = "canaan,k230-plic" ,"thead,c900-plic";
+			reg = <0xf 0x00000000 0x0 0x04000000>;
+			interrupts-extended = <&cpu0_intc 11>, <&cpu0_intc 9>;
+			interrupt-controller;
+			#address-cells = <0>;
+			#interrupt-cells = <2>;
+			riscv,ndev = <208>;
+		};
+
+		clint: timer@f04000000 {
+			compatible = "canaan,k230-clint", "thead,c900-clint";
+			reg = <0xf 0x04000000 0x0 0x04000000>;
+			interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>;
+		};
+
+		uart0: serial@91400000 {
+			compatible = "snps,dw-apb-uart";
+			reg = <0x0 0x91400000 0x0 0x1000>;
+			clocks = <&apb_clk>;
+			interrupts = <16 IRQ_TYPE_LEVEL_HIGH>;
+			reg-io-width = <4>;
+			reg-shift = <2>;
+			status = "disabled";
+		};
+
+		uart1: serial@91401000 {
+			compatible = "snps,dw-apb-uart";
+			reg = <0x0 0x91401000 0x0 0x1000>;
+			clocks = <&apb_clk>;
+			interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
+			reg-io-width = <4>;
+			reg-shift = <2>;
+			status = "disabled";
+		};
+
+		uart2: serial@91402000 {
+			compatible = "snps,dw-apb-uart";
+			reg = <0x0 0x91402000 0x0 0x1000>;
+			clocks = <&apb_clk>;
+			interrupts = <18 IRQ_TYPE_LEVEL_HIGH>;
+			reg-io-width = <4>;
+			reg-shift = <2>;
+			status = "disabled";
+		};
+
+		uart3: serial@91403000 {
+			compatible = "snps,dw-apb-uart";
+			reg = <0x0 0x91403000 0x0 0x1000>;
+			clocks = <&apb_clk>;
+			interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
+			reg-io-width = <4>;
+			reg-shift = <2>;
+			status = "disabled";
+		};
+
+		uart4: serial@91404000 {
+			compatible = "snps,dw-apb-uart";
+			reg = <0x0 0x91404000 0x0 0x1000>;
+			clocks = <&apb_clk>;
+			interrupts = <20 IRQ_TYPE_LEVEL_HIGH>;
+			reg-io-width = <4>;
+			reg-shift = <2>;
+			status = "disabled";
+		};
+	};
+};
-- 
2.43.0


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v5 7/7] riscv: config: enable ARCH_CANAAN in defconfig
  2024-03-05 20:01 ` Yangyu Chen
@ 2024-03-05 20:03   ` Yangyu Chen
  -1 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-05 20:03 UTC (permalink / raw)
  To: linux-riscv
  Cc: Conor Dooley, Damien Le Moal, Rob Herring, Krzysztof Kozlowski,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, devicetree,
	linux-kernel, Yangyu Chen

Since K230 has been supported, allow ARCH_CANAAN to be selected to build dt
and drivers for it in defconfig.

Signed-off-by: Yangyu Chen <cyy@cyyself.name>
---
 arch/riscv/configs/defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
index 89a009a580fe..f89df7ddb543 100644
--- a/arch/riscv/configs/defconfig
+++ b/arch/riscv/configs/defconfig
@@ -33,6 +33,7 @@ CONFIG_SOC_STARFIVE=y
 CONFIG_ARCH_SUNXI=y
 CONFIG_ARCH_THEAD=y
 CONFIG_SOC_VIRT=y
+CONFIG_ARCH_CANAAN=y
 CONFIG_SMP=y
 CONFIG_HOTPLUG_CPU=y
 CONFIG_PM=y
-- 
2.43.0


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v5 7/7] riscv: config: enable ARCH_CANAAN in defconfig
@ 2024-03-05 20:03   ` Yangyu Chen
  0 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-05 20:03 UTC (permalink / raw)
  To: linux-riscv
  Cc: Conor Dooley, Damien Le Moal, Rob Herring, Krzysztof Kozlowski,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, devicetree,
	linux-kernel, Yangyu Chen

Since K230 has been supported, allow ARCH_CANAAN to be selected to build dt
and drivers for it in defconfig.

Signed-off-by: Yangyu Chen <cyy@cyyself.name>
---
 arch/riscv/configs/defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
index 89a009a580fe..f89df7ddb543 100644
--- a/arch/riscv/configs/defconfig
+++ b/arch/riscv/configs/defconfig
@@ -33,6 +33,7 @@ CONFIG_SOC_STARFIVE=y
 CONFIG_ARCH_SUNXI=y
 CONFIG_ARCH_THEAD=y
 CONFIG_SOC_VIRT=y
+CONFIG_ARCH_CANAAN=y
 CONFIG_SMP=y
 CONFIG_HOTPLUG_CPU=y
 CONFIG_PM=y
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 3/7] dt-bindings: timer: Add Canaan K230 CLINT
  2024-03-05 20:02   ` Yangyu Chen
@ 2024-03-05 23:32     ` Guo Ren
  -1 siblings, 0 replies; 36+ messages in thread
From: Guo Ren @ 2024-03-05 23:32 UTC (permalink / raw)
  To: Yangyu Chen
  Cc: linux-riscv, Conor Dooley, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel, Rob Herring

Reviewed-by: Guo Ren <guoren@kernel.org>

On Wed, Mar 6, 2024 at 4:03 AM Yangyu Chen <cyy@cyyself.name> wrote:
>
> Add compatible string for Canaan K230 CLINT.
>
> Signed-off-by: Yangyu Chen <cyy@cyyself.name>
> Acked-by: Rob Herring <robh@kernel.org>
> ---
>  Documentation/devicetree/bindings/timer/sifive,clint.yaml | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/timer/sifive,clint.yaml b/Documentation/devicetree/bindings/timer/sifive,clint.yaml
> index fced6f2d8ecb..06c67f20ad3c 100644
> --- a/Documentation/devicetree/bindings/timer/sifive,clint.yaml
> +++ b/Documentation/devicetree/bindings/timer/sifive,clint.yaml
> @@ -38,6 +38,7 @@ properties:
>        - items:
>            - enum:
>                - allwinner,sun20i-d1-clint
> +              - canaan,k230-clint
>                - sophgo,cv1800b-clint
>                - sophgo,cv1812h-clint
>                - thead,th1520-clint
> --
> 2.43.0
>


-- 
Best Regards
 Guo Ren

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 3/7] dt-bindings: timer: Add Canaan K230 CLINT
@ 2024-03-05 23:32     ` Guo Ren
  0 siblings, 0 replies; 36+ messages in thread
From: Guo Ren @ 2024-03-05 23:32 UTC (permalink / raw)
  To: Yangyu Chen
  Cc: linux-riscv, Conor Dooley, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel, Rob Herring

Reviewed-by: Guo Ren <guoren@kernel.org>

On Wed, Mar 6, 2024 at 4:03 AM Yangyu Chen <cyy@cyyself.name> wrote:
>
> Add compatible string for Canaan K230 CLINT.
>
> Signed-off-by: Yangyu Chen <cyy@cyyself.name>
> Acked-by: Rob Herring <robh@kernel.org>
> ---
>  Documentation/devicetree/bindings/timer/sifive,clint.yaml | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/timer/sifive,clint.yaml b/Documentation/devicetree/bindings/timer/sifive,clint.yaml
> index fced6f2d8ecb..06c67f20ad3c 100644
> --- a/Documentation/devicetree/bindings/timer/sifive,clint.yaml
> +++ b/Documentation/devicetree/bindings/timer/sifive,clint.yaml
> @@ -38,6 +38,7 @@ properties:
>        - items:
>            - enum:
>                - allwinner,sun20i-d1-clint
> +              - canaan,k230-clint
>                - sophgo,cv1800b-clint
>                - sophgo,cv1812h-clint
>                - thead,th1520-clint
> --
> 2.43.0
>


-- 
Best Regards
 Guo Ren

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 7/7] riscv: config: enable ARCH_CANAAN in defconfig
  2024-03-05 20:03   ` Yangyu Chen
@ 2024-03-05 23:32     ` Guo Ren
  -1 siblings, 0 replies; 36+ messages in thread
From: Guo Ren @ 2024-03-05 23:32 UTC (permalink / raw)
  To: Yangyu Chen
  Cc: linux-riscv, Conor Dooley, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel

On Wed, Mar 6, 2024 at 4:03 AM Yangyu Chen <cyy@cyyself.name> wrote:
>
> Since K230 has been supported, allow ARCH_CANAAN to be selected to build dt
> and drivers for it in defconfig.
>
> Signed-off-by: Yangyu Chen <cyy@cyyself.name>
> ---
>  arch/riscv/configs/defconfig | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
> index 89a009a580fe..f89df7ddb543 100644
> --- a/arch/riscv/configs/defconfig
> +++ b/arch/riscv/configs/defconfig
> @@ -33,6 +33,7 @@ CONFIG_SOC_STARFIVE=y
>  CONFIG_ARCH_SUNXI=y
>  CONFIG_ARCH_THEAD=y
>  CONFIG_SOC_VIRT=y
> +CONFIG_ARCH_CANAAN=y
>  CONFIG_SMP=y
>  CONFIG_HOTPLUG_CPU=y
>  CONFIG_PM=y
> --
> 2.43.0
>
Reviewed-by: Guo Ren <guoren@kernel.org>

-- 
Best Regards
 Guo Ren

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 7/7] riscv: config: enable ARCH_CANAAN in defconfig
@ 2024-03-05 23:32     ` Guo Ren
  0 siblings, 0 replies; 36+ messages in thread
From: Guo Ren @ 2024-03-05 23:32 UTC (permalink / raw)
  To: Yangyu Chen
  Cc: linux-riscv, Conor Dooley, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel

On Wed, Mar 6, 2024 at 4:03 AM Yangyu Chen <cyy@cyyself.name> wrote:
>
> Since K230 has been supported, allow ARCH_CANAAN to be selected to build dt
> and drivers for it in defconfig.
>
> Signed-off-by: Yangyu Chen <cyy@cyyself.name>
> ---
>  arch/riscv/configs/defconfig | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
> index 89a009a580fe..f89df7ddb543 100644
> --- a/arch/riscv/configs/defconfig
> +++ b/arch/riscv/configs/defconfig
> @@ -33,6 +33,7 @@ CONFIG_SOC_STARFIVE=y
>  CONFIG_ARCH_SUNXI=y
>  CONFIG_ARCH_THEAD=y
>  CONFIG_SOC_VIRT=y
> +CONFIG_ARCH_CANAAN=y
>  CONFIG_SMP=y
>  CONFIG_HOTPLUG_CPU=y
>  CONFIG_PM=y
> --
> 2.43.0
>
Reviewed-by: Guo Ren <guoren@kernel.org>

-- 
Best Regards
 Guo Ren

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 5/7] riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210
  2024-03-05 20:03   ` Yangyu Chen
@ 2024-03-05 23:38     ` Guo Ren
  -1 siblings, 0 replies; 36+ messages in thread
From: Guo Ren @ 2024-03-05 23:38 UTC (permalink / raw)
  To: Yangyu Chen
  Cc: linux-riscv, Conor Dooley, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel

This patch cross so many subsystems, I am not sure about it. If I were
you, I would keep SOC_CANAAN and just add SOC_CANAAN_K230.

On Wed, Mar 6, 2024 at 7:04 AM Yangyu Chen <cyy@cyyself.name> wrote:
>
> Since we have Canaan Kendryte K230 with MMU now. The use of SOC_CANAAN
> is no longer only referred to K210. Split them and add _K210 suffix
> to the name for old SOC_CANAAN. And allows ARCH_CANAAN to be selected
> for other Canaan SoCs.
>
> Signed-off-by: Yangyu Chen <cyy@cyyself.name>
> ---
>  arch/riscv/Kconfig.socs                        | 8 +++++---
>  arch/riscv/Makefile                            | 2 +-
>  arch/riscv/configs/nommu_k210_defconfig        | 3 ++-
>  arch/riscv/configs/nommu_k210_sdcard_defconfig | 3 ++-
>  drivers/clk/Kconfig                            | 4 ++--
>  drivers/pinctrl/Kconfig                        | 4 ++--
>  drivers/reset/Kconfig                          | 4 ++--
>  drivers/soc/Makefile                           | 2 +-
>  drivers/soc/canaan/Kconfig                     | 4 ++--
>  9 files changed, 19 insertions(+), 15 deletions(-)
>
> diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs
> index 623de5f8a208..5710aee456ac 100644
> --- a/arch/riscv/Kconfig.socs
> +++ b/arch/riscv/Kconfig.socs
> @@ -72,11 +72,13 @@ config SOC_VIRT
>           This enables support for QEMU Virt Machine.
>
>  config ARCH_CANAAN
> -       def_bool SOC_CANAAN
> +       bool "Canaan Kendryte SoC"
> +       help
> +         This enables support for Canaan Kendryte SoC platform hardware.
>
> -config SOC_CANAAN
> +config SOC_CANAAN_K210
>         bool "Canaan Kendryte K210 SoC"
> -       depends on !MMU
> +       depends on !MMU && ARCH_CANAAN
>         select CLINT_TIMER if RISCV_M_MODE
>         select ARCH_HAS_RESET_CONTROLLER
>         select PINCTRL
> diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
> index 252d63942f34..fa6c389c3986 100644
> --- a/arch/riscv/Makefile
> +++ b/arch/riscv/Makefile
> @@ -154,7 +154,7 @@ vdso-install-y                      += arch/riscv/kernel/vdso/vdso.so.dbg
>  vdso-install-$(CONFIG_COMPAT)  += arch/riscv/kernel/compat_vdso/compat_vdso.so.dbg:../compat_vdso/compat_vdso.so
>
>  ifneq ($(CONFIG_XIP_KERNEL),y)
> -ifeq ($(CONFIG_RISCV_M_MODE)$(CONFIG_ARCH_CANAAN),yy)
> +ifeq ($(CONFIG_RISCV_M_MODE)$(CONFIG_SOC_CANAAN_K210),yy)
>  KBUILD_IMAGE := $(boot)/loader.bin
>  else
>  ifeq ($(CONFIG_EFI_ZBOOT),)
> diff --git a/arch/riscv/configs/nommu_k210_defconfig b/arch/riscv/configs/nommu_k210_defconfig
> index 7e75200543f4..2552e78074a3 100644
> --- a/arch/riscv/configs/nommu_k210_defconfig
> +++ b/arch/riscv/configs/nommu_k210_defconfig
> @@ -27,7 +27,8 @@ CONFIG_EXPERT=y
>  CONFIG_SLUB=y
>  CONFIG_SLUB_TINY=y
>  # CONFIG_MMU is not set
> -CONFIG_SOC_CANAAN=y
> +CONFIG_ARCH_CANAAN=y
> +CONFIG_SOC_CANAAN_K210=y
>  CONFIG_NONPORTABLE=y
>  CONFIG_SMP=y
>  CONFIG_NR_CPUS=2
> diff --git a/arch/riscv/configs/nommu_k210_sdcard_defconfig b/arch/riscv/configs/nommu_k210_sdcard_defconfig
> index 0ba353e9ca71..8f67fb830585 100644
> --- a/arch/riscv/configs/nommu_k210_sdcard_defconfig
> +++ b/arch/riscv/configs/nommu_k210_sdcard_defconfig
> @@ -19,7 +19,8 @@ CONFIG_EXPERT=y
>  CONFIG_SLUB=y
>  CONFIG_SLUB_TINY=y
>  # CONFIG_MMU is not set
> -CONFIG_SOC_CANAAN=y
> +CONFIG_ARCH_CANAAN=y
> +CONFIG_SOC_CANAAN_K210=y
>  CONFIG_NONPORTABLE=y
>  CONFIG_SMP=y
>  CONFIG_NR_CPUS=2
> diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig
> index 50af5fc7f570..7517a0dfd15c 100644
> --- a/drivers/clk/Kconfig
> +++ b/drivers/clk/Kconfig
> @@ -451,8 +451,8 @@ config COMMON_CLK_FIXED_MMIO
>
>  config COMMON_CLK_K210
>         bool "Clock driver for the Canaan Kendryte K210 SoC"
> -       depends on OF && RISCV && SOC_CANAAN
> -       default SOC_CANAAN
> +       depends on OF && RISCV && SOC_CANAAN_K210
> +       default SOC_CANAAN_K210
>         help
>           Support for the Canaan Kendryte K210 RISC-V SoC clocks.
>
> diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
> index 8163a5983166..837b3bac8aac 100644
> --- a/drivers/pinctrl/Kconfig
> +++ b/drivers/pinctrl/Kconfig
> @@ -217,13 +217,13 @@ config PINCTRL_INGENIC
>
>  config PINCTRL_K210
>         bool "Pinctrl driver for the Canaan Kendryte K210 SoC"
> -       depends on RISCV && SOC_CANAAN && OF
> +       depends on RISCV && SOC_CANAAN_K210 && OF
>         select GENERIC_PINMUX_FUNCTIONS
>         select GENERIC_PINCONF
>         select GPIOLIB
>         select OF_GPIO
>         select REGMAP_MMIO
> -       default SOC_CANAAN
> +       default SOC_CANAAN_K210
>         help
>           Add support for the Canaan Kendryte K210 RISC-V SOC Field
>           Programmable IO Array (FPIOA) controller.
> diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig
> index ccd59ddd7610..6499da7ecc3b 100644
> --- a/drivers/reset/Kconfig
> +++ b/drivers/reset/Kconfig
> @@ -94,9 +94,9 @@ config RESET_INTEL_GW
>
>  config RESET_K210
>         bool "Reset controller driver for Canaan Kendryte K210 SoC"
> -       depends on (SOC_CANAAN || COMPILE_TEST) && OF
> +       depends on (SOC_CANAAN_K210 || COMPILE_TEST) && OF
>         select MFD_SYSCON
> -       default SOC_CANAAN
> +       default SOC_CANAAN_K210
>         help
>           Support for the Canaan Kendryte K210 RISC-V SoC reset controller.
>           Say Y if you want to control reset signals provided by this
> diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile
> index ba8f5b5460e1..fb2bd31387d0 100644
> --- a/drivers/soc/Makefile
> +++ b/drivers/soc/Makefile
> @@ -7,7 +7,7 @@ obj-y                           += apple/
>  obj-y                          += aspeed/
>  obj-$(CONFIG_ARCH_AT91)                += atmel/
>  obj-y                          += bcm/
> -obj-$(CONFIG_SOC_CANAAN)       += canaan/
> +obj-$(CONFIG_ARCH_CANAAN)      += canaan/
>  obj-$(CONFIG_ARCH_DOVE)                += dove/
>  obj-$(CONFIG_MACH_DOVE)                += dove/
>  obj-y                          += fsl/
> diff --git a/drivers/soc/canaan/Kconfig b/drivers/soc/canaan/Kconfig
> index 43ced2bf8444..3121d351fea6 100644
> --- a/drivers/soc/canaan/Kconfig
> +++ b/drivers/soc/canaan/Kconfig
> @@ -2,9 +2,9 @@
>
>  config SOC_K210_SYSCTL
>         bool "Canaan Kendryte K210 SoC system controller"
> -       depends on RISCV && SOC_CANAAN && OF
> +       depends on RISCV && SOC_CANAAN_K210 && OF
>         depends on COMMON_CLK_K210
> -       default SOC_CANAAN
> +       default SOC_CANAAN_K210
>         select PM
>         select MFD_SYSCON
>         help
> --
> 2.43.0
>


-- 
Best Regards
 Guo Ren

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 5/7] riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210
@ 2024-03-05 23:38     ` Guo Ren
  0 siblings, 0 replies; 36+ messages in thread
From: Guo Ren @ 2024-03-05 23:38 UTC (permalink / raw)
  To: Yangyu Chen
  Cc: linux-riscv, Conor Dooley, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel

This patch cross so many subsystems, I am not sure about it. If I were
you, I would keep SOC_CANAAN and just add SOC_CANAAN_K230.

On Wed, Mar 6, 2024 at 7:04 AM Yangyu Chen <cyy@cyyself.name> wrote:
>
> Since we have Canaan Kendryte K230 with MMU now. The use of SOC_CANAAN
> is no longer only referred to K210. Split them and add _K210 suffix
> to the name for old SOC_CANAAN. And allows ARCH_CANAAN to be selected
> for other Canaan SoCs.
>
> Signed-off-by: Yangyu Chen <cyy@cyyself.name>
> ---
>  arch/riscv/Kconfig.socs                        | 8 +++++---
>  arch/riscv/Makefile                            | 2 +-
>  arch/riscv/configs/nommu_k210_defconfig        | 3 ++-
>  arch/riscv/configs/nommu_k210_sdcard_defconfig | 3 ++-
>  drivers/clk/Kconfig                            | 4 ++--
>  drivers/pinctrl/Kconfig                        | 4 ++--
>  drivers/reset/Kconfig                          | 4 ++--
>  drivers/soc/Makefile                           | 2 +-
>  drivers/soc/canaan/Kconfig                     | 4 ++--
>  9 files changed, 19 insertions(+), 15 deletions(-)
>
> diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs
> index 623de5f8a208..5710aee456ac 100644
> --- a/arch/riscv/Kconfig.socs
> +++ b/arch/riscv/Kconfig.socs
> @@ -72,11 +72,13 @@ config SOC_VIRT
>           This enables support for QEMU Virt Machine.
>
>  config ARCH_CANAAN
> -       def_bool SOC_CANAAN
> +       bool "Canaan Kendryte SoC"
> +       help
> +         This enables support for Canaan Kendryte SoC platform hardware.
>
> -config SOC_CANAAN
> +config SOC_CANAAN_K210
>         bool "Canaan Kendryte K210 SoC"
> -       depends on !MMU
> +       depends on !MMU && ARCH_CANAAN
>         select CLINT_TIMER if RISCV_M_MODE
>         select ARCH_HAS_RESET_CONTROLLER
>         select PINCTRL
> diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
> index 252d63942f34..fa6c389c3986 100644
> --- a/arch/riscv/Makefile
> +++ b/arch/riscv/Makefile
> @@ -154,7 +154,7 @@ vdso-install-y                      += arch/riscv/kernel/vdso/vdso.so.dbg
>  vdso-install-$(CONFIG_COMPAT)  += arch/riscv/kernel/compat_vdso/compat_vdso.so.dbg:../compat_vdso/compat_vdso.so
>
>  ifneq ($(CONFIG_XIP_KERNEL),y)
> -ifeq ($(CONFIG_RISCV_M_MODE)$(CONFIG_ARCH_CANAAN),yy)
> +ifeq ($(CONFIG_RISCV_M_MODE)$(CONFIG_SOC_CANAAN_K210),yy)
>  KBUILD_IMAGE := $(boot)/loader.bin
>  else
>  ifeq ($(CONFIG_EFI_ZBOOT),)
> diff --git a/arch/riscv/configs/nommu_k210_defconfig b/arch/riscv/configs/nommu_k210_defconfig
> index 7e75200543f4..2552e78074a3 100644
> --- a/arch/riscv/configs/nommu_k210_defconfig
> +++ b/arch/riscv/configs/nommu_k210_defconfig
> @@ -27,7 +27,8 @@ CONFIG_EXPERT=y
>  CONFIG_SLUB=y
>  CONFIG_SLUB_TINY=y
>  # CONFIG_MMU is not set
> -CONFIG_SOC_CANAAN=y
> +CONFIG_ARCH_CANAAN=y
> +CONFIG_SOC_CANAAN_K210=y
>  CONFIG_NONPORTABLE=y
>  CONFIG_SMP=y
>  CONFIG_NR_CPUS=2
> diff --git a/arch/riscv/configs/nommu_k210_sdcard_defconfig b/arch/riscv/configs/nommu_k210_sdcard_defconfig
> index 0ba353e9ca71..8f67fb830585 100644
> --- a/arch/riscv/configs/nommu_k210_sdcard_defconfig
> +++ b/arch/riscv/configs/nommu_k210_sdcard_defconfig
> @@ -19,7 +19,8 @@ CONFIG_EXPERT=y
>  CONFIG_SLUB=y
>  CONFIG_SLUB_TINY=y
>  # CONFIG_MMU is not set
> -CONFIG_SOC_CANAAN=y
> +CONFIG_ARCH_CANAAN=y
> +CONFIG_SOC_CANAAN_K210=y
>  CONFIG_NONPORTABLE=y
>  CONFIG_SMP=y
>  CONFIG_NR_CPUS=2
> diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig
> index 50af5fc7f570..7517a0dfd15c 100644
> --- a/drivers/clk/Kconfig
> +++ b/drivers/clk/Kconfig
> @@ -451,8 +451,8 @@ config COMMON_CLK_FIXED_MMIO
>
>  config COMMON_CLK_K210
>         bool "Clock driver for the Canaan Kendryte K210 SoC"
> -       depends on OF && RISCV && SOC_CANAAN
> -       default SOC_CANAAN
> +       depends on OF && RISCV && SOC_CANAAN_K210
> +       default SOC_CANAAN_K210
>         help
>           Support for the Canaan Kendryte K210 RISC-V SoC clocks.
>
> diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
> index 8163a5983166..837b3bac8aac 100644
> --- a/drivers/pinctrl/Kconfig
> +++ b/drivers/pinctrl/Kconfig
> @@ -217,13 +217,13 @@ config PINCTRL_INGENIC
>
>  config PINCTRL_K210
>         bool "Pinctrl driver for the Canaan Kendryte K210 SoC"
> -       depends on RISCV && SOC_CANAAN && OF
> +       depends on RISCV && SOC_CANAAN_K210 && OF
>         select GENERIC_PINMUX_FUNCTIONS
>         select GENERIC_PINCONF
>         select GPIOLIB
>         select OF_GPIO
>         select REGMAP_MMIO
> -       default SOC_CANAAN
> +       default SOC_CANAAN_K210
>         help
>           Add support for the Canaan Kendryte K210 RISC-V SOC Field
>           Programmable IO Array (FPIOA) controller.
> diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig
> index ccd59ddd7610..6499da7ecc3b 100644
> --- a/drivers/reset/Kconfig
> +++ b/drivers/reset/Kconfig
> @@ -94,9 +94,9 @@ config RESET_INTEL_GW
>
>  config RESET_K210
>         bool "Reset controller driver for Canaan Kendryte K210 SoC"
> -       depends on (SOC_CANAAN || COMPILE_TEST) && OF
> +       depends on (SOC_CANAAN_K210 || COMPILE_TEST) && OF
>         select MFD_SYSCON
> -       default SOC_CANAAN
> +       default SOC_CANAAN_K210
>         help
>           Support for the Canaan Kendryte K210 RISC-V SoC reset controller.
>           Say Y if you want to control reset signals provided by this
> diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile
> index ba8f5b5460e1..fb2bd31387d0 100644
> --- a/drivers/soc/Makefile
> +++ b/drivers/soc/Makefile
> @@ -7,7 +7,7 @@ obj-y                           += apple/
>  obj-y                          += aspeed/
>  obj-$(CONFIG_ARCH_AT91)                += atmel/
>  obj-y                          += bcm/
> -obj-$(CONFIG_SOC_CANAAN)       += canaan/
> +obj-$(CONFIG_ARCH_CANAAN)      += canaan/
>  obj-$(CONFIG_ARCH_DOVE)                += dove/
>  obj-$(CONFIG_MACH_DOVE)                += dove/
>  obj-y                          += fsl/
> diff --git a/drivers/soc/canaan/Kconfig b/drivers/soc/canaan/Kconfig
> index 43ced2bf8444..3121d351fea6 100644
> --- a/drivers/soc/canaan/Kconfig
> +++ b/drivers/soc/canaan/Kconfig
> @@ -2,9 +2,9 @@
>
>  config SOC_K210_SYSCTL
>         bool "Canaan Kendryte K210 SoC system controller"
> -       depends on RISCV && SOC_CANAAN && OF
> +       depends on RISCV && SOC_CANAAN_K210 && OF
>         depends on COMMON_CLK_K210
> -       default SOC_CANAAN
> +       default SOC_CANAAN_K210
>         select PM
>         select MFD_SYSCON
>         help
> --
> 2.43.0
>


-- 
Best Regards
 Guo Ren

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 4/7] dt-bindings: interrupt-controller: Add Canaan K230 PLIC
  2024-03-05 20:02   ` Yangyu Chen
@ 2024-03-05 23:39     ` Guo Ren
  -1 siblings, 0 replies; 36+ messages in thread
From: Guo Ren @ 2024-03-05 23:39 UTC (permalink / raw)
  To: Yangyu Chen
  Cc: linux-riscv, Conor Dooley, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel, Rob Herring

On Wed, Mar 6, 2024 at 4:03 AM Yangyu Chen <cyy@cyyself.name> wrote:
>
> Add compatible string for Canaan K230 PLIC.
>
> Signed-off-by: Yangyu Chen <cyy@cyyself.name>
> Acked-by: Rob Herring <robh@kernel.org>
> ---
>  .../bindings/interrupt-controller/sifive,plic-1.0.0.yaml         | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml b/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml
> index 709b2211276b..122f9b7b3f52 100644
> --- a/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml
> +++ b/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml
> @@ -65,6 +65,7 @@ properties:
>        - items:
>            - enum:
>                - allwinner,sun20i-d1-plic
> +              - canaan,k230-plic
>                - sophgo,cv1800b-plic
>                - sophgo,cv1812h-plic
>                - sophgo,sg2042-plic
> --
> 2.43.0
>
Reviewed-by: Guo Ren <guoren@kernel.org>

-- 
Best Regards
 Guo Ren

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 4/7] dt-bindings: interrupt-controller: Add Canaan K230 PLIC
@ 2024-03-05 23:39     ` Guo Ren
  0 siblings, 0 replies; 36+ messages in thread
From: Guo Ren @ 2024-03-05 23:39 UTC (permalink / raw)
  To: Yangyu Chen
  Cc: linux-riscv, Conor Dooley, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel, Rob Herring

On Wed, Mar 6, 2024 at 4:03 AM Yangyu Chen <cyy@cyyself.name> wrote:
>
> Add compatible string for Canaan K230 PLIC.
>
> Signed-off-by: Yangyu Chen <cyy@cyyself.name>
> Acked-by: Rob Herring <robh@kernel.org>
> ---
>  .../bindings/interrupt-controller/sifive,plic-1.0.0.yaml         | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml b/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml
> index 709b2211276b..122f9b7b3f52 100644
> --- a/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml
> +++ b/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml
> @@ -65,6 +65,7 @@ properties:
>        - items:
>            - enum:
>                - allwinner,sun20i-d1-plic
> +              - canaan,k230-plic
>                - sophgo,cv1800b-plic
>                - sophgo,cv1812h-plic
>                - sophgo,sg2042-plic
> --
> 2.43.0
>
Reviewed-by: Guo Ren <guoren@kernel.org>

-- 
Best Regards
 Guo Ren

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 1/7] dt-bindings: riscv: Add T-HEAD C908 compatible
  2024-03-05 20:02   ` Yangyu Chen
@ 2024-03-05 23:39     ` Guo Ren
  -1 siblings, 0 replies; 36+ messages in thread
From: Guo Ren @ 2024-03-05 23:39 UTC (permalink / raw)
  To: Yangyu Chen
  Cc: linux-riscv, Conor Dooley, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel, Conor Dooley

On Wed, Mar 6, 2024 at 5:24 AM Yangyu Chen <cyy@cyyself.name> wrote:
>
> The thead,c908 is a RISC-V CPU core from T-HEAD Semiconductor which used
> in Canaan Kendryte K230 SoC.
>
> Signed-off-by: Yangyu Chen <cyy@cyyself.name>
> Acked-by: Conor Dooley <conor.dooley@microchip.com>
> ---
>  Documentation/devicetree/bindings/riscv/cpus.yaml | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/riscv/cpus.yaml b/Documentation/devicetree/bindings/riscv/cpus.yaml
> index 9d8670c00e3b..e853a7fcee8a 100644
> --- a/Documentation/devicetree/bindings/riscv/cpus.yaml
> +++ b/Documentation/devicetree/bindings/riscv/cpus.yaml
> @@ -47,6 +47,7 @@ properties:
>                - sifive,u74
>                - sifive,u74-mc
>                - thead,c906
> +              - thead,c908
>                - thead,c910
>                - thead,c920
>            - const: riscv
> --
> 2.43.0
>
Reviewed-by: Guo Ren <guoren@kernel.org>

-- 
Best Regards
 Guo Ren

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 1/7] dt-bindings: riscv: Add T-HEAD C908 compatible
@ 2024-03-05 23:39     ` Guo Ren
  0 siblings, 0 replies; 36+ messages in thread
From: Guo Ren @ 2024-03-05 23:39 UTC (permalink / raw)
  To: Yangyu Chen
  Cc: linux-riscv, Conor Dooley, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel, Conor Dooley

On Wed, Mar 6, 2024 at 5:24 AM Yangyu Chen <cyy@cyyself.name> wrote:
>
> The thead,c908 is a RISC-V CPU core from T-HEAD Semiconductor which used
> in Canaan Kendryte K230 SoC.
>
> Signed-off-by: Yangyu Chen <cyy@cyyself.name>
> Acked-by: Conor Dooley <conor.dooley@microchip.com>
> ---
>  Documentation/devicetree/bindings/riscv/cpus.yaml | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/riscv/cpus.yaml b/Documentation/devicetree/bindings/riscv/cpus.yaml
> index 9d8670c00e3b..e853a7fcee8a 100644
> --- a/Documentation/devicetree/bindings/riscv/cpus.yaml
> +++ b/Documentation/devicetree/bindings/riscv/cpus.yaml
> @@ -47,6 +47,7 @@ properties:
>                - sifive,u74
>                - sifive,u74-mc
>                - thead,c906
> +              - thead,c908
>                - thead,c910
>                - thead,c920
>            - const: riscv
> --
> 2.43.0
>
Reviewed-by: Guo Ren <guoren@kernel.org>

-- 
Best Regards
 Guo Ren

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 5/7] riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210
  2024-03-05 23:38     ` Guo Ren
@ 2024-03-06  8:01       ` Conor Dooley
  -1 siblings, 0 replies; 36+ messages in thread
From: Conor Dooley @ 2024-03-06  8:01 UTC (permalink / raw)
  To: Guo Ren
  Cc: Yangyu Chen, linux-riscv, Conor Dooley, Damien Le Moal,
	Rob Herring, Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt,
	Albert Ou, devicetree, linux-kernel


[-- Attachment #1.1: Type: text/plain, Size: 1382 bytes --]

On Wed, Mar 06, 2024 at 07:38:52AM +0800, Guo Ren wrote:

> On Wed, Mar 6, 2024 at 7:04 AM Yangyu Chen <cyy@cyyself.name> wrote:
> >
> > Since we have Canaan Kendryte K230 with MMU now. The use of SOC_CANAAN
> > is no longer only referred to K210. Split them and add _K210 suffix
> > to the name for old SOC_CANAAN. And allows ARCH_CANAAN to be selected
> > for other Canaan SoCs.
> >
> > Signed-off-by: Yangyu Chen <cyy@cyyself.name>
> > ---
> >  arch/riscv/Kconfig.socs                        | 8 +++++---
> >  arch/riscv/Makefile                            | 2 +-
> >  arch/riscv/configs/nommu_k210_defconfig        | 3 ++-
> >  arch/riscv/configs/nommu_k210_sdcard_defconfig | 3 ++-
> >  drivers/clk/Kconfig                            | 4 ++--
> >  drivers/pinctrl/Kconfig                        | 4 ++--
> >  drivers/reset/Kconfig                          | 4 ++--
> >  drivers/soc/Makefile                           | 2 +-
> >  drivers/soc/canaan/Kconfig                     | 4 ++--
> >  9 files changed, 19 insertions(+), 15 deletions(-)

> This patch cross so many subsystems, I am not sure about it. If I were
> you, I would keep SOC_CANAAN and just add SOC_CANAAN_K230.

Right. That is why I didn't try to rename the symbol, and just left it
as SOC_CANAAN, but if the relevant people ack it, the chances of a
significant conflict are low.


[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

[-- Attachment #2: Type: text/plain, Size: 161 bytes --]

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 5/7] riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210
@ 2024-03-06  8:01       ` Conor Dooley
  0 siblings, 0 replies; 36+ messages in thread
From: Conor Dooley @ 2024-03-06  8:01 UTC (permalink / raw)
  To: Guo Ren
  Cc: Yangyu Chen, linux-riscv, Conor Dooley, Damien Le Moal,
	Rob Herring, Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt,
	Albert Ou, devicetree, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1382 bytes --]

On Wed, Mar 06, 2024 at 07:38:52AM +0800, Guo Ren wrote:

> On Wed, Mar 6, 2024 at 7:04 AM Yangyu Chen <cyy@cyyself.name> wrote:
> >
> > Since we have Canaan Kendryte K230 with MMU now. The use of SOC_CANAAN
> > is no longer only referred to K210. Split them and add _K210 suffix
> > to the name for old SOC_CANAAN. And allows ARCH_CANAAN to be selected
> > for other Canaan SoCs.
> >
> > Signed-off-by: Yangyu Chen <cyy@cyyself.name>
> > ---
> >  arch/riscv/Kconfig.socs                        | 8 +++++---
> >  arch/riscv/Makefile                            | 2 +-
> >  arch/riscv/configs/nommu_k210_defconfig        | 3 ++-
> >  arch/riscv/configs/nommu_k210_sdcard_defconfig | 3 ++-
> >  drivers/clk/Kconfig                            | 4 ++--
> >  drivers/pinctrl/Kconfig                        | 4 ++--
> >  drivers/reset/Kconfig                          | 4 ++--
> >  drivers/soc/Makefile                           | 2 +-
> >  drivers/soc/canaan/Kconfig                     | 4 ++--
> >  9 files changed, 19 insertions(+), 15 deletions(-)

> This patch cross so many subsystems, I am not sure about it. If I were
> you, I would keep SOC_CANAAN and just add SOC_CANAAN_K230.

Right. That is why I didn't try to rename the symbol, and just left it
as SOC_CANAAN, but if the relevant people ack it, the chances of a
significant conflict are low.


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 5/7] riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210
  2024-03-06  8:01       ` Conor Dooley
@ 2024-03-06  8:14         ` Yangyu Chen
  -1 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-06  8:14 UTC (permalink / raw)
  To: Conor Dooley
  Cc: Guo Ren, linux-riscv, Conor Dooley, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel



> On Mar 6, 2024, at 16:01, Conor Dooley <conor.dooley@microchip.com> wrote:
> 
> On Wed, Mar 06, 2024 at 07:38:52AM +0800, Guo Ren wrote:
> 
>> On Wed, Mar 6, 2024 at 7:04 AM Yangyu Chen <cyy@cyyself.name> wrote:
>>> 
>>> Since we have Canaan Kendryte K230 with MMU now. The use of SOC_CANAAN
>>> is no longer only referred to K210. Split them and add _K210 suffix
>>> to the name for old SOC_CANAAN. And allows ARCH_CANAAN to be selected
>>> for other Canaan SoCs.
>>> 
>>> Signed-off-by: Yangyu Chen <cyy@cyyself.name>
>>> ---
>>> arch/riscv/Kconfig.socs                        | 8 +++++---
>>> arch/riscv/Makefile                            | 2 +-
>>> arch/riscv/configs/nommu_k210_defconfig        | 3 ++-
>>> arch/riscv/configs/nommu_k210_sdcard_defconfig | 3 ++-
>>> drivers/clk/Kconfig                            | 4 ++--
>>> drivers/pinctrl/Kconfig                        | 4 ++--
>>> drivers/reset/Kconfig                          | 4 ++--
>>> drivers/soc/Makefile                           | 2 +-
>>> drivers/soc/canaan/Kconfig                     | 4 ++--
>>> 9 files changed, 19 insertions(+), 15 deletions(-)
> 
>> This patch cross so many subsystems, I am not sure about it. If I were
>> you, I would keep SOC_CANAAN and just add SOC_CANAAN_K230.
> 
> Right. That is why I didn't try to rename the symbol, and just left it
> as SOC_CANAAN, but if the relevant people ack it, the chances of a
> significant conflict are low.
> 

Maybe I should split this patch into different subsystems for better
review. I think at least drivers/soc/Makefile should changed to use
ARCH_CANAAN. Because we need some SoC drivers for K230 in the future.
And arch/riscv/Makefile should use SOC_CANAAN_K210 instead of
ARCH_CANAAN.  Because we should avoid the M-Mode loader build for
other Canaan SoCs except for K210.

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 5/7] riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210
@ 2024-03-06  8:14         ` Yangyu Chen
  0 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-06  8:14 UTC (permalink / raw)
  To: Conor Dooley
  Cc: Guo Ren, linux-riscv, Conor Dooley, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel



> On Mar 6, 2024, at 16:01, Conor Dooley <conor.dooley@microchip.com> wrote:
> 
> On Wed, Mar 06, 2024 at 07:38:52AM +0800, Guo Ren wrote:
> 
>> On Wed, Mar 6, 2024 at 7:04 AM Yangyu Chen <cyy@cyyself.name> wrote:
>>> 
>>> Since we have Canaan Kendryte K230 with MMU now. The use of SOC_CANAAN
>>> is no longer only referred to K210. Split them and add _K210 suffix
>>> to the name for old SOC_CANAAN. And allows ARCH_CANAAN to be selected
>>> for other Canaan SoCs.
>>> 
>>> Signed-off-by: Yangyu Chen <cyy@cyyself.name>
>>> ---
>>> arch/riscv/Kconfig.socs                        | 8 +++++---
>>> arch/riscv/Makefile                            | 2 +-
>>> arch/riscv/configs/nommu_k210_defconfig        | 3 ++-
>>> arch/riscv/configs/nommu_k210_sdcard_defconfig | 3 ++-
>>> drivers/clk/Kconfig                            | 4 ++--
>>> drivers/pinctrl/Kconfig                        | 4 ++--
>>> drivers/reset/Kconfig                          | 4 ++--
>>> drivers/soc/Makefile                           | 2 +-
>>> drivers/soc/canaan/Kconfig                     | 4 ++--
>>> 9 files changed, 19 insertions(+), 15 deletions(-)
> 
>> This patch cross so many subsystems, I am not sure about it. If I were
>> you, I would keep SOC_CANAAN and just add SOC_CANAAN_K230.
> 
> Right. That is why I didn't try to rename the symbol, and just left it
> as SOC_CANAAN, but if the relevant people ack it, the chances of a
> significant conflict are low.
> 

Maybe I should split this patch into different subsystems for better
review. I think at least drivers/soc/Makefile should changed to use
ARCH_CANAAN. Because we need some SoC drivers for K230 in the future.
And arch/riscv/Makefile should use SOC_CANAAN_K210 instead of
ARCH_CANAAN.  Because we should avoid the M-Mode loader build for
other Canaan SoCs except for K210.

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 5/7] riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210
  2024-03-06  8:14         ` Yangyu Chen
@ 2024-03-20 17:39           ` Conor Dooley
  -1 siblings, 0 replies; 36+ messages in thread
From: Conor Dooley @ 2024-03-20 17:39 UTC (permalink / raw)
  To: Yangyu Chen
  Cc: Conor Dooley, Guo Ren, linux-riscv, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2541 bytes --]

On Wed, Mar 06, 2024 at 04:14:33PM +0800, Yangyu Chen wrote:
> 
> 
> > On Mar 6, 2024, at 16:01, Conor Dooley <conor.dooley@microchip.com> wrote:
> > 
> > On Wed, Mar 06, 2024 at 07:38:52AM +0800, Guo Ren wrote:
> > 
> >> On Wed, Mar 6, 2024 at 7:04 AM Yangyu Chen <cyy@cyyself.name> wrote:
> >>> 
> >>> Since we have Canaan Kendryte K230 with MMU now. The use of SOC_CANAAN
> >>> is no longer only referred to K210. Split them and add _K210 suffix
> >>> to the name for old SOC_CANAAN. And allows ARCH_CANAAN to be selected
> >>> for other Canaan SoCs.
> >>> 
> >>> Signed-off-by: Yangyu Chen <cyy@cyyself.name>
> >>> ---
> >>> arch/riscv/Kconfig.socs                        | 8 +++++---
> >>> arch/riscv/Makefile                            | 2 +-
> >>> arch/riscv/configs/nommu_k210_defconfig        | 3 ++-
> >>> arch/riscv/configs/nommu_k210_sdcard_defconfig | 3 ++-
> >>> drivers/clk/Kconfig                            | 4 ++--
> >>> drivers/pinctrl/Kconfig                        | 4 ++--
> >>> drivers/reset/Kconfig                          | 4 ++--
> >>> drivers/soc/Makefile                           | 2 +-
> >>> drivers/soc/canaan/Kconfig                     | 4 ++--
> >>> 9 files changed, 19 insertions(+), 15 deletions(-)
> > 
> >> This patch cross so many subsystems, I am not sure about it. If I were
> >> you, I would keep SOC_CANAAN and just add SOC_CANAAN_K230.
> > 
> > Right. That is why I didn't try to rename the symbol, and just left it
> > as SOC_CANAAN, but if the relevant people ack it, the chances of a
> > significant conflict are low.
> > 
> 
> Maybe I should split this patch into different subsystems for better
> review. I think at least drivers/soc/Makefile should changed to use
> ARCH_CANAAN. Because we need some SoC drivers for K230 in the future.
> And arch/riscv/Makefile should use SOC_CANAAN_K210 instead of
> ARCH_CANAAN.  Because we should avoid the M-Mode loader build for
> other Canaan SoCs except for K210.

It seems like what Damien requested is pretty much what's done here.
Can you resend this CCing the maintainers for clk pinctrl and reset?
If you leave a note under the --- line in this patch about wanting acks
to take this via riscv, I don't mind picking up this treewide patch if
the individual maintainers ack it. I don't think there's likely to be a
significant conflict caused by it going through one tree.

I got a k230 board (the canmv one) so I should be able to test this
myself before picking stuff up.

Cheers,
Conor.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 5/7] riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210
@ 2024-03-20 17:39           ` Conor Dooley
  0 siblings, 0 replies; 36+ messages in thread
From: Conor Dooley @ 2024-03-20 17:39 UTC (permalink / raw)
  To: Yangyu Chen
  Cc: Conor Dooley, Guo Ren, linux-riscv, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel


[-- Attachment #1.1: Type: text/plain, Size: 2541 bytes --]

On Wed, Mar 06, 2024 at 04:14:33PM +0800, Yangyu Chen wrote:
> 
> 
> > On Mar 6, 2024, at 16:01, Conor Dooley <conor.dooley@microchip.com> wrote:
> > 
> > On Wed, Mar 06, 2024 at 07:38:52AM +0800, Guo Ren wrote:
> > 
> >> On Wed, Mar 6, 2024 at 7:04 AM Yangyu Chen <cyy@cyyself.name> wrote:
> >>> 
> >>> Since we have Canaan Kendryte K230 with MMU now. The use of SOC_CANAAN
> >>> is no longer only referred to K210. Split them and add _K210 suffix
> >>> to the name for old SOC_CANAAN. And allows ARCH_CANAAN to be selected
> >>> for other Canaan SoCs.
> >>> 
> >>> Signed-off-by: Yangyu Chen <cyy@cyyself.name>
> >>> ---
> >>> arch/riscv/Kconfig.socs                        | 8 +++++---
> >>> arch/riscv/Makefile                            | 2 +-
> >>> arch/riscv/configs/nommu_k210_defconfig        | 3 ++-
> >>> arch/riscv/configs/nommu_k210_sdcard_defconfig | 3 ++-
> >>> drivers/clk/Kconfig                            | 4 ++--
> >>> drivers/pinctrl/Kconfig                        | 4 ++--
> >>> drivers/reset/Kconfig                          | 4 ++--
> >>> drivers/soc/Makefile                           | 2 +-
> >>> drivers/soc/canaan/Kconfig                     | 4 ++--
> >>> 9 files changed, 19 insertions(+), 15 deletions(-)
> > 
> >> This patch cross so many subsystems, I am not sure about it. If I were
> >> you, I would keep SOC_CANAAN and just add SOC_CANAAN_K230.
> > 
> > Right. That is why I didn't try to rename the symbol, and just left it
> > as SOC_CANAAN, but if the relevant people ack it, the chances of a
> > significant conflict are low.
> > 
> 
> Maybe I should split this patch into different subsystems for better
> review. I think at least drivers/soc/Makefile should changed to use
> ARCH_CANAAN. Because we need some SoC drivers for K230 in the future.
> And arch/riscv/Makefile should use SOC_CANAAN_K210 instead of
> ARCH_CANAAN.  Because we should avoid the M-Mode loader build for
> other Canaan SoCs except for K210.

It seems like what Damien requested is pretty much what's done here.
Can you resend this CCing the maintainers for clk pinctrl and reset?
If you leave a note under the --- line in this patch about wanting acks
to take this via riscv, I don't mind picking up this treewide patch if
the individual maintainers ack it. I don't think there's likely to be a
significant conflict caused by it going through one tree.

I got a k230 board (the canmv one) so I should be able to test this
myself before picking stuff up.

Cheers,
Conor.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

[-- Attachment #2: Type: text/plain, Size: 161 bytes --]

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 5/7] riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210
  2024-03-20 17:39           ` Conor Dooley
@ 2024-03-20 18:51             ` Conor Dooley
  -1 siblings, 0 replies; 36+ messages in thread
From: Conor Dooley @ 2024-03-20 18:51 UTC (permalink / raw)
  To: Yangyu Chen
  Cc: Conor Dooley, Guo Ren, linux-riscv, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 639 bytes --]

On Wed, Mar 20, 2024 at 05:39:14PM +0000, Conor Dooley wrote:

> I got a k230 board (the canmv one) so I should be able to test this
> myself before picking stuff up.

I've taken a bit of a look at the "sdk" and appears to be a complete
mess to a non-chinese speaker like me.
I know you linked a copy of opensbi to use with this, but do you also
have a version of U-Boot to use with this that is not riddled with
crap and will compile with a normal toolchain?

I have chanced upon Courmisch's repo that looks significantly more
usable than whatever Canaan have so I guess I will use that:
https://code.videolan.org/Courmisch/k230-boot

:)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 5/7] riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210
@ 2024-03-20 18:51             ` Conor Dooley
  0 siblings, 0 replies; 36+ messages in thread
From: Conor Dooley @ 2024-03-20 18:51 UTC (permalink / raw)
  To: Yangyu Chen
  Cc: Conor Dooley, Guo Ren, linux-riscv, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel


[-- Attachment #1.1: Type: text/plain, Size: 639 bytes --]

On Wed, Mar 20, 2024 at 05:39:14PM +0000, Conor Dooley wrote:

> I got a k230 board (the canmv one) so I should be able to test this
> myself before picking stuff up.

I've taken a bit of a look at the "sdk" and appears to be a complete
mess to a non-chinese speaker like me.
I know you linked a copy of opensbi to use with this, but do you also
have a version of U-Boot to use with this that is not riddled with
crap and will compile with a normal toolchain?

I have chanced upon Courmisch's repo that looks significantly more
usable than whatever Canaan have so I guess I will use that:
https://code.videolan.org/Courmisch/k230-boot

:)

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

[-- Attachment #2: Type: text/plain, Size: 161 bytes --]

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 5/7] riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210
  2024-03-20 18:51             ` Conor Dooley
@ 2024-03-21  2:33               ` Yangyu Chen
  -1 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-21  2:33 UTC (permalink / raw)
  To: Conor Dooley
  Cc: Conor Dooley, Guo Ren, linux-riscv, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel, rabenda.cn



> On Mar 21, 2024, at 02:51, Conor Dooley <conor@kernel.org> wrote:
> 
> On Wed, Mar 20, 2024 at 05:39:14PM +0000, Conor Dooley wrote:
> 
>> I got a k230 board (the canmv one) so I should be able to test this
>> myself before picking stuff up.
> 
> I've taken a bit of a look at the "sdk" and appears to be a complete
> mess to a non-chinese speaker like me.
> I know you linked a copy of opensbi to use with this, but do you also
> have a version of U-Boot to use with this that is not riddled with
> crap and will compile with a normal toolchain?
> 

I don’t have one. But I know Revy (Han Gao) built a u-boot repo
from vendor SDK which is at submodule on
https://github.com/revyos/mkimg-k230 . However, it just apply a huge
diff from vendor SDK to mainline u-boot and can be built from a
standard gcc toolchain.

> I have chanced upon Courmisch's repo that looks significantly more
> usable than whatever Canaan have so I guess I will use that:
> https://code.videolan.org/Courmisch/k230-boot
> 

Thanks for this hint.

> :)


^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v5 5/7] riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210
@ 2024-03-21  2:33               ` Yangyu Chen
  0 siblings, 0 replies; 36+ messages in thread
From: Yangyu Chen @ 2024-03-21  2:33 UTC (permalink / raw)
  To: Conor Dooley
  Cc: Conor Dooley, Guo Ren, linux-riscv, Damien Le Moal, Rob Herring,
	Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	devicetree, linux-kernel, rabenda.cn



> On Mar 21, 2024, at 02:51, Conor Dooley <conor@kernel.org> wrote:
> 
> On Wed, Mar 20, 2024 at 05:39:14PM +0000, Conor Dooley wrote:
> 
>> I got a k230 board (the canmv one) so I should be able to test this
>> myself before picking stuff up.
> 
> I've taken a bit of a look at the "sdk" and appears to be a complete
> mess to a non-chinese speaker like me.
> I know you linked a copy of opensbi to use with this, but do you also
> have a version of U-Boot to use with this that is not riddled with
> crap and will compile with a normal toolchain?
> 

I don’t have one. But I know Revy (Han Gao) built a u-boot repo
from vendor SDK which is at submodule on
https://github.com/revyos/mkimg-k230 . However, it just apply a huge
diff from vendor SDK to mainline u-boot and can be built from a
standard gcc toolchain.

> I have chanced upon Courmisch's repo that looks significantly more
> usable than whatever Canaan have so I guess I will use that:
> https://code.videolan.org/Courmisch/k230-boot
> 

Thanks for this hint.

> :)


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2024-03-21  2:34 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-05 20:01 [PATCH v5 0/7] riscv: add initial support for Canaan Kendryte K230 Yangyu Chen
2024-03-05 20:01 ` Yangyu Chen
2024-03-05 20:02 ` [PATCH v5 1/7] dt-bindings: riscv: Add T-HEAD C908 compatible Yangyu Chen
2024-03-05 20:02   ` Yangyu Chen
2024-03-05 23:39   ` Guo Ren
2024-03-05 23:39     ` Guo Ren
2024-03-05 20:02 ` [PATCH v5 2/7] dt-bindings: add Canaan K230 boards compatible strings Yangyu Chen
2024-03-05 20:02   ` Yangyu Chen
2024-03-05 20:02 ` [PATCH v5 3/7] dt-bindings: timer: Add Canaan K230 CLINT Yangyu Chen
2024-03-05 20:02   ` Yangyu Chen
2024-03-05 23:32   ` Guo Ren
2024-03-05 23:32     ` Guo Ren
2024-03-05 20:02 ` [PATCH v5 4/7] dt-bindings: interrupt-controller: Add Canaan K230 PLIC Yangyu Chen
2024-03-05 20:02   ` Yangyu Chen
2024-03-05 23:39   ` Guo Ren
2024-03-05 23:39     ` Guo Ren
2024-03-05 20:03 ` [PATCH v5 5/7] riscv: Kconfig.socs: Split ARCH_CANAAN and SOC_CANAAN_K210 Yangyu Chen
2024-03-05 20:03   ` Yangyu Chen
2024-03-05 23:38   ` Guo Ren
2024-03-05 23:38     ` Guo Ren
2024-03-06  8:01     ` Conor Dooley
2024-03-06  8:01       ` Conor Dooley
2024-03-06  8:14       ` Yangyu Chen
2024-03-06  8:14         ` Yangyu Chen
2024-03-20 17:39         ` Conor Dooley
2024-03-20 17:39           ` Conor Dooley
2024-03-20 18:51           ` Conor Dooley
2024-03-20 18:51             ` Conor Dooley
2024-03-21  2:33             ` Yangyu Chen
2024-03-21  2:33               ` Yangyu Chen
2024-03-05 20:03 ` [PATCH v5 6/7] riscv: dts: add initial canmv-k230 and k230-evb dts Yangyu Chen
2024-03-05 20:03   ` Yangyu Chen
2024-03-05 20:03 ` [PATCH v5 7/7] riscv: config: enable ARCH_CANAAN in defconfig Yangyu Chen
2024-03-05 20:03   ` Yangyu Chen
2024-03-05 23:32   ` Guo Ren
2024-03-05 23:32     ` Guo Ren

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.