
Date: Tue, 29 Aug 2023 22:13:53 +0300 From: Ivaylo Ivanov ivo.ivanov@null.net
I'm currently working on S5L8950X. I also have some T7000 and T8010 devices that I'll work on in the future.
There's a project called freemyipod that has a fork of U-Boot working on iPod Nano's (specifically the S5L8730 in the iPod Nano 5). I've read that they're planning on upstreaming it in the near future.
ok, well, most of the code you're moving isn't really M1/M2 specific. Apple uses RTKit all over the place. And some of the SoCs you mention are really close to M1/M2. And the older ones have a lot of Samsung heritage so I'm not sure they belong under mach-apple ...
Also, unless you actually have code to support other Apple SoCs, this just causes disruption for upstreaming more of the M1/M2 code. So I think this is best left alone until you actually show your code and we can see how to integrate it.
On 8/29/23 20:43, Mark Kettenis wrote:
From: ivo.ivanov@null.net Date: Tue, 29 Aug 2023 20:25:19 +0300
From: Ivaylo Ivanov ivo.ivanov@null.net
Currently, mach-apple assumes we're working with M1/M2. Make room for adding support for other Apple SoCs by moving everything from the M1/M2 SoC family in "mach-apple/" into "mach-apple/m1/".
Which other Apple SoCs?
Signed-off-by: Ivaylo Ivanov ivo.ivanov@null.net
arch/arm/Kconfig | 29 -------------- arch/arm/mach-apple/Kconfig | 42 ++++++++++++++++++++ arch/arm/mach-apple/Makefile | 5 +-- arch/arm/mach-apple/m1/Makefile | 6 +++ arch/arm/mach-apple/{ => m1}/board.c | 0 arch/arm/mach-apple/{ => m1}/lowlevel_init.S | 0 arch/arm/mach-apple/{ => m1}/rtkit.c | 0 arch/arm/mach-apple/{ => m1}/sart.c | 0 configs/apple_m1_defconfig | 1 + 9 files changed, 50 insertions(+), 33 deletions(-) create mode 100644 arch/arm/mach-apple/m1/Makefile rename arch/arm/mach-apple/{ => m1}/board.c (100%) rename arch/arm/mach-apple/{ => m1}/lowlevel_init.S (100%) rename arch/arm/mach-apple/{ => m1}/rtkit.c (100%) rename arch/arm/mach-apple/{ => m1}/sart.c (100%)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 97c25b4f14..5339da370c 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -980,38 +980,9 @@ config ARCH_NPCM
config ARCH_APPLE bool "Apple SoCs"
- select ARM64
- select CLK
- select CMD_PCI
- select CMD_USB select DM
- select DM_GPIO
- select DM_KEYBOARD
- select DM_MAILBOX select DM_RESET select DM_SERIAL
- select DM_SPI
- select DM_USB
- select VIDEO
- select IOMMU
- select LINUX_KERNEL_IMAGE_HEADER
- select OF_BOARD_SETUP
- select OF_CONTROL
- select PCI
- select PINCTRL
- select POSITION_INDEPENDENT
- select POWER_DOMAIN
- select REGMAP
- select SPI
- select SYSCON
- select SYSRESET
- select SYSRESET_WATCHDOG
- select SYSRESET_WATCHDOG_AUTO
- select USB
- imply CMD_DM
- imply CMD_GPT
- imply DISTRO_DEFAULTS
- imply OF_HAS_PRIOR_STAGE
config ARCH_OWL bool "Actions Semi OWL SoCs" diff --git a/arch/arm/mach-apple/Kconfig b/arch/arm/mach-apple/Kconfig index 294690ec0e..a38779b387 100644 --- a/arch/arm/mach-apple/Kconfig +++ b/arch/arm/mach-apple/Kconfig @@ -3,6 +3,46 @@ if ARCH_APPLE config TEXT_BASE default 0x00000000
+choice
- prompt "Apple Silicon architecture type select"
- optional
+config ARCH_APPLE_M1
- bool "Apple M1/M2 SoC family"
- select ARM64
- select CLK
- select CMD_PCI
- select CMD_USB
- select DM_GPIO
- select DM_KEYBOARD
- select DM_MAILBOX
- select DM_SPI
- select DM_USB
- select VIDEO
- select IOMMU
- select LINUX_KERNEL_IMAGE_HEADER
- select OF_BOARD_SETUP
- select OF_CONTROL
- select PCI
- select PINCTRL
- select POSITION_INDEPENDENT
- select POWER_DOMAIN
- select REGMAP
- select SPI
- select SYSCON
- select SYSRESET
- select SYSRESET_WATCHDOG
- select SYSRESET_WATCHDOG_AUTO
- select USB
- imply CMD_DM
- imply CMD_GPT
- imply DISTRO_DEFAULTS
- imply OF_HAS_PRIOR_STAGE
+endchoice
+if ARCH_APPLE_M1
config SYS_CONFIG_NAME default "apple"
@@ -19,3 +59,5 @@ config LNX_KRNL_IMG_TEXT_OFFSET_BASE default TEXT_BASE
endif
+endif diff --git a/arch/arm/mach-apple/Makefile b/arch/arm/mach-apple/Makefile index 50b465b947..d147ccdde2 100644 --- a/arch/arm/mach-apple/Makefile +++ b/arch/arm/mach-apple/Makefile @@ -1,6 +1,3 @@ # SPDX-License-Identifier: GPL-2.0+
-obj-y += board.o -obj-y += lowlevel_init.o -obj-y += rtkit.o -obj-$(CONFIG_NVME_APPLE) += sart.o +obj-$(CONFIG_ARCH_APPLE_M1) += m1/ diff --git a/arch/arm/mach-apple/m1/Makefile b/arch/arm/mach-apple/m1/Makefile new file mode 100644 index 0000000000..50b465b947 --- /dev/null +++ b/arch/arm/mach-apple/m1/Makefile @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: GPL-2.0+
+obj-y += board.o +obj-y += lowlevel_init.o +obj-y += rtkit.o +obj-$(CONFIG_NVME_APPLE) += sart.o diff --git a/arch/arm/mach-apple/board.c b/arch/arm/mach-apple/m1/board.c similarity index 100% rename from arch/arm/mach-apple/board.c rename to arch/arm/mach-apple/m1/board.c diff --git a/arch/arm/mach-apple/lowlevel_init.S b/arch/arm/mach-apple/m1/lowlevel_init.S similarity index 100% rename from arch/arm/mach-apple/lowlevel_init.S rename to arch/arm/mach-apple/m1/lowlevel_init.S diff --git a/arch/arm/mach-apple/rtkit.c b/arch/arm/mach-apple/m1/rtkit.c similarity index 100% rename from arch/arm/mach-apple/rtkit.c rename to arch/arm/mach-apple/m1/rtkit.c diff --git a/arch/arm/mach-apple/sart.c b/arch/arm/mach-apple/m1/sart.c similarity index 100% rename from arch/arm/mach-apple/sart.c rename to arch/arm/mach-apple/m1/sart.c diff --git a/configs/apple_m1_defconfig b/configs/apple_m1_defconfig index 755560971e..bd723881da 100644 --- a/configs/apple_m1_defconfig +++ b/configs/apple_m1_defconfig @@ -1,5 +1,6 @@ CONFIG_ARM=y CONFIG_ARCH_APPLE=y +CONFIG_ARCH_APPLE_M1=y CONFIG_DEFAULT_DEVICE_TREE="t8103-j274" CONFIG_SYS_LOAD_ADDR=0x0 CONFIG_USE_PREBOOT=y -- 2.34.1