[PATCH 0/5] Apple M1 Support

Simon Glass sjg at chromium.org
Sat Sep 25 03:20:32 CEST 2021


Hi Mark,

On Sat, 18 Sept 2021 at 07:54, Mark Kettenis <kettenis at 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.

Regards,
Simon



Subject: [PATCH] Fix up devicetree

Get these building.

Signed-off-by: Simon Glass <sjg at 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


More information about the U-Boot mailing list