
Hi Mark,
On Sat, 25 Sept 2021 at 02:11, Mark Kettenis mark.kettenis@xs4all.nl wrote:
From: Simon Glass sjg@chromium.org Date: Fri, 24 Sep 2021 19:20:32 -0600
Hi Mark,
On Sat, 18 Sept 2021 at 07:54, Mark Kettenis kettenis@openbsd.org wrote:
This series adds basic support for Apple's M1 SoC to U-Boot. This builds a basic U-Boot that can be used as a payload for the m1n1 boot loader being developed by the Asahi Linux project.
The goal here is to privide an UEFI interface on these machines that
provide
allows booting various open source OSes. This initial series provides support for the serial port, framebuffer and the USB 3.1 Type-C ports. It can boot a support OS (e.g. OpenBSD/arm64) from a USB disk.
Mark Kettenis (5): arm: apple: Add initial support for Apple's M1 SoC serial: s5p: Add Apple M1 support misc: Add Apple DART driver arm: dts: apple: Add preliminary device trees doc: board: apple: Add Apple M1 documentation
arch/arm/Kconfig | 22 + arch/arm/Makefile | 1 + arch/arm/dts/t8103-j274.dts | 135 +++++ arch/arm/dts/t8103-j293.dts | 97 ++++ arch/arm/dts/t8103.dtsi | 506 ++++++++++++++++++ arch/arm/include/asm/arch-m1/clk.h | 11 + arch/arm/include/asm/arch-m1/uart.h | 41 ++ arch/arm/mach-apple/Kconfig | 18 + arch/arm/mach-apple/Makefile | 4 + arch/arm/mach-apple/board.c | 163 ++++++ arch/arm/mach-apple/lowlevel_init.S | 16 + configs/apple_m1_defconfig | 14 + doc/board/apple/index.rst | 9 + doc/board/apple/m1.rst | 54 ++ doc/board/index.rst | 1 + drivers/misc/Kconfig | 7 + drivers/misc/Makefile | 1 + drivers/misc/apple_dart.c | 171 ++++++ drivers/serial/Kconfig | 2 +- drivers/serial/serial_s5p.c | 22 + include/configs/apple.h | 38 ++ .../interrupt-controller/apple-aic.h | 15 + include/dt-bindings/pinctrl/apple.h | 13 + include/dt-bindings/spmi/spmi.h | 10 + 24 files changed, 1370 insertions(+), 1 deletion(-) create mode 100644 arch/arm/dts/t8103-j274.dts create mode 100644 arch/arm/dts/t8103-j293.dts create mode 100644 arch/arm/dts/t8103.dtsi create mode 100644 arch/arm/include/asm/arch-m1/clk.h create mode 100644 arch/arm/include/asm/arch-m1/uart.h create mode 100644 arch/arm/mach-apple/Kconfig create mode 100644 arch/arm/mach-apple/Makefile create mode 100644 arch/arm/mach-apple/board.c create mode 100644 arch/arm/mach-apple/lowlevel_init.S create mode 100644 configs/apple_m1_defconfig create mode 100644 doc/board/apple/index.rst create mode 100644 doc/board/apple/m1.rst create mode 100644 drivers/misc/apple_dart.c create mode 100644 include/configs/apple.h create mode 100644 include/dt-bindings/interrupt-controller/apple-aic.h create mode 100644 include/dt-bindings/pinctrl/apple.h create mode 100644 include/dt-bindings/spmi/spmi.h
-- 2.33.0
I gave this a whirl on a Macbook Air A2337 and needed the patch below to build the devicetree files. Sorry the formatting is broken.
Also when booting I get this:
... Preparing to boot kernel at 0x808200000 with fdt at 0x8082e8000 Valid payload found Preparing to run next stage at 0x808200000... MMU: shutting down... MMU: shutdown successful, clearing caches
Then the display clears and it hangs. If I try the J274 devicetree it just reboots at that point.
What should I expect? I was hoping for console output as I don't have serial connected. I don't have a suitable serial cable, and the USB gadget mode did not result in a ttyACM0 device appearing.
For framebuffer support you also need the "30bpp framebuffer support" series I posted earlier:
https://patchwork.ozlabs.org/project/uboot/list/?series=262617
With that your should get the usual U-Boot output on the screen. I've not tested the Air, but it should work there.
Ah OK, yes that fixes it, thanks!
So how do I get the keyboard to work in U-Boot? Or are you using serial somehow?
Also it takes for ever to put a test version on the device...how are you doing that for development?
I'll probably post a v2 of that series this weekend as I fixed the EFI GOP support with the help of Heinrich. But that shouldn't matter for U-Boot itself.
OK
Regarding the device tree, I was afraid that setting CONFIG_DEFAULT_DEVICE_TREE would make the distroboot commands try to load a device tree from disk before loading the EFI bootloader, but it looks I was mistaken there. It still is a little bit pointless to build the device tree and a u-boot.bin that includes it, but if that makes you happier, I'll add it to the series.
Well I get a build error without it, so yes please. It's just a default.
Regards, Simon
Cheers,
Mark
Subject: [PATCH] Fix up devicetree
Get these building.
Signed-off-by: Simon Glass sjg@chromium.org
arch/arm/dts/Makefile | 2 ++ configs/apple_m1_defconfig | 11 +++++------ 2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index fc16a57e60b..0c40947cc33 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -1130,6 +1130,8 @@ dtb-$(CONFIG_TARGET_IMX8MM_CL_IOT_GATE) += imx8mm-cl-iot-gate.dtb
dtb-$(CONFIG_TARGET_EA_LPC3250DEVKITV2) += lpc3250-ea3250.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t8103-j274.dtb t8103-j293.dtb
targets += $(dtb-y)
# Add any required device tree compiler flags here diff --git a/configs/apple_m1_defconfig b/configs/apple_m1_defconfig index a7ae15576bf..7712a0bac52 100644 --- a/configs/apple_m1_defconfig +++ b/configs/apple_m1_defconfig @@ -1,14 +1,13 @@ CONFIG_ARM=y CONFIG_ARCH_APPLE=y +CONFIG_DEFAULT_DEVICE_TREE="t8103-j293" +CONFIG_USE_PREBOOT=y # CONFIG_DISPLAY_CPUINFO is not set -# CONFIG_MMC is not set -# CONFIG_NET is not set -CONFIG_VIDEO_SIMPLE=y CONFIG_DISPLAY_BOARDINFO_LATE=y +# CONFIG_NET is not set +# CONFIG_MMC is not set CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_DWC3=y CONFIG_USB_KEYBOARD=y -CONFIG_USB_STORAGE=y -CONFIG_USE_PREBOOT=y -CONFIG_PREBOOT="usb start" +CONFIG_VIDEO_SIMPLE=y
# CONFIG_GENERATE_SMBIOS_TABLE is not set
2.25.1