Message ID | 20241111013033.22793-1-andre.przywara@arm.com |
---|---|
Headers | show |
Series | arm64: dts: allwinner: Add basic Allwinner A523 support | expand |
On Mon, 11 Nov 2024 01:30:19 +0000, Andre Przywara wrote: > Hi, > > this series adds basic DT support for the Allwinner A523 SoC, plus the > Avaota-A1 router board using the T527 package variant of that SoC.[1] > Functionality-wise it relies on the pinctrl[2] and clock[3] support > series, though there is no direct code dependency series to this series > (apart from the respective binding patches in the two series'). > > Most of the patches add DT binding documentation for the most basic > peripherals, the vast majority of them actually being already supported, > courtesy of identical IP being used. This includes MMC and USB 2.0, so > with the above mentioned clock and pinctrl support this gives an already > somewhat usable mainline support for this new SoC family. > The watchdog is not completely compatible, but is an easy addition, so > this bit is included in here as well. > > The A523 features 8 Arm Cortex-A55 cores, organised in two clusters, > clocked separately, with different OPP limits, in some kind of > little/LITTLE configuration. The GPU is a Arm Mali G57 MC01, and the chip > also features a single PCIe 2.1 lane, sharing a PHY with some USB 3.1 > controller - which means only one of the two can be used. > The rest of the SoC is the usual soup of multimedia SoC IP, with eDP > support and two Gigabit Ethernet MACs among the highlights. > > The main feature is patch 11/14, which adds the SoC .dtsi. This for now > is limited to the parts that are supported and could be tested. At the > moment there is no PSCI firmware, even the TF-A port from the BSP does > not seem to work for me. That's why the secondary cores have been omitted > for now, among other instances of some IP that I couldn't test yet. > I plan to add them in one of the next revisions. > > The last patch adds basic support for the Avaota-A1 router board, > designed by YuzukiHD, with some boards now built by Pine64. > > The mainline firmware side in general is somewhat lacking still: I have > basic U-Boot support working (including MMC and USB), although still > without DRAM support. This is for now covered by some binary blob found > in the (otherwise Open Source) Syterkit firmware, which also provides > the BSP versions of TF-A and the required (RISC-V) management core > firmware. Fortunately we have indications that DRAM support is not that > tricky, as the IP blocks are very similar to already supported, and dev > boards are on their way to the right people. > > Meanwhile I would like people to have a look at those DT bits here. Please > compare them to the available user manual, and test them if you have access > to hardware. > > Based on v6.12-rc1. > I pushed a branch with all the three series combined here: > https://github.com/apritzel/linux/commits/a523-v1/ > > Cheers, > Andre > > [1] https://linux-sunxi.org/A523#Family_of_sun55iw3 > [2] https://lore.kernel.org/linux-sunxi/20241111005750.13071-1-andre.przywara@arm.com/T/#t > [3] https://lore.kernel.org/linux-sunxi/20241111004722.10130-1-andre.przywara@arm.com/T/#t > > Andre Przywara (14): > dt-bindings: mmc: sunxi: Simplify compatible string listing > dt-bindings: mmc: sunxi: add compatible strings for Allwinner A523 > dt-bindings: watchdog: sunxi: add Allwinner A523 compatible string > watchdog: sunxi_wdt: Add support for Allwinner A523 > dt-bindings: i2c: mv64xxx: Add Allwinner A523 compatible string > dt-bindings: irq: sun7i-nmi: document the Allwinner A523 NMI > controller > dt-bindings: phy: document Allwinner A523 USB-2.0 PHY > dt-bindings: usb: sunxi-musb: add Allwinner A523 compatible string > dt-bindings: usb: add A523 compatible string for EHCI and OCHI > dt-bindings: rtc: sun6i: Add Allwinner A523 support > arm64: dts: allwinner: Add Allwinner A523 .dtsi file > dt-bindings: vendor-prefixes: Add YuzukiHD name > dt-bindings: arm: sunxi: Add Avaota A1 board > arm64: dts: allwinner: a523: add Avaota-A1 router support > > .../devicetree/bindings/arm/sunxi.yaml | 5 + > .../bindings/i2c/marvell,mv64xxx-i2c.yaml | 1 + > .../allwinner,sun7i-a20-sc-nmi.yaml | 1 + > .../bindings/mmc/allwinner,sun4i-a10-mmc.yaml | 40 +- > .../phy/allwinner,sun50i-a64-usb-phy.yaml | 10 +- > .../bindings/rtc/allwinner,sun6i-a31-rtc.yaml | 4 +- > .../usb/allwinner,sun4i-a10-musb.yaml | 1 + > .../devicetree/bindings/usb/generic-ehci.yaml | 1 + > .../devicetree/bindings/usb/generic-ohci.yaml | 1 + > .../devicetree/bindings/vendor-prefixes.yaml | 2 + > .../watchdog/allwinner,sun4i-a10-wdt.yaml | 2 + > arch/arm64/boot/dts/allwinner/Makefile | 1 + > .../arm64/boot/dts/allwinner/sun55i-a523.dtsi | 386 ++++++++++++++++++ > .../dts/allwinner/sun55i-t527-avaota-a1.dts | 311 ++++++++++++++ > drivers/watchdog/sunxi_wdt.c | 11 + > 15 files changed, 751 insertions(+), 26 deletions(-) > create mode 100644 arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi > create mode 100644 arch/arm64/boot/dts/allwinner/sun55i-t527-avaota-a1.dts > > -- > 2.46.2 > > > My bot found new DTB warnings on the .dts files added or changed in this series. Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings are fixed by another series. Ultimately, it is up to the platform maintainer whether these warnings are acceptable or not. No need to reply unless the platform maintainer has comments. If you already ran DT checks and didn't see these error(s), then make sure dt-schema is up to date: pip3 install dtschema --upgrade New warnings running 'make CHECK_DTBS=y allwinner/sun55i-t527-avaota-a1.dtb' for 20241111013033.22793-1-andre.przywara@arm.com: In file included from arch/arm64/boot/dts/allwinner/sun55i-t527-avaota-a1.dts:6: arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi:6:10: fatal error: dt-bindings/clock/sun55i-a523-ccu.h: No such file or directory 6 | #include <dt-bindings/clock/sun55i-a523-ccu.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[3]: *** [scripts/Makefile.dtbs:129: arch/arm64/boot/dts/allwinner/sun55i-t527-avaota-a1.dtb] Error 1 make[2]: *** [scripts/Makefile.build:478: arch/arm64/boot/dts/allwinner] Error 2 make[2]: Target 'arch/arm64/boot/dts/allwinner/sun55i-t527-avaota-a1.dtb' not remade because of errors. make[1]: *** [/home/rob/proj/linux-dt-testing/Makefile:1399: allwinner/sun55i-t527-avaota-a1.dtb] Error 2 make: *** [Makefile:224: __sub-make] Error 2 make: Target 'allwinner/sun55i-t527-avaota-a1.dtb' not remade because of errors.
On Mon, 11 Nov 2024 09:32:53 -0600 "Rob Herring (Arm)" <robh@kernel.org> wrote: Hi Rob, > On Mon, 11 Nov 2024 01:30:19 +0000, Andre Przywara wrote: > > Hi, > > > > this series adds basic DT support for the Allwinner A523 SoC, plus the > > Avaota-A1 router board using the T527 package variant of that SoC.[1] > > Functionality-wise it relies on the pinctrl[2] and clock[3] support > > series, though there is no direct code dependency series to this series > > (apart from the respective binding patches in the two series'). > > > > Most of the patches add DT binding documentation for the most basic > > peripherals, the vast majority of them actually being already supported, > > courtesy of identical IP being used. This includes MMC and USB 2.0, so > > with the above mentioned clock and pinctrl support this gives an already > > somewhat usable mainline support for this new SoC family. > > The watchdog is not completely compatible, but is an easy addition, so > > this bit is included in here as well. > > > > The A523 features 8 Arm Cortex-A55 cores, organised in two clusters, > > clocked separately, with different OPP limits, in some kind of > > little/LITTLE configuration. The GPU is a Arm Mali G57 MC01, and the chip > > also features a single PCIe 2.1 lane, sharing a PHY with some USB 3.1 > > controller - which means only one of the two can be used. > > The rest of the SoC is the usual soup of multimedia SoC IP, with eDP > > support and two Gigabit Ethernet MACs among the highlights. > > > > The main feature is patch 11/14, which adds the SoC .dtsi. This for now > > is limited to the parts that are supported and could be tested. At the > > moment there is no PSCI firmware, even the TF-A port from the BSP does > > not seem to work for me. That's why the secondary cores have been omitted > > for now, among other instances of some IP that I couldn't test yet. > > I plan to add them in one of the next revisions. > > > > The last patch adds basic support for the Avaota-A1 router board, > > designed by YuzukiHD, with some boards now built by Pine64. > > > > The mainline firmware side in general is somewhat lacking still: I have > > basic U-Boot support working (including MMC and USB), although still > > without DRAM support. This is for now covered by some binary blob found > > in the (otherwise Open Source) Syterkit firmware, which also provides > > the BSP versions of TF-A and the required (RISC-V) management core > > firmware. Fortunately we have indications that DRAM support is not that > > tricky, as the IP blocks are very similar to already supported, and dev > > boards are on their way to the right people. > > > > Meanwhile I would like people to have a look at those DT bits here. Please > > compare them to the available user manual, and test them if you have access > > to hardware. > > > > Based on v6.12-rc1. > > I pushed a branch with all the three series combined here: > > https://github.com/apritzel/linux/commits/a523-v1/ > > > > Cheers, > > Andre > > > > [1] https://linux-sunxi.org/A523#Family_of_sun55iw3 > > [2] https://lore.kernel.org/linux-sunxi/20241111005750.13071-1-andre.przywara@arm.com/T/#t > > [3] https://lore.kernel.org/linux-sunxi/20241111004722.10130-1-andre.przywara@arm.com/T/#t > > > > Andre Przywara (14): > > dt-bindings: mmc: sunxi: Simplify compatible string listing > > dt-bindings: mmc: sunxi: add compatible strings for Allwinner A523 > > dt-bindings: watchdog: sunxi: add Allwinner A523 compatible string > > watchdog: sunxi_wdt: Add support for Allwinner A523 > > dt-bindings: i2c: mv64xxx: Add Allwinner A523 compatible string > > dt-bindings: irq: sun7i-nmi: document the Allwinner A523 NMI > > controller > > dt-bindings: phy: document Allwinner A523 USB-2.0 PHY > > dt-bindings: usb: sunxi-musb: add Allwinner A523 compatible string > > dt-bindings: usb: add A523 compatible string for EHCI and OCHI > > dt-bindings: rtc: sun6i: Add Allwinner A523 support > > arm64: dts: allwinner: Add Allwinner A523 .dtsi file > > dt-bindings: vendor-prefixes: Add YuzukiHD name > > dt-bindings: arm: sunxi: Add Avaota A1 board > > arm64: dts: allwinner: a523: add Avaota-A1 router support > > > > .../devicetree/bindings/arm/sunxi.yaml | 5 + > > .../bindings/i2c/marvell,mv64xxx-i2c.yaml | 1 + > > .../allwinner,sun7i-a20-sc-nmi.yaml | 1 + > > .../bindings/mmc/allwinner,sun4i-a10-mmc.yaml | 40 +- > > .../phy/allwinner,sun50i-a64-usb-phy.yaml | 10 +- > > .../bindings/rtc/allwinner,sun6i-a31-rtc.yaml | 4 +- > > .../usb/allwinner,sun4i-a10-musb.yaml | 1 + > > .../devicetree/bindings/usb/generic-ehci.yaml | 1 + > > .../devicetree/bindings/usb/generic-ohci.yaml | 1 + > > .../devicetree/bindings/vendor-prefixes.yaml | 2 + > > .../watchdog/allwinner,sun4i-a10-wdt.yaml | 2 + > > arch/arm64/boot/dts/allwinner/Makefile | 1 + > > .../arm64/boot/dts/allwinner/sun55i-a523.dtsi | 386 ++++++++++++++++++ > > .../dts/allwinner/sun55i-t527-avaota-a1.dts | 311 ++++++++++++++ > > drivers/watchdog/sunxi_wdt.c | 11 + > > 15 files changed, 751 insertions(+), 26 deletions(-) > > create mode 100644 arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi > > create mode 100644 arch/arm64/boot/dts/allwinner/sun55i-t527-avaota-a1.dts > > > > -- > > 2.46.2 > > > > > > > > > My bot found new DTB warnings on the .dts files added or changed in this > series. > > Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings > are fixed by another series. Ultimately, it is up to the platform > maintainer whether these warnings are acceptable or not. No need to reply > unless the platform maintainer has comments. > > If you already ran DT checks and didn't see these error(s), then > make sure dt-schema is up to date: > > pip3 install dtschema --upgrade > > > New warnings running 'make CHECK_DTBS=y allwinner/sun55i-t527-avaota-a1.dtb' for 20241111013033.22793-1-andre.przywara@arm.com: > > In file included from arch/arm64/boot/dts/allwinner/sun55i-t527-avaota-a1.dts:6: > arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi:6:10: fatal error: dt-bindings/clock/sun55i-a523-ccu.h: No such file or directory > 6 | #include <dt-bindings/clock/sun55i-a523-ccu.h> Argh, the headers, forgot about them! I was hoping there would only be a complaint about the undocumented compatible strings, and I didn't want to tie the three series together unnecessarily, to avoid a harder to handle 28-patch series. I hope this doesn't prevent actual review by people, my github has the combined story, in case people want to avoid the issue: https://github.com/apritzel/linux/commits/a523-v1/ Cheers, Andre > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > compilation terminated. > make[3]: *** [scripts/Makefile.dtbs:129: arch/arm64/boot/dts/allwinner/sun55i-t527-avaota-a1.dtb] Error 1 > make[2]: *** [scripts/Makefile.build:478: arch/arm64/boot/dts/allwinner] Error 2 > make[2]: Target 'arch/arm64/boot/dts/allwinner/sun55i-t527-avaota-a1.dtb' not remade because of errors. > make[1]: *** [/home/rob/proj/linux-dt-testing/Makefile:1399: allwinner/sun55i-t527-avaota-a1.dtb] Error 2 > make: *** [Makefile:224: __sub-make] Error 2 > make: Target 'allwinner/sun55i-t527-avaota-a1.dtb' not remade because of errors. > > > > >
On Mon, Nov 11, 2024 at 01:30:20AM +0000, Andre Przywara wrote: > New Allwinner SoCs only occasionally update their MMC IP, leading to many > pairs of compatible strings, though there are sometimes a number of them > being compatible with one particular SoC. > > Collate the compatible string listing in the binding, to group those > being compatible together. This makes the list more readable, and allows > for easier addition of new SoC's MMC devices. > > Signed-off-by: Andre Przywara <andre.przywara@arm.com> Acked-by: Conor Dooley <conor.dooley@microchip.com>
On Mon, Nov 11, 2024 at 01:30:21AM +0000, Andre Przywara wrote: > The Allwinner A523 uses the same MMC IP as the D1. > > Introduce the new specific compatible strings, and use them with > fallbacks to the D1 strings. > > Also it turned out that the A100 is not compatible to the H616, instead > it is the same as the D1. For compatibility we cannot change the fallback > chain, but any drivers are from now on supposed to match on the H616 > string directly. Mark this fallback chain as deprecated, to avoid new > users to be added. tbh, I think this should be split out into a fix commit of its own. Split, Acked-by: Conor Dooley <conor.dooley@microchip.com>