Message ID | 20190411105720.32357-5-peron.clem@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add Allwinner H6 Mali Midgard GPU | expand |
Dne četrtek, 11. april 2019 ob 12:57:16 CEST je Clément Péron napisal(a): > Add the mali gpu node to the H6 device-tree. > > Signed-off-by: Clément Péron <peron.clem@gmail.com> > --- > arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi index > e0dc4a05c1ba..196753110434 100644 > --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > @@ -157,6 +157,20 @@ > allwinner,sram = <&ve_sram 1>; > }; > > + gpu: gpu@1800000 { > + compatible = "allwinner,sun50i-h6-mali", > + "arm,mali-t720"; > + reg = <0x01800000 0x4000>; > + interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "job", "mmu", "gpu"; > + clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>; > + clock-names = "core", "bus"; > + resets = <&ccu RST_BUS_GPU>; > + status = "disabled"; Usually self sufficient peripherals are enabled by default in DTSI. > + }; > + > syscon: syscon@3000000 { > compatible = "allwinner,sun50i-h6-system- control", > "allwinner,sun50i-a64- system-control";
Hi, On Thu, 11 Apr 2019 at 17:05, Jernej Škrabec <jernej.skrabec@siol.net> wrote: > > Dne četrtek, 11. april 2019 ob 12:57:16 CEST je Clément Péron napisal(a): > > Add the mali gpu node to the H6 device-tree. > > > > Signed-off-by: Clément Péron <peron.clem@gmail.com> > > --- > > arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 14 ++++++++++++++ > > 1 file changed, 14 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi index > > e0dc4a05c1ba..196753110434 100644 > > --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > @@ -157,6 +157,20 @@ > > allwinner,sram = <&ve_sram 1>; > > }; > > > > + gpu: gpu@1800000 { > > + compatible = "allwinner,sun50i-h6-mali", > > + "arm,mali-t720"; > > + reg = <0x01800000 0x4000>; > > + interrupts = <GIC_SPI 84 > IRQ_TYPE_LEVEL_HIGH>, > > + <GIC_SPI 85 > IRQ_TYPE_LEVEL_HIGH>, > > + <GIC_SPI 83 > IRQ_TYPE_LEVEL_HIGH>; > > + interrupt-names = "job", "mmu", "gpu"; > > + clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>; > > + clock-names = "core", "bus"; > > + resets = <&ccu RST_BUS_GPU>; > > + status = "disabled"; > > Usually self sufficient peripherals are enabled by default in DTSI. I follow the other Mali Midgard (rk3399, rk3288) syntax. But I think you're right here, will go for an update I think. Clement > > > + }; > > + > > syscon: syscon@3000000 { > > compatible = "allwinner,sun50i-h6-system- > control", > > "allwinner,sun50i-a64- > system-control"; > > > >
Dne četrtek, 11. april 2019 ob 17:20:04 CEST je Clément Péron napisal(a): > Hi, > > On Thu, 11 Apr 2019 at 17:05, Jernej Škrabec <jernej.skrabec@siol.net> wrote: > > Dne četrtek, 11. april 2019 ob 12:57:16 CEST je Clément Péron napisal(a): > > > Add the mali gpu node to the H6 device-tree. > > > > > > Signed-off-by: Clément Péron <peron.clem@gmail.com> > > > --- > > > > > > arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 14 ++++++++++++++ > > > 1 file changed, 14 insertions(+) > > > > > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > > b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi index > > > e0dc4a05c1ba..196753110434 100644 > > > --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > > @@ -157,6 +157,20 @@ > > > > > > allwinner,sram = <&ve_sram 1>; > > > > > > }; > > > > > > + gpu: gpu@1800000 { > > > + compatible = "allwinner,sun50i-h6-mali", > > > + "arm,mali-t720"; > > > + reg = <0x01800000 0x4000>; > > > + interrupts = <GIC_SPI 84 > > > > IRQ_TYPE_LEVEL_HIGH>, > > > > > + <GIC_SPI 85 > > > > IRQ_TYPE_LEVEL_HIGH>, > > > > > + <GIC_SPI 83 > > > > IRQ_TYPE_LEVEL_HIGH>; > > > > > + interrupt-names = "job", "mmu", "gpu"; > > > + clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>; > > > + clock-names = "core", "bus"; > > > + resets = <&ccu RST_BUS_GPU>; > > > + status = "disabled"; > > > > Usually self sufficient peripherals are enabled by default in DTSI. > > I follow the other Mali Midgard (rk3399, rk3288) syntax. > But I think you're right here, will go for an update I think. > I quickly checked A64 and H5 DTSI and both have GPU enabled by default (status property is not set). Best regards, Jernej > Clement > > > > + }; > > > + > > > > > > syscon: syscon@3000000 { > > > > > > compatible = "allwinner,sun50i-h6-system- > > > > control", > > > > > "allwinner,sun50i-a64- > > > > system-control";
On Thu, Apr 11, 2019 at 05:23:25PM +0200, Jernej Škrabec wrote: > Dne četrtek, 11. april 2019 ob 17:20:04 CEST je Clément Péron napisal(a): > > Hi, > > > > On Thu, 11 Apr 2019 at 17:05, Jernej Škrabec <jernej.skrabec@siol.net> > wrote: > > > Dne četrtek, 11. april 2019 ob 12:57:16 CEST je Clément Péron napisal(a): > > > > Add the mali gpu node to the H6 device-tree. > > > > > > > > Signed-off-by: Clément Péron <peron.clem@gmail.com> > > > > --- > > > > > > > > arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 14 ++++++++++++++ > > > > 1 file changed, 14 insertions(+) > > > > > > > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > > > b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi index > > > > e0dc4a05c1ba..196753110434 100644 > > > > --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > > > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > > > @@ -157,6 +157,20 @@ > > > > > > > > allwinner,sram = <&ve_sram 1>; > > > > > > > > }; > > > > > > > > + gpu: gpu@1800000 { > > > > + compatible = "allwinner,sun50i-h6-mali", > > > > + "arm,mali-t720"; > > > > + reg = <0x01800000 0x4000>; > > > > + interrupts = <GIC_SPI 84 > > > > > > IRQ_TYPE_LEVEL_HIGH>, > > > > > > > + <GIC_SPI 85 > > > > > > IRQ_TYPE_LEVEL_HIGH>, > > > > > > > + <GIC_SPI 83 > > > > > > IRQ_TYPE_LEVEL_HIGH>; > > > > > > > + interrupt-names = "job", "mmu", "gpu"; > > > > + clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>; > > > > + clock-names = "core", "bus"; > > > > + resets = <&ccu RST_BUS_GPU>; > > > > + status = "disabled"; > > > > > > Usually self sufficient peripherals are enabled by default in DTSI. > > > > I follow the other Mali Midgard (rk3399, rk3288) syntax. > > But I think you're right here, will go for an update I think. > > I quickly checked A64 and H5 DTSI and both have GPU enabled by default (status > property is not set). I asked myself the same question, but the H6 seems to have a supply wired to the GPU, while the H3 and H5 do not. So I'm not sure we want to enable it on all the boards, even though some might have left out the GPU supply which will result in a non-working GPU (I assume?) Maxime -- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
Dne četrtek, 11. april 2019 ob 17:27:52 CEST je Maxime Ripard napisal(a): > On Thu, Apr 11, 2019 at 05:23:25PM +0200, Jernej Škrabec wrote: > > Dne četrtek, 11. april 2019 ob 17:20:04 CEST je Clément Péron napisal(a): > > > Hi, > > > > > > On Thu, 11 Apr 2019 at 17:05, Jernej Škrabec <jernej.skrabec@siol.net> > > > > wrote: > > > > Dne četrtek, 11. april 2019 ob 12:57:16 CEST je Clément Péron napisal(a): > > > > > Add the mali gpu node to the H6 device-tree. > > > > > > > > > > Signed-off-by: Clément Péron <peron.clem@gmail.com> > > > > > --- > > > > > > > > > > arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 14 ++++++++++++++ > > > > > 1 file changed, 14 insertions(+) > > > > > > > > > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > > > > b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi index > > > > > e0dc4a05c1ba..196753110434 100644 > > > > > --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > > > > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > > > > @@ -157,6 +157,20 @@ > > > > > > > > > > allwinner,sram = <&ve_sram 1>; > > > > > > > > > > }; > > > > > > > > > > + gpu: gpu@1800000 { > > > > > + compatible = "allwinner,sun50i-h6-mali", > > > > > + "arm,mali-t720"; > > > > > + reg = <0x01800000 0x4000>; > > > > > + interrupts = <GIC_SPI 84 > > > > > > > > IRQ_TYPE_LEVEL_HIGH>, > > > > > > > > > + <GIC_SPI 85 > > > > > > > > IRQ_TYPE_LEVEL_HIGH>, > > > > > > > > > + <GIC_SPI 83 > > > > > > > > IRQ_TYPE_LEVEL_HIGH>; > > > > > > > > > + interrupt-names = "job", "mmu", "gpu"; > > > > > + clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>; > > > > > + clock-names = "core", "bus"; > > > > > + resets = <&ccu RST_BUS_GPU>; > > > > > + status = "disabled"; > > > > > > > > Usually self sufficient peripherals are enabled by default in DTSI. > > > > > > I follow the other Mali Midgard (rk3399, rk3288) syntax. > > > But I think you're right here, will go for an update I think. > > > > I quickly checked A64 and H5 DTSI and both have GPU enabled by default > > (status property is not set). > > I asked myself the same question, but the H6 seems to have a supply > wired to the GPU, while the H3 and H5 do not. So I'm not sure we want > to enable it on all the boards, even though some might have left out > the GPU supply which will result in a non-working GPU (I assume?) It's true that GPU doesn't work at all without power supply. Even worse, ARM kernel driver just hangs whole SoC if it tries to use unpowered GPU. I checked few datasheets and almost none of them have GPU power supply, except H5, where GPU is enabled by default in DTSI. Yeah, I guess it's more safe to explicitly enable it in board DT. Jernej
On Thu, Apr 11, 2019 at 05:42:56PM +0200, Jernej Škrabec wrote: > Dne četrtek, 11. april 2019 ob 17:27:52 CEST je Maxime Ripard napisal(a): > > On Thu, Apr 11, 2019 at 05:23:25PM +0200, Jernej Škrabec wrote: > > > Dne četrtek, 11. april 2019 ob 17:20:04 CEST je Clément Péron napisal(a): > > > > Hi, > > > > > > > > On Thu, 11 Apr 2019 at 17:05, Jernej Škrabec <jernej.skrabec@siol.net> > > > > > > wrote: > > > > > Dne četrtek, 11. april 2019 ob 12:57:16 CEST je Clément Péron > napisal(a): > > > > > > Add the mali gpu node to the H6 device-tree. > > > > > > > > > > > > Signed-off-by: Clément Péron <peron.clem@gmail.com> > > > > > > --- > > > > > > > > > > > > arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 14 ++++++++++++++ > > > > > > 1 file changed, 14 insertions(+) > > > > > > > > > > > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > > > > > b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi index > > > > > > e0dc4a05c1ba..196753110434 100644 > > > > > > --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > > > > > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > > > > > @@ -157,6 +157,20 @@ > > > > > > > > > > > > allwinner,sram = <&ve_sram 1>; > > > > > > > > > > > > }; > > > > > > > > > > > > + gpu: gpu@1800000 { > > > > > > + compatible = "allwinner,sun50i-h6-mali", > > > > > > + "arm,mali-t720"; > > > > > > + reg = <0x01800000 0x4000>; > > > > > > + interrupts = <GIC_SPI 84 > > > > > > > > > > IRQ_TYPE_LEVEL_HIGH>, > > > > > > > > > > > + <GIC_SPI 85 > > > > > > > > > > IRQ_TYPE_LEVEL_HIGH>, > > > > > > > > > > > + <GIC_SPI 83 > > > > > > > > > > IRQ_TYPE_LEVEL_HIGH>; > > > > > > > > > > > + interrupt-names = "job", "mmu", "gpu"; > > > > > > + clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>; > > > > > > + clock-names = "core", "bus"; > > > > > > + resets = <&ccu RST_BUS_GPU>; > > > > > > + status = "disabled"; > > > > > > > > > > Usually self sufficient peripherals are enabled by default in DTSI. > > > > > > > > I follow the other Mali Midgard (rk3399, rk3288) syntax. > > > > But I think you're right here, will go for an update I think. > > > > > > I quickly checked A64 and H5 DTSI and both have GPU enabled by default > > > (status property is not set). > > > > I asked myself the same question, but the H6 seems to have a supply > > wired to the GPU, while the H3 and H5 do not. So I'm not sure we want > > to enable it on all the boards, even though some might have left out > > the GPU supply which will result in a non-working GPU (I assume?) > > It's true that GPU doesn't work at all without power supply. Even worse, ARM > kernel driver just hangs whole SoC if it tries to use unpowered GPU. > > I checked few datasheets and almost none of them have GPU power supply, except > H5, where GPU is enabled by default in DTSI. I guess we should fix that then. > Yeah, I guess it's more safe to explicitly enable it in board DT. It's also something we do for the CPU, even though the CPU should be obviously be powered before starting Linux... Maxime -- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
On Thu, Apr 11, 2019 at 10:27 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote: > > On Thu, Apr 11, 2019 at 05:23:25PM +0200, Jernej Škrabec wrote: > > Dne četrtek, 11. april 2019 ob 17:20:04 CEST je Clément Péron napisal(a): > > > Hi, > > > > > > On Thu, 11 Apr 2019 at 17:05, Jernej Škrabec <jernej.skrabec@siol.net> > > wrote: > > > > Dne četrtek, 11. april 2019 ob 12:57:16 CEST je Clément Péron napisal(a): > > > > > Add the mali gpu node to the H6 device-tree. > > > > > > > > > > Signed-off-by: Clément Péron <peron.clem@gmail.com> > > > > > --- > > > > > > > > > > arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 14 ++++++++++++++ > > > > > 1 file changed, 14 insertions(+) > > > > > > > > > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > > > > b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi index > > > > > e0dc4a05c1ba..196753110434 100644 > > > > > --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > > > > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > > > > @@ -157,6 +157,20 @@ > > > > > > > > > > allwinner,sram = <&ve_sram 1>; > > > > > > > > > > }; > > > > > > > > > > + gpu: gpu@1800000 { > > > > > + compatible = "allwinner,sun50i-h6-mali", > > > > > + "arm,mali-t720"; > > > > > + reg = <0x01800000 0x4000>; > > > > > + interrupts = <GIC_SPI 84 > > > > > > > > IRQ_TYPE_LEVEL_HIGH>, > > > > > > > > > + <GIC_SPI 85 > > > > > > > > IRQ_TYPE_LEVEL_HIGH>, > > > > > > > > > + <GIC_SPI 83 > > > > > > > > IRQ_TYPE_LEVEL_HIGH>; > > > > > > > > > + interrupt-names = "job", "mmu", "gpu"; > > > > > + clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>; > > > > > + clock-names = "core", "bus"; > > > > > + resets = <&ccu RST_BUS_GPU>; > > > > > + status = "disabled"; > > > > > > > > Usually self sufficient peripherals are enabled by default in DTSI. > > > > > > I follow the other Mali Midgard (rk3399, rk3288) syntax. > > > But I think you're right here, will go for an update I think. > > > > I quickly checked A64 and H5 DTSI and both have GPU enabled by default (status > > property is not set). > > I asked myself the same question, but the H6 seems to have a supply > wired to the GPU, while the H3 and H5 do not. So I'm not sure we want > to enable it on all the boards, even though some might have left out > the GPU supply which will result in a non-working GPU (I assume?) If the default state is enabled, then only devfreq will be disabled for panfrost, but it should otherwise work. I guess we could be smarter and just do frequency changes if all the OPP voltages are the same. Rob
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi index e0dc4a05c1ba..196753110434 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi @@ -157,6 +157,20 @@ allwinner,sram = <&ve_sram 1>; }; + gpu: gpu@1800000 { + compatible = "allwinner,sun50i-h6-mali", + "arm,mali-t720"; + reg = <0x01800000 0x4000>; + interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "job", "mmu", "gpu"; + clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>; + clock-names = "core", "bus"; + resets = <&ccu RST_BUS_GPU>; + status = "disabled"; + }; + syscon: syscon@3000000 { compatible = "allwinner,sun50i-h6-system-control", "allwinner,sun50i-a64-system-control";
Add the mali gpu node to the H6 device-tree. Signed-off-by: Clément Péron <peron.clem@gmail.com> --- arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+)