[PATCH 0/5] Apple M1 Support
Simon Glass
sjg at chromium.org
Sat Sep 25 15:27:41 CEST 2021
Hi Mark,
On Sat, 25 Sept 2021 at 02:11, Mark Kettenis <mark.kettenis at xs4all.nl> wrote:
>
> > From: Simon Glass <sjg at chromium.org>
> > Date: Fri, 24 Sep 2021 19:20:32 -0600
> >
> > 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.
>
> 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 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