diff --git a/dts/README.md b/dts/README.md index 0575f8a..7257e23 100644 --- a/dts/README.md +++ b/dts/README.md @@ -103,11 +103,13 @@ UARTLITE and PLIC settings. Generated multi-hart templates reserve the fixed 131 MiB checkpoint window `[0x80300000, 0x88600000)`. The full capability block describes XiangShan hardware and is not fully -emulated by the current QEMU `nemu` machine. In particular, DT-advertised -`smrnmi` requires an OpenSBI platform `smrnmi_handlers_init` callback, while -the `nemu` timer path cannot execute the DT-advertised `sstc` CSR sequence. -The current multi-core DTB must omit `smrnmi` and `sstc` and run with -`sstc=false`. +supported by the current OpenSBI generic platform and QEMU `nemu` machine. +DT-advertised `smrnmi` requires an OpenSBI platform +`smrnmi_handlers_init` callback, which the generic platform does not provide. +All single-hart and multi-hart DTBs used with the generic platform must omit +`smrnmi`. In addition, the current multi-core `nemu` timer path cannot execute +the DT-advertised `sstc` CSR sequence, so multi-core DTBs must omit `sstc` and +run with `sstc=false`. The build does not invoke this generator automatically. Run it and review the result before building with the corresponding `HARTS` value. diff --git a/dts/xiangshan-fpga-AIA-mem16g.dts.in b/dts/xiangshan-fpga-AIA-mem16g.dts.in index 2e405a9..645c8d4 100644 --- a/dts/xiangshan-fpga-AIA-mem16g.dts.in +++ b/dts/xiangshan-fpga-AIA-mem16g.dts.in @@ -48,7 +48,7 @@ "sdtrig", "sha", "shcounterenw", "shgatpa", "shlcofideleg", "shtvala", "shvsatpa", "shvstvala", "shvstvecd", "smaia", "smcsrind", "smdbltrp", - "smmpm", "smnpm", "smrnmi", "smstateen", + "smmpm", "smnpm", "smstateen", "ss1p13", "ssaia", "ssccptr", "sscofpmf", "sscounterenw", "sscsrind", "ssdbltrp", "ssnpm", "sspm", "ssstateen", "ssstrict", "sstc", diff --git a/dts/xiangshan-fpga-noAIA-mem128g-novec.dts.in b/dts/xiangshan-fpga-noAIA-mem128g-novec.dts.in index f4d7498..1d0ec4b 100644 --- a/dts/xiangshan-fpga-noAIA-mem128g-novec.dts.in +++ b/dts/xiangshan-fpga-noAIA-mem128g-novec.dts.in @@ -50,7 +50,7 @@ "sdtrig", "sha", "shcounterenw", "shgatpa", "shlcofideleg", "shtvala", "shvsatpa", "shvstvala", "shvstvecd", "smcsrind", "smdbltrp", - "smmpm", "smnpm", "smrnmi", "smstateen", + "smmpm", "smnpm", "smstateen", "ss1p13", "ssccptr", "sscofpmf", "sscounterenw", "sscsrind", "ssdbltrp", "ssnpm", "sspm", "ssstateen", "ssstrict", "sstc", diff --git a/dts/xiangshan-fpga-noAIA-mem24g-novec.dts.in b/dts/xiangshan-fpga-noAIA-mem24g-novec.dts.in index 0a49655..2eba3df 100644 --- a/dts/xiangshan-fpga-noAIA-mem24g-novec.dts.in +++ b/dts/xiangshan-fpga-noAIA-mem24g-novec.dts.in @@ -50,7 +50,7 @@ "sdtrig", "sha", "shcounterenw", "shgatpa", "shlcofideleg", "shtvala", "shvsatpa", "shvstvala", "shvstvecd", "smcsrind", "smdbltrp", - "smmpm", "smnpm", "smrnmi", "smstateen", + "smmpm", "smnpm", "smstateen", "ss1p13", "ssccptr", "sscofpmf", "sscounterenw", "sscsrind", "ssdbltrp", "ssnpm", "sspm", "ssstateen", "ssstrict", "sstc", diff --git a/dts/xiangshan-fpga-noAIA-mem24g.dts.in b/dts/xiangshan-fpga-noAIA-mem24g.dts.in index 74e3688..86c23e0 100644 --- a/dts/xiangshan-fpga-noAIA-mem24g.dts.in +++ b/dts/xiangshan-fpga-noAIA-mem24g.dts.in @@ -50,7 +50,7 @@ "sdtrig", "sha", "shcounterenw", "shgatpa", "shlcofideleg", "shtvala", "shvsatpa", "shvstvala", "shvstvecd", "smcsrind", "smdbltrp", - "smmpm", "smnpm", "smrnmi", "smstateen", + "smmpm", "smnpm", "smstateen", "ss1p13", "ssccptr", "sscofpmf", "sscounterenw", "sscsrind", "ssdbltrp", "ssnpm", "sspm", "ssstateen", "ssstrict", "sstc", diff --git a/dts/xiangshan-fpga-noAIA-mem64g-novec.dts.in b/dts/xiangshan-fpga-noAIA-mem64g-novec.dts.in index 910c148..c0ffac4 100644 --- a/dts/xiangshan-fpga-noAIA-mem64g-novec.dts.in +++ b/dts/xiangshan-fpga-noAIA-mem64g-novec.dts.in @@ -50,7 +50,7 @@ "sdtrig", "sha", "shcounterenw", "shgatpa", "shlcofideleg", "shtvala", "shvsatpa", "shvstvala", "shvstvecd", "smcsrind", "smdbltrp", - "smmpm", "smnpm", "smrnmi", "smstateen", + "smmpm", "smnpm", "smstateen", "ss1p13", "ssccptr", "sscofpmf", "sscounterenw", "sscsrind", "ssdbltrp", "ssnpm", "sspm", "ssstateen", "ssstrict", "sstc", diff --git a/dts/xiangshan-fpga-noAIA-mem64g.dts.in b/dts/xiangshan-fpga-noAIA-mem64g.dts.in index 9d866bc..89bdaf9 100644 --- a/dts/xiangshan-fpga-noAIA-mem64g.dts.in +++ b/dts/xiangshan-fpga-noAIA-mem64g.dts.in @@ -50,7 +50,7 @@ "sdtrig", "sha", "shcounterenw", "shgatpa", "shlcofideleg", "shtvala", "shvsatpa", "shvstvala", "shvstvecd", "smcsrind", "smdbltrp", - "smmpm", "smnpm", "smrnmi", "smstateen", + "smmpm", "smnpm", "smstateen", "ss1p13", "ssccptr", "sscofpmf", "sscounterenw", "sscsrind", "ssdbltrp", "ssnpm", "sspm", "ssstateen", "ssstrict", "sstc", diff --git a/dts/xiangshan-fpga-noAIA-mem8g-novec.dts.in b/dts/xiangshan-fpga-noAIA-mem8g-novec.dts.in index ef92f24..47e4a5d 100644 --- a/dts/xiangshan-fpga-noAIA-mem8g-novec.dts.in +++ b/dts/xiangshan-fpga-noAIA-mem8g-novec.dts.in @@ -50,7 +50,7 @@ "sdtrig", "sha", "shcounterenw", "shgatpa", "shlcofideleg", "shtvala", "shvsatpa", "shvstvala", "shvstvecd", "smcsrind", "smdbltrp", - "smmpm", "smnpm", "smrnmi", "smstateen", + "smmpm", "smnpm", "smstateen", "ss1p13", "ssccptr", "sscofpmf", "sscounterenw", "sscsrind", "ssdbltrp", "ssnpm", "sspm", "ssstateen", "ssstrict", "sstc", diff --git a/dts/xiangshan-fpga-noAIA-mem8g.dts.in b/dts/xiangshan-fpga-noAIA-mem8g.dts.in index 2a79165..944df7d 100644 --- a/dts/xiangshan-fpga-noAIA-mem8g.dts.in +++ b/dts/xiangshan-fpga-noAIA-mem8g.dts.in @@ -50,7 +50,7 @@ "sdtrig", "sha", "shcounterenw", "shgatpa", "shlcofideleg", "shtvala", "shvsatpa", "shvstvala", "shvstvecd", "smcsrind", "smdbltrp", - "smmpm", "smnpm", "smrnmi", "smstateen", + "smmpm", "smnpm", "smstateen", "ss1p13", "ssccptr", "sscofpmf", "sscounterenw", "sscsrind", "ssdbltrp", "ssnpm", "sspm", "ssstateen", "ssstrict", "sstc", diff --git a/dts/xiangshan-fpga-noAIA-novec.dts.in b/dts/xiangshan-fpga-noAIA-novec.dts.in index 02e5682..e36412c 100644 --- a/dts/xiangshan-fpga-noAIA-novec.dts.in +++ b/dts/xiangshan-fpga-noAIA-novec.dts.in @@ -50,7 +50,7 @@ "sdtrig", "sha", "shcounterenw", "shgatpa", "shlcofideleg", "shtvala", "shvsatpa", "shvstvala", "shvstvecd", "smcsrind", "smdbltrp", - "smmpm", "smnpm", "smrnmi", "smstateen", + "smmpm", "smnpm", "smstateen", "ss1p13", "ssccptr", "sscofpmf", "sscounterenw", "sscsrind", "ssdbltrp", "ssnpm", "sspm", "ssstateen", "ssstrict", "sstc", diff --git a/dts/xiangshan-fpga-noAIA.dts.in b/dts/xiangshan-fpga-noAIA.dts.in index bb26306..ac3b26b 100644 --- a/dts/xiangshan-fpga-noAIA.dts.in +++ b/dts/xiangshan-fpga-noAIA.dts.in @@ -50,7 +50,7 @@ "sdtrig", "sha", "shcounterenw", "shgatpa", "shlcofideleg", "shtvala", "shvsatpa", "shvstvala", "shvstvecd", "smcsrind", "smdbltrp", - "smmpm", "smnpm", "smrnmi", "smstateen", + "smmpm", "smnpm", "smstateen", "ss1p13", "ssccptr", "sscofpmf", "sscounterenw", "sscsrind", "ssdbltrp", "ssnpm", "sspm", "ssstateen", "ssstrict", "sstc",