[PATCH] docs/platform: thead-c9xx: Improve the documentation

guoren at kernel.org guoren at kernel.org
Tue Aug 8 06:29:58 PDT 2023


From: Guo Ren <guoren at linux.alibaba.com>

Add detailed information about thead,reset-sample driver, and improve
usage documentation.

Signed-off-by: Guo Ren <guoren at linux.alibaba.com>
Signed-off-by: Guo Ren <guoren at kernel.org>
---
 docs/platform/thead-c9xx.md | 87 ++++++++++++++++++++++++++++---------
 1 file changed, 67 insertions(+), 20 deletions(-)

diff --git a/docs/platform/thead-c9xx.md b/docs/platform/thead-c9xx.md
index 8bb9e91f1a9b..fe05fc5bb85a 100644
--- a/docs/platform/thead-c9xx.md
+++ b/docs/platform/thead-c9xx.md
@@ -1,8 +1,8 @@
-T-HEAD C9xx Series Processors
-=============================
+T-HEAD Processors
+=================
 
-The **C9xx** series processors are high-performance RISC-V architecture
-multi-core processors with AI vector acceleration engine.
+T-HEAD provides high-performance RISC-V architecture multi-core
+processors with AI vector acceleration engine.
 
 For more details, refer [T-HEAD.CN](https://www.t-head.cn/)
 
@@ -12,15 +12,75 @@ To build the platform-specific library and firmware images, provide the
 Platform Options
 ----------------
 
-The *T-HEAD C9xx* does not have any platform-specific compile options
+The *T-HEAD CPU* does not have any platform-specific compile options
 because it uses generic platform.
 
 ```
 CROSS_COMPILE=riscv64-linux-gnu- PLATFORM=generic /usr/bin/make
 ```
 
-The *T-HEAD C9xx* DTB provided to OpenSBI generic firmwares will usually have
-"riscv,clint0", "riscv,plic0", "thead,reset-sample" compatible strings.
+The *T-HEAD CPU* DTB provided to OpenSBI generic firmwares will usually have
+"thead,reset-sample" compatible strings. The "thead,reset-sample" is a T-HEAD
+custom driver for the SMP system bootup; the single-core system doesn't need
+it.
+
+T-HEAD Fdt Reset Driver Introduction
+------------------------------------
+
+Every T-HEAD CPU provides a reset control signal and reset address signals.
+ - Reset address signal determines CPU where to start up.
+ - Reset control signal releases CPU from reset state and begins to execute
+   at reset address.
+
+Many vendors would gather these signals into SoC control registers. These
+register designs are similar but with different base addresses and bits
+definitions. We only provide standard opensbi, Linux binaries, and jtag gdbinit
+script to simplify Linux booting at the FPGA stage. The fdt reset driver helps
+users bring up their SMP system quickly with the below settings:
+
+ - entry-reg:
+	The base address to store reset address value
+
+ - entry-cnt:
+	The numbers of entry-reg, all of them set the same reset address
+
+ - control-reg:
+	The base address to reset the controller
+
+ - control-val:
+	Write which bits of control-reg for booting
+
+ - csr-copy:
+	This array determines which csrs to copy from primary hart to the
+	secondary harts, which are set in sequence from left to right. The
+	secondary harts should keep the same setting as the primary hart.
+	These settings are also the first part of the bootup instructions
+	for secondary harts.
+
+ - using-csr-reset:
+	A legacy reset controller for the SMP system, but abandoned in the
+	latest T-HEAD processors.
+
+Here is the dts example:
+```
+	reset: reset-sample {
+		compatible = "thead,reset-sample";
+		entry-reg = <0xff 0xff019050>;
+		entry-cnt = <4>;
+		control-reg = <0xff 0xff015004>;
+		control-val = <0x1c>;
+		csr-copy = <0x7f3 0x7c0 0x7c1 0x7c2 0x7c3 0x7c5 0x7cc>;
+	};
+```
+
+Legacy dts example (Abandoned):
+```
+	reset: reset-sample {
+		compatible = "thead,reset-sample";
+		using-csr-reset;
+		csr-copy = <0x7f3 0x7c0 0x7c1 0x7c2 0x7c3 0x7c5 0x7cc>;
+	};
+```
 
 DTS Example1: (Single core, eg: Allwinner D1 - c906)
 ----------------------------------------------------
@@ -181,16 +241,3 @@ DTS Example2: (Multi cores with soc reset-regs)
 		};
 	}
 ```
-
-DTS Example2: (Multi cores with old reset csrs)
------------------------------------------------
-```
-	reset: reset-sample {
-		compatible = "thead,reset-sample";
-		using-csr-reset;
-		csr-copy = <0x7c0 0x7c1 0x7c2 0x7c3 0x7c5 0x7cc
-			    0x3b0 0x3b1 0x3b2 0x3b3
-			    0x3b4 0x3b5 0x3b6 0x3b7
-			    0x3a0>;
-	};
-```
-- 
2.36.1




More information about the opensbi mailing list