On Mon, Feb 15, 2021 at 09:17:13PM +0900, Hector Martin wrote: > This currently supports: > > * SMP (via spin-tables) > * AIC IRQs > * Serial (with earlycon) > * Framebuffer > > A number of properties are dynamic, and based on system firmware > decisions that vary from version to version. These are expected > to be filled in by the loader. > > Signed-off-by: Hector Martin <marcan@xxxxxxxxx> > --- > MAINTAINERS | 1 + > arch/arm64/boot/dts/Makefile | 1 + > arch/arm64/boot/dts/apple/Makefile | 2 + > arch/arm64/boot/dts/apple/apple-j274.dts | 41 ++++++++ > arch/arm64/boot/dts/apple/apple-m1.dtsi | 124 +++++++++++++++++++++++ > 5 files changed, 169 insertions(+) > create mode 100644 arch/arm64/boot/dts/apple/Makefile > create mode 100644 arch/arm64/boot/dts/apple/apple-j274.dts > create mode 100644 arch/arm64/boot/dts/apple/apple-m1.dtsi > > diff --git a/MAINTAINERS b/MAINTAINERS > index a8f258fbb5f1..87db1c947f45 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -1635,6 +1635,7 @@ C: irc://chat.freenode.net/asahi-dev > T: git https://github.com/AsahiLinux/linux.git > F: Documentation/devicetree/bindings/arm/apple.yaml > F: Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml > +F: arch/arm64/boot/dts/apple/ > F: arch/arm64/include/asm/sysreg_apple.h > F: drivers/irqchip/irq-apple-aic.c > F: include/dt-bindings/interrupt-controller/apple-aic.h > diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile > index 9b1170658d60..64f055d94948 100644 > --- a/arch/arm64/boot/dts/Makefile > +++ b/arch/arm64/boot/dts/Makefile > @@ -6,6 +6,7 @@ subdir-y += amazon > subdir-y += amd > subdir-y += amlogic > subdir-y += apm > +subdir-y += apple > subdir-y += arm > subdir-y += bitmain > subdir-y += broadcom > diff --git a/arch/arm64/boot/dts/apple/Makefile b/arch/arm64/boot/dts/apple/Makefile > new file mode 100644 > index 000000000000..ec03c474efd4 > --- /dev/null > +++ b/arch/arm64/boot/dts/apple/Makefile > @@ -0,0 +1,2 @@ > +# SPDX-License-Identifier: GPL-2.0 > +dtb-$(CONFIG_ARCH_APPLE) += apple-j274.dtb > diff --git a/arch/arm64/boot/dts/apple/apple-j274.dts b/arch/arm64/boot/dts/apple/apple-j274.dts > new file mode 100644 > index 000000000000..9a1be91a2cf0 > --- /dev/null > +++ b/arch/arm64/boot/dts/apple/apple-j274.dts > @@ -0,0 +1,41 @@ > +// SPDX-License-Identifier: GPL-2.0+ OR MIT () around licenses, so: (GPL-2.0+ OR MIT) > +/* > + * Copyright The Asahi Linux Contributors > + */ > + > +/dts-v1/; > + > +#include "apple-m1.dtsi" > + > +/ { > + compatible = "apple,j274", "apple,m1", "apple,arm-platform"; > + model = "Apple Mac Mini M1 2020"; > + > + aliases { > + serial0 = &serial0; > + }; > + > + chosen { > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + stdout-path = "serial0:1500000"; > + > + framebuffer0: framebuffer@0 { > + compatible = "apple,simple-framebuffer", "simple-framebuffer"; > + reg = <0 0 0 0>; /* To be filled by loader */ > + /* Format properties will be added by loader */ > + status = "disabled"; > + }; > + }; > + > + memory@800000000 { > + device_type = "memory"; > + reg = <0 0 0 0>; /* To be filled by loader */ dtc and dtschema might complain, so could you set here fake memory address 0x800000000? Would that work for your bootloader? > + }; > +}; > + > +&serial0 { > + status = "okay"; > +}; > diff --git a/arch/arm64/boot/dts/apple/apple-m1.dtsi b/arch/arm64/boot/dts/apple/apple-m1.dtsi > new file mode 100644 > index 000000000000..45c87771b057 > --- /dev/null > +++ b/arch/arm64/boot/dts/apple/apple-m1.dtsi > @@ -0,0 +1,124 @@ > +// SPDX-License-Identifier: GPL-2.0+ OR MIT > +/* > + * Copyright The Asahi Linux Contributors > + */ > + > +#include <dt-bindings/interrupt-controller/apple-aic.h> > +#include <dt-bindings/interrupt-controller/irq.h> > + > +/ { > + compatible = "apple,m1", "apple,arm-platform"; > + > + #address-cells = <2>; > + #size-cells = <2>; > + > + cpus { > + #address-cells = <2>; > + #size-cells = <0>; > + > + cpu0: cpu@0 { > + compatible = "apple,icestorm"; > + device_type = "cpu"; > + reg = <0x0 0x0>; > + enable-method = "spin-table"; > + cpu-release-addr = <0 0>; /* To be filled by loader */ > + }; New line after every device node, please. With this minor changes, fine for me: Reviewed-by: Krzysztof Kozlowski <krzk@xxxxxxxxxx> Best regards, Krzysztof