[PATCH v2 4/4] riscv: dts: starfive: jhb100: Add JHB100 base DT
Changhuang Liang
changhuang.liang at starfivetech.com
Thu May 7 02:05:44 PDT 2026
Hi, Conor
Thanks for the review.
> On Wed, May 06, 2026 at 01:59:37AM -0700, Changhuang Liang wrote:
> > From: Ley Foon Tan <leyfoon.tan at starfivetech.com>
> >
> > Add JHB100 base dtsi and dts. Consist of 4 Dubhe-70 cores, CLINT,
> > PLIC, PMU, UART, INTC and 1GB DDR.
> >
> > Signed-off-by: Ley Foon Tan <leyfoon.tan at starfivetech.com>
> > Signed-off-by: Changhuang Liang <changhuang.liang at starfivetech.com>
[...]
> > + cpus {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + cpu0: cpu at 0 {
> > + compatible = "starfive,dubhe-70", "riscv";
> > + reg = <0x0>;
>
> > + riscv,isa = "rv64imafdcbh";
>
> Please just remove this property.
>
> > + riscv,isa-base = "rv64i";
> > + riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "h", "zba",
> "zbb",
> > + "zbc", "zbs", "zicbom", "zicbop", "zicboz",
> "zicntr",
> > + "zicond", "zicsr", "zifencei", "zihintpause",
> > + "zihpm", "svinval", "svnapot", "sscofpmf";
> > + riscv,cbom-block-size = <64>;
> > + riscv,cbop-block-size = <64>;
> > + riscv,cboz-block-size = <64>;
> > + d-cache-block-size = <64>;
> > + d-cache-sets = <512>;
> > + d-cache-size = <32768>;
> > + d-tlb-sets = <1>;
> > + d-tlb-size = <16>;
> > + device_type = "cpu";
> > + i-cache-block-size = <64>;
> > + i-cache-sets = <512>;
> > + i-cache-size = <32768>;
> > + i-tlb-sets = <1>;
> > + i-tlb-size = <24>;
> > + mmu-type = "riscv,sv48";
> > + next-level-cache = <&l2c0>;
> > + tlb-split;
> > +
> > + cpu0_intc: interrupt-controller {
> > + compatible = "riscv,cpu-intc";
> > + interrupt-controller;
> > + #interrupt-cells = <1>;
> > + };
> > + };
>
> > + cpu-map {
> > + cluster0 {
> > + core0 {
> > + cpu = <&cpu0>;
> > + };
> > + };
>
> Each cpu is in a different cluster? Interesting, suppose it makes sense when
> you have different l2 caches. What other resources are not shared?
> Do they have different cpu clocks too etc?
There are no other shared resources, except for the L3 cache.
>
> > +
> > + cluster1 {
> > + core0 {
> > + cpu = <&cpu1>;
> > + };
> > + };
> > +
> > + cluster2 {
> > + core0 {
> > + cpu = <&cpu2>;
> > + };
> > + };
> > +
> > + cluster3 {
> > + core0 {
> > + cpu = <&cpu3>;
> > + };
> > + };
> > + };
> > +
> > + l2c0: cache-controller-0 {
> > + compatible = "cache";
> > + cache-block-size = <64>;
> > + cache-level = <2>;
> > + cache-sets = <2048>;
> > + cache-size = <0x20000>;
> > + cache-unified;
> > + next-level-cache = <&l3_cache>;
> > + };
> > +
> > + l2c1: cache-controller-1 {
> > + compatible = "cache";
> > + cache-block-size = <64>;
> > + cache-level = <2>;
> > + cache-sets = <2048>;
> > + cache-size = <0x20000>;
> > + cache-unified;
> > + next-level-cache = <&l3_cache>;
> > + };
> > +
> > + l2c2: cache-controller-2 {
> > + compatible = "cache";
> > + cache-block-size = <64>;
> > + cache-level = <2>;
> > + cache-sets = <2048>;
> > + cache-size = <0x20000>;
> > + cache-unified;
> > + next-level-cache = <&l3_cache>;
> > + };
> > +
> > + l2c3: cache-controller-3 {
> > + compatible = "cache";
> > + cache-block-size = <64>;
> > + cache-level = <2>;
> > + cache-sets = <2048>;
> > + cache-size = <0x20000>;
> > + cache-unified;
> > + next-level-cache = <&l3_cache>;
> > + };
> > +
> > + l3_cache: cache-controller-4 {
> > + compatible = "cache";
> > + cache-block-size = <64>;
> > + cache-level = <3>;
> > + cache-sets = <1024>;
> > + cache-size = <0x20000>;
> > + cache-unified;
> > + };
> > + };
>
> > + clk_uart: clock-25000000 {
> > + compatible = "fixed-clock"; /* Initial clock handler for UART */
>
> What does this comment mean?
Here it's just a temporary clock; it will be replaced by the clock driver later.
Best Regards,
Changhuang
More information about the linux-riscv
mailing list