Message ID | 1530669174-17623-5-git-send-email-mars.cheng@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 04/07/18 02:52, Mars Cheng wrote: > This adds basic chip support for MT6765 SoC. > > Signed-off-by: Mars Cheng <mars.cheng@mediatek.com> > --- > arch/arm64/boot/dts/mediatek/Makefile | 1 + > arch/arm64/boot/dts/mediatek/mt6765-evb.dts | 33 ++++++ > arch/arm64/boot/dts/mediatek/mt6765.dtsi | 155 +++++++++++++++++++++++++++ > 3 files changed, 189 insertions(+) > create mode 100644 arch/arm64/boot/dts/mediatek/mt6765-evb.dts > create mode 100644 arch/arm64/boot/dts/mediatek/mt6765.dtsi > [...] > + > + gic: interrupt-controller@c000000 { > + compatible = "arm,gic-v3"; > + #interrupt-cells = <3>; > + #address-cells = <2>; > + #size-cells = <2>; > + #redistributor-regions = <1>; > + interrupt-parent = <&gic>; > + interrupt-controller; > + reg = <0 0x0c000000 0 0x40000>, // distributor > + <0 0x0c100000 0 0x200000>, // redistributor > + <0 0x0c400000 0 0x40000>; // gicc For the second time: please add *all* the GIC CPU interface regions, described in the Cortex-A53 TRM[1] (GICC, GICH, and GICV). Thanks, M. [1] http://infocenter.arm.com/help/topic/com.arm.doc.ddi0500g/ch09s02s01.html
Hi Marc On Wed, 2018-07-04 at 08:35 +0100, Marc Zyngier wrote: > On 04/07/18 02:52, Mars Cheng wrote: > > This adds basic chip support for MT6765 SoC. > > > > Signed-off-by: Mars Cheng <mars.cheng@mediatek.com> > > --- > > arch/arm64/boot/dts/mediatek/Makefile | 1 + > > arch/arm64/boot/dts/mediatek/mt6765-evb.dts | 33 ++++++ > > arch/arm64/boot/dts/mediatek/mt6765.dtsi | 155 +++++++++++++++++++++++++++ > > 3 files changed, 189 insertions(+) > > create mode 100644 arch/arm64/boot/dts/mediatek/mt6765-evb.dts > > create mode 100644 arch/arm64/boot/dts/mediatek/mt6765.dtsi > > > > [...] > > > + > > + gic: interrupt-controller@c000000 { > > + compatible = "arm,gic-v3"; > > + #interrupt-cells = <3>; > > + #address-cells = <2>; > > + #size-cells = <2>; > > + #redistributor-regions = <1>; > > + interrupt-parent = <&gic>; > > + interrupt-controller; > > + reg = <0 0x0c000000 0 0x40000>, // distributor > > + <0 0x0c100000 0 0x200000>, // redistributor > > + <0 0x0c400000 0 0x40000>; // gicc > > For the second time: please add *all* the GIC CPU interface regions, > described in the Cortex-A53 TRM[1] (GICC, GICH, and GICV). > MT6765 has no GICH/GICV/ITS in mediatek design. Have confirmed with our designer. MT6797 had similar question from you. Sorry for not mentioned it first. http://lists.infradead.org/pipermail/linux-mediatek/2017-February/008074.html Thanks. > Thanks, > > M. > > [1] > https://urldefense.proofpoint.com/v2/url?u=http-3A__infocenter.arm.com_help_topic_com.arm.doc.ddi0500g_ch09s02s01.html&d=DwICaQ&c=X9NHckmGz7LNQmqtvpDCYVnn6eFXNivfZeknqiAo-n0&r=Ph_SbcClVGRWmGxVhfr-5CZF9ffiUOE7TZ47ns4ROh4&m=9L01qJc7apuzwLobX_nhN0ik8IFdu_X7hJ139x5dNNw&s=0zeZXtWPeITLj01RSxAQ6NfNkTUu9Il0Dddgk07-6QA&e=
On 04/07/18 08:47, Mars Cheng wrote: > Hi Marc > > On Wed, 2018-07-04 at 08:35 +0100, Marc Zyngier wrote: >> On 04/07/18 02:52, Mars Cheng wrote: >>> This adds basic chip support for MT6765 SoC. >>> >>> Signed-off-by: Mars Cheng <mars.cheng@mediatek.com> >>> --- >>> arch/arm64/boot/dts/mediatek/Makefile | 1 + >>> arch/arm64/boot/dts/mediatek/mt6765-evb.dts | 33 ++++++ >>> arch/arm64/boot/dts/mediatek/mt6765.dtsi | 155 +++++++++++++++++++++++++++ >>> 3 files changed, 189 insertions(+) >>> create mode 100644 arch/arm64/boot/dts/mediatek/mt6765-evb.dts >>> create mode 100644 arch/arm64/boot/dts/mediatek/mt6765.dtsi >>> >> >> [...] >> >>> + >>> + gic: interrupt-controller@c000000 { >>> + compatible = "arm,gic-v3"; >>> + #interrupt-cells = <3>; >>> + #address-cells = <2>; >>> + #size-cells = <2>; >>> + #redistributor-regions = <1>; >>> + interrupt-parent = <&gic>; >>> + interrupt-controller; >>> + reg = <0 0x0c000000 0 0x40000>, // distributor >>> + <0 0x0c100000 0 0x200000>, // redistributor >>> + <0 0x0c400000 0 0x40000>; // gicc >> >> For the second time: please add *all* the GIC CPU interface regions, >> described in the Cortex-A53 TRM[1] (GICC, GICH, and GICV). >> > > MT6765 has no GICH/GICV/ITS in mediatek design. Have confirmed with our > designer. The only way *not* to have GICH or GICV is to assert GICCDISABLE on the CPU, in which case you don't have GICC either, nor any support for the GICv3 at all. So either the designer is wrong or the documentation is wrong. Which one is it, do you think? As for the ITS, that's a perfectly optional part of the design, and not part of the CPU. > MT6797 had similar question from you. Sorry for not mentioned it first. > > http://lists.infradead.org/pipermail/linux-mediatek/2017-February/008074.html Well, that's wrong too. M.
Hi Marc On Wed, 2018-07-04 at 08:59 +0100, Marc Zyngier wrote: > On 04/07/18 08:47, Mars Cheng wrote: > > Hi Marc > > > > On Wed, 2018-07-04 at 08:35 +0100, Marc Zyngier wrote: > >> On 04/07/18 02:52, Mars Cheng wrote: > >>> This adds basic chip support for MT6765 SoC. > >>> > >>> Signed-off-by: Mars Cheng <mars.cheng@mediatek.com> > >>> --- > >>> arch/arm64/boot/dts/mediatek/Makefile | 1 + > >>> arch/arm64/boot/dts/mediatek/mt6765-evb.dts | 33 ++++++ > >>> arch/arm64/boot/dts/mediatek/mt6765.dtsi | 155 +++++++++++++++++++++++++++ > >>> 3 files changed, 189 insertions(+) > >>> create mode 100644 arch/arm64/boot/dts/mediatek/mt6765-evb.dts > >>> create mode 100644 arch/arm64/boot/dts/mediatek/mt6765.dtsi > >>> > >> > >> [...] > >> > >>> + > >>> + gic: interrupt-controller@c000000 { > >>> + compatible = "arm,gic-v3"; > >>> + #interrupt-cells = <3>; > >>> + #address-cells = <2>; > >>> + #size-cells = <2>; > >>> + #redistributor-regions = <1>; > >>> + interrupt-parent = <&gic>; > >>> + interrupt-controller; > >>> + reg = <0 0x0c000000 0 0x40000>, // distributor > >>> + <0 0x0c100000 0 0x200000>, // redistributor > >>> + <0 0x0c400000 0 0x40000>; // gicc > >> > >> For the second time: please add *all* the GIC CPU interface regions, > >> described in the Cortex-A53 TRM[1] (GICC, GICH, and GICV). > >> > > > > MT6765 has no GICH/GICV/ITS in mediatek design. Have confirmed with our > > designer. > > The only way *not* to have GICH or GICV is to assert GICCDISABLE on the > CPU, in which case you don't have GICC either, nor any support for the > GICv3 at all. So either the designer is wrong or the documentation is > wrong. Which one is it, do you think? > > As for the ITS, that's a perfectly optional part of the design, and not > part of the CPU. > Clarified with our designer. It is our misunderstanding for TRM. GICV/GICH do exist. Will add them in v4 soon. And fix MT6797 in another patch. Thanks. > > MT6797 had similar question from you. Sorry for not mentioned it first. > > > > https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.infradead.org_pipermail_linux-2Dmediatek_2017-2DFebruary_008074.html&d=DwICaQ&c=X9NHckmGz7LNQmqtvpDCYVnn6eFXNivfZeknqiAo-n0&r=Ph_SbcClVGRWmGxVhfr-5CZF9ffiUOE7TZ47ns4ROh4&m=iACLXUO5vXXZCPSvhbBKZFXy0bXdO8f4kbgy6RLi2QM&s=2N4qyy0aMytzNgObeyU4tvCDREX4U1x4oeNgvZwUxvM&e= > > Well, that's wrong too. > > M.
diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile index ac17f60..7506b0d 100644 --- a/arch/arm64/boot/dts/mediatek/Makefile +++ b/arch/arm64/boot/dts/mediatek/Makefile @@ -1,6 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 dtb-$(CONFIG_ARCH_MEDIATEK) += mt2712-evb.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt6755-evb.dtb +dtb-$(CONFIG_ARCH_MEDIATEK) += mt6765-evb.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt6795-evb.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-evb.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-rfb1.dtb diff --git a/arch/arm64/boot/dts/mediatek/mt6765-evb.dts b/arch/arm64/boot/dts/mediatek/mt6765-evb.dts new file mode 100644 index 0000000..36dddff2 --- /dev/null +++ b/arch/arm64/boot/dts/mediatek/mt6765-evb.dts @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * dts file for Mediatek MT6765 + * + * (C) Copyright 2018. Mediatek, Inc. + * + * Mars Cheng <mars.cheng@mediatek.com> + */ + +/dts-v1/; +#include "mt6765.dtsi" + +/ { + model = "MediaTek MT6765 EVB"; + compatible = "mediatek,mt6765-evb", "mediatek,mt6765"; + + aliases { + serial0 = &uart0; + }; + + memory@40000000 { + device_type = "memory"; + reg = <0 0x40000000 0 0x1e800000>; + }; + + chosen { + stdout-path = "serial0:921600n8"; + }; +}; + +&uart0 { + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/mediatek/mt6765.dtsi b/arch/arm64/boot/dts/mediatek/mt6765.dtsi new file mode 100644 index 0000000..051545b --- /dev/null +++ b/arch/arm64/boot/dts/mediatek/mt6765.dtsi @@ -0,0 +1,155 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * dts file for Mediatek MT6765 + * + * (C) Copyright 2018. Mediatek, Inc. + * + * Mars Cheng <mars.cheng@mediatek.com> + */ + +#include <dt-bindings/interrupt-controller/irq.h> +#include <dt-bindings/interrupt-controller/arm-gic.h> + +/ { + compatible = "mediatek,mt6765"; + interrupt-parent = <&sysirq>; + #address-cells = <2>; + #size-cells = <2>; + + psci { + compatible = "arm,psci-0.2"; + method = "smc"; + }; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + enable-method = "psci"; + reg = <0x000>; + }; + + cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + enable-method = "psci"; + reg = <0x001>; + }; + + cpu@2 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + enable-method = "psci"; + reg = <0x002>; + }; + + cpu@3 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + enable-method = "psci"; + reg = <0x003>; + }; + + cpu@100 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + enable-method = "psci"; + reg = <0x100>; + }; + + cpu@101 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + enable-method = "psci"; + reg = <0x101>; + }; + + cpu@102 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + enable-method = "psci"; + reg = <0x102>; + }; + + cpu@103 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + enable-method = "psci"; + reg = <0x103>; + }; + }; + + baud_clk: dummy26m { + compatible = "fixed-clock"; + clock-frequency = <26000000>; + #clock-cells = <0>; + }; + + sys_clk: dummyclk { + compatible = "fixed-clock"; + clock-frequency = <26000000>; + #clock-cells = <0>; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupt-parent = <&gic>; + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; + }; + + soc { + #address-cells = <2>; + #size-cells = <2>; + compatible = "simple-bus"; + ranges; + + sysirq: interrupt-controller@10200a80 { + compatible = "mediatek,mt6765-sysirq", + "mediatek,mt6577-sysirq"; + interrupt-controller; + #interrupt-cells = <3>; + interrupt-parent = <&gic>; + reg = <0 0x10200a80 0 0x50>; + }; + + gic: interrupt-controller@c000000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <3>; + #address-cells = <2>; + #size-cells = <2>; + #redistributor-regions = <1>; + interrupt-parent = <&gic>; + interrupt-controller; + reg = <0 0x0c000000 0 0x40000>, // distributor + <0 0x0c100000 0 0x200000>, // redistributor + <0 0x0c400000 0 0x40000>; // gicc + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; + }; + + uart0: serial@11002000 { + compatible = "mediatek,mt6765-uart", + "mediatek,mt6577-uart"; + reg = <0 0x11002000 0 0x400>; + interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>; + clocks = <&baud_clk>, <&sys_clk>; + clock-names = "baud", "bus"; + status = "disabled"; + }; + + uart1: serial@11003000 { + compatible = "mediatek,mt6765-uart", + "mediatek,mt6577-uart"; + reg = <0 0x11003000 0 0x400>; + interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>; + clocks = <&baud_clk>, <&sys_clk>; + clock-names = "baud", "bus"; + status = "disabled"; + }; + }; /* end of soc */ +};
This adds basic chip support for MT6765 SoC. Signed-off-by: Mars Cheng <mars.cheng@mediatek.com> --- arch/arm64/boot/dts/mediatek/Makefile | 1 + arch/arm64/boot/dts/mediatek/mt6765-evb.dts | 33 ++++++ arch/arm64/boot/dts/mediatek/mt6765.dtsi | 155 +++++++++++++++++++++++++++ 3 files changed, 189 insertions(+) create mode 100644 arch/arm64/boot/dts/mediatek/mt6765-evb.dts create mode 100644 arch/arm64/boot/dts/mediatek/mt6765.dtsi