[PATCH v3 17/20] arm64: dts: google: Add initial Google gs101 SoC support
Peter Griffin
peter.griffin at linaro.org
Fri Nov 24 15:22:32 PST 2023
Hi Krzysztof,
On Thu, 12 Oct 2023 at 07:40, Krzysztof Kozlowski
<krzysztof.kozlowski at linaro.org> wrote:
>
> On 11/10/2023 20:48, Peter Griffin wrote:
>
> ...
>
> > diff --git a/arch/arm64/boot/dts/google/gs101.dtsi b/arch/arm64/boot/dts/google/gs101.dtsi
> > new file mode 100644
> > index 000000000000..37fb0a4dc8d3
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/google/gs101.dtsi
> > @@ -0,0 +1,504 @@
> > +// SPDX-License-Identifier: GPL-2.0-only
> > +/*
> > + * GS101 SoC
> > + *
> > + * Copyright 2019-2023 Google LLC
> > + *
> > + */
> > +
> > +#include <dt-bindings/clock/google,gs101.h>
> > +#include <dt-bindings/gpio/gpio.h>
> > +#include <dt-bindings/interrupt-controller/arm-gic.h>
> > +
> > +/ {
> > + compatible = "google,gs101";
> > + #address-cells = <2>;
> > + #size-cells = <1>;
> > +
> > + interrupt-parent = <&gic>;
> > +
> > + aliases {
> > + pinctrl0 = &pinctrl_0;
> > + pinctrl1 = &pinctrl_1;
> > + pinctrl2 = &pinctrl_2;
> > + pinctrl3 = &pinctrl_3;
> > + pinctrl4 = &pinctrl_4;
> > + pinctrl5 = &pinctrl_5;
> > + pinctrl6 = &pinctrl_6;
> > + pinctrl7 = &pinctrl_7;
> > + serial0 = &serial_0;
> > + };
> > +
> > + arm-pmu {
>
> pmu-0
will fix
>
> > + compatible = "arm,armv8-pmuv3";
> > + interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
> > + };
> > +
> > + dsu-pmu-0 {
>
> pmu-1
will fix
>
>
> > + compatible = "arm,dsu-pmu";
> > + interrupts = <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>;
> > + cpus = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>,
> > + <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>;
> > + };
> > +
> > + /* TODO replace with CCF clock */
> > + dummy_clk: oscillator {
> > + compatible = "fixed-clock";
> > + #clock-cells = <0>;
> > + clock-frequency = <12345>;
> > + clock-output-names = "pclk";
> > + };
> > +
> > + 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>;
> > + };
> > + };
> > +
> > + cluster2 {
> > + core0 {
> > + cpu = <&cpu6>;
> > + };
> > + core1 {
> > + cpu = <&cpu7>;
> > + };
> > + };
> > + };
> > +
> > + cpu0: cpu at 0 {
> > + device_type = "cpu";
> > + compatible = "arm,armv8";
> > + reg = <0x0 0x0000>;
> > + enable-method = "psci";
> > + cpu-idle-states = <&ANANKE_CPU_SLEEP>;
> > + capacity-dmips-mhz = <250>;
> > + dynamic-power-coefficient = <70>;
> > + };
> > +
> > + cpu1: cpu at 100 {
> > + device_type = "cpu";
> > + compatible = "arm,armv8";
> > + reg = <0x0 0x0100>;
> > + enable-method = "psci";
> > + cpu-idle-states = <&ANANKE_CPU_SLEEP>;
> > + capacity-dmips-mhz = <250>;
> > + dynamic-power-coefficient = <70>;
> > + };
> > +
> > + cpu2: cpu at 200 {
> > + device_type = "cpu";
> > + compatible = "arm,armv8";
> > + reg = <0x0 0x0200>;
> > + enable-method = "psci";
> > + cpu-idle-states = <&ANANKE_CPU_SLEEP>;
> > + capacity-dmips-mhz = <250>;
> > + dynamic-power-coefficient = <70>;
> > + };
> > +
> > + cpu3: cpu at 300 {
> > + device_type = "cpu";
> > + compatible = "arm,armv8";
> > + reg = <0x0 0x0300>;
> > + enable-method = "psci";
> > + cpu-idle-states = <&ANANKE_CPU_SLEEP>;
> > + capacity-dmips-mhz = <250>;
> > + dynamic-power-coefficient = <70>;
> > + };
> > +
> > + cpu4: cpu at 400 {
> > + device_type = "cpu";
> > + compatible = "arm,armv8";
> > + reg = <0x0 0x0400>;
> > + enable-method = "psci";
> > + cpu-idle-states = <&ENYO_CPU_SLEEP>;
> > + capacity-dmips-mhz = <620>;
> > + dynamic-power-coefficient = <284>;
> > + };
> > +
> > + cpu5: cpu at 500 {
> > + device_type = "cpu";
> > + compatible = "arm,armv8";
> > + reg = <0x0 0x0500>;
> > + enable-method = "psci";
> > + cpu-idle-states = <&ENYO_CPU_SLEEP>;
> > + capacity-dmips-mhz = <620>;
> > + dynamic-power-coefficient = <284>;
> > + };
> > +
> > + cpu6: cpu at 600 {
> > + device_type = "cpu";
> > + compatible = "arm,armv8";
> > + reg = <0x0 0x0600>;
> > + enable-method = "psci";
> > + cpu-idle-states = <&HERA_CPU_SLEEP>;
> > + capacity-dmips-mhz = <1024>;
> > + dynamic-power-coefficient = <650>;
> > + };
> > +
> > + cpu7: cpu at 700 {
> > + device_type = "cpu";
> > + compatible = "arm,armv8";
> > + reg = <0x0 0x0700>;
> > + enable-method = "psci";
> > + cpu-idle-states = <&HERA_CPU_SLEEP>;
> > + capacity-dmips-mhz = <1024>;
> > + dynamic-power-coefficient = <650>;
> > + };
> > +
> > + idle-states {
> > + entry-method = "psci";
> > +
> > + ANANKE_CPU_SLEEP: cpu-ananke-sleep {
> > + idle-state-name = "c2";
> > + compatible = "arm,idle-state";
> > + arm,psci-suspend-param = <0x0010000>;
> > + entry-latency-us = <70>;
> > + exit-latency-us = <160>;
> > + min-residency-us = <2000>;
> > + };
> > +
> > + ENYO_CPU_SLEEP: cpu-enyo-sleep {
> > + idle-state-name = "c2";
> > + compatible = "arm,idle-state";
> > + arm,psci-suspend-param = <0x0010000>;
> > + entry-latency-us = <150>;
> > + exit-latency-us = <190>;
> > + min-residency-us = <2500>;
> > + };
> > +
> > + HERA_CPU_SLEEP: cpu-hera-sleep {
> > + idle-state-name = "c2";
> > + compatible = "arm,idle-state";
> > + arm,psci-suspend-param = <0x0010000>;
> > + entry-latency-us = <235>;
> > + exit-latency-us = <220>;
> > + min-residency-us = <3500>;
> > + };
> > + };
> > + };
> > +
> > + /* bootloader requires ect node */
> > + ect {
>
> This needs bindings.
I experimented a bit more and the minimum I need is an empty dt node
called ect, otherwise the bootloader will boot loop and we can't boot
the kernel
[ 2.977870] [E] [BOOT] fdt /ect path not found -1
Apart from a comment indicating that the bootloader requires this
empty ect dt node, what other bindings documentation would you like to
see? Something in google.yaml?
>
> > + parameter_address = <0x90000000>;
>
> No underscores in property names. Use hyphen.
>
> > + parameter_size = <0x53000>;
>
> No underscores.
Fortunately I can remove parameter_address and parameter_size and
still boot, so I will remove these in the next version.
Thanks,
Peter.
More information about the linux-arm-kernel
mailing list