Re: [PATCH v14 6/8] arm64: dts: Add AMD Pensando Elba SoC support

From: Geert Uytterhoeven
Date: Wed May 31 2023 - 09:16:20 EST


Hi Brad,

On Wed, May 31, 2023 at 12:04 AM Brad Larson <blarson@xxxxxxx> wrote:
> On Wed, May 24, 2023 at 13:52 Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
> > On Tue, May 23, 2023 at 9:30 PM Brad Larson <blarson@xxxxxxx> wrote:
> >> On 5/16/23 09:54, Michal Simek wrote:
> >> > On 5/15/23 20:16, Brad Larson wrote:
> >> >> + */
> >> >> +
> >> >> +/ {
> >> >> + cpus {
> >> >> + #address-cells = <2>;
> >> >> + #size-cells = <0>;
> >> >> +
> >> >> + cpu-map {
> >> >> + cluster0 {
> >> >> + core0 { cpu = <&cpu0>; };
> >> >> + core1 { cpu = <&cpu1>; };
> >> >> + core2 { cpu = <&cpu2>; };
> >> >> + core3 { cpu = <&cpu3>; };
> >> >> + };
> >> >> +
> >> >> + cluster1 {
> >> >> + core0 { cpu = <&cpu4>; };
> >> >> + core1 { cpu = <&cpu5>; };
> >> >> + core2 { cpu = <&cpu6>; };
> >> >> + core3 { cpu = <&cpu7>; };
> >> >> + };
> >> >> +
> >> >> + cluster2 {
> >> >> + core0 { cpu = <&cpu8>; };
> >> >> + core1 { cpu = <&cpu9>; };
> >> >> + core2 { cpu = <&cpu10>; };
> >> >> + core3 { cpu = <&cpu11>; };
> >> >> + };
> >> >> +
> >> >> + cluster3 {
> >> >> + core0 { cpu = <&cpu12>; };
> >> >> + core1 { cpu = <&cpu13>; };
> >> >> + core2 { cpu = <&cpu14>; };
> >> >> + core3 { cpu = <&cpu15>; };
> >> >> + };
> >> >> + };
> >> >> +
> >> >> + /* CLUSTER 0 */
> >> >> + cpu0: cpu@0 {
> >> >> + device_type = "cpu";
> >> >> + compatible = "arm,cortex-a72";
> >> >> + reg = <0 0x0>;
> >> >
> >> > Do you really need 2/0 split here. The first cell is 0 anyway.
> >>
> >> Yes following 64-bit system definition
> >
> > You mean for the 64-bit main address space?
> > The CPU address space under /cpus is unrelated.
>
> Yes, the reg prop for this node is CPU/threads per dt spec. Checked the history and
> the Elba dt was derived from socionext for these nodes and this is how those device
> trees are configured along with over a dozen other devices. I changed to
> address-cells = <1> and dropped the leading zero from all cpu* reg<> and booting
> the system I'm observing no change. Looking in drivers/of I'm not seeing where
> cpu*/reg is read and used, any recommendation?

drivers/of/cpu.c

Looks like there are lots of DTS files that use #address-cells = <2> for
CPU nodes :-(

git grep -w -A1 cpus -- "*dts*" | grep address-cells | grep "<2>"

I would use <1> is the first cell is always zero...

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds