Browse Source

add support for sheevaplug

Waldemar Brodkorb 1 day ago
parent
commit
52f4b5c02c

+ 5 - 1
package/u-boot/Makefile

@@ -16,7 +16,7 @@ PKG_SITES:=		ftp://ftp.denx.de/pub/u-boot/
 
 DISTFILES:=		$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 
-PKG_SYSTEM_DEPENDS:=	banana-p2-zero beaglebone-black orange-pi0 raspberry-pi raspberry-pi2 raspberry-pi3 banana-pro solidrun-imx6 solidrun-clearfog raspberry-pi3-64 raspberry-pi3p raspberry-pi3p-64 rockpi4-plus phytec-imx6 pcduino-3b imgtec-ci20 st-stm32f746g starfive-visionfive2 microchip-pic32
+PKG_SYSTEM_DEPENDS:=	banana-p2-zero beaglebone-black orange-pi0 raspberry-pi raspberry-pi2 raspberry-pi3 banana-pro solidrun-imx6 solidrun-clearfog raspberry-pi3-64 raspberry-pi3p raspberry-pi3p-64 rockpi4-plus phytec-imx6 pcduino-3b imgtec-ci20 st-stm32f746g starfive-visionfive2 microchip-pic32 sheevaplug
 
 include $(ADK_TOPDIR)/mk/host.mk
 include $(ADK_TOPDIR)/mk/package.mk
@@ -25,6 +25,10 @@ $(eval $(call HOST_template,U_BOOT,u-boot,$(PKG_VERSION)-$(PKG_RELEASE)))
 $(eval $(call PKG_template,U_BOOT,u-boot,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
 
 UBOOT:=			u-boot.bin
+ifeq ($(ADK_TARGET_SYSTEM_SHEEVAPLUG),y)
+CONFIG:=		sheevaplug_defconfig
+UBOOT:=			u-boot.kwb
+endif
 ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG),y)
 CONFIG:=		clearfog_defconfig
 UBOOT:=			u-boot-with-spl.kwb

+ 6 - 0
target/arm/Makefile

@@ -186,6 +186,9 @@ endif
 ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG),y)
 VENDOR:=marvell/
 endif
+ifeq ($(ADK_TARGET_SYSTEM_SHEEVAPLUG),y)
+VENDOR:=marvell/
+endif
 ifeq ($(ADK_TARGET_SYSTEM_ST_STM32F746G),y)
 VENDOR:=st/
 endif
@@ -265,6 +268,9 @@ endif
 ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG),y)
 	${KERNEL_MAKE} $(VENDOR)armada-388-clearfog.dtb $(MAKE_TRACE)
 endif
+ifeq ($(ADK_TARGET_SYSTEM_SHEEVAPLUG),y)
+	${KERNEL_MAKE} $(VENDOR)kirkwood-sheevaplug.dtb $(MAKE_TRACE)
+endif
 ifeq ($(ADK_TARGET_SYSTEM_ST_STM32F429),y)
 	${KERNEL_MAKE} dtbs $(MAKE_TRACE)
 endif

+ 11 - 0
target/arm/kernel/sheevaplug

@@ -0,0 +1,11 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MVEBU=y
+CONFIG_MACH_KIRKWOOD=y
+CONFIG_CPU_FEROCEON_OLD_ID=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_RUNTIME_UARTS=2
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_MV643XX_ETH=y
+CONFIG_MARVELL_PHY=y

+ 15 - 0
target/arm/systems/sheevaplug

@@ -0,0 +1,15 @@
+config ADK_TARGET_SYSTEM_SHEEVAPLUG
+	bool "Sheevaplug"
+	depends on ADK_TARGET_OS_LINUX
+	select ADK_TARGET_LITTLE_ENDIAN
+	select ADK_TARGET_CPU_ARM_ARM926EJ_S
+	select ADK_TARGET_WITH_USB
+	select ADK_TARGET_WITH_SERIAL
+	select ADK_TARGET_WITH_NET
+	select ADK_TARGET_WITH_NETDEVICE
+	select ADK_TARGET_WITH_MTD
+	select ADK_TARGET_KERNEL_ZIMAGE
+	select ADK_PACKAGE_U_BOOT
+	select ADK_HOST_BUILD_U_BOOT
+	help
+	  Sheevaplug

+ 1 - 0
target/config/Config.in.kernelfmt

@@ -86,6 +86,7 @@ config ADK_TARGET_KERNEL_WITH_COMPRESSION
 config ADK_TARGET_KERNEL_LOADADDR
 	hex
 	default 0x8000 if ADK_TARGET_SYSTEM_SYNOLOGY_DS414
+	default 0x8000 if ADK_TARGET_SYSTEM_SHEEVAPLUG
 	default 0x40008000 if ADK_TARGET_SYSTEM_BANANA_PRO
 	default 0x44000000 if ADK_TARGET_SYSTEM_BANANA_P2_ZERO
 	default 0x40008000 if ADK_TARGET_SYSTEM_ORANGE_PI0

+ 1 - 0
target/linux/Config.in.kernelcfg

@@ -75,6 +75,7 @@ config ADK_TARGET_LINUX_KERNEL_DEFCONFIG
 	default "etraxfs_defconfig" if ADK_TARGET_SYSTEM_AXIS_89_DEVICE_SERVER
 	default "hp6xx_defconfig" if ADK_TARGET_SYSTEM_HP_JORNADA
 	default "pic32mzda_defconfig" if ADK_TARGET_SYSTEM_MICROCHIP_PIC32
+	default "mvebu_v5_defconfig" if ADK_TARGET_SYSTEM_SHEEVAPLUG
 	default ""
 
 config ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH

+ 33 - 0
target/linux/patches/4.4.302/sheevaplug-binutils.patch

@@ -0,0 +1,33 @@
+diff -Nur linux-4.4.302.orig/arch/arm/boot/compressed/head.S linux-4.4.302/arch/arm/boot/compressed/head.S
+--- linux-4.4.302.orig/arch/arm/boot/compressed/head.S	2022-02-03 09:27:54.000000000 +0100
++++ linux-4.4.302/arch/arm/boot/compressed/head.S	2026-03-02 00:03:12.847474448 +0100
+@@ -112,7 +112,7 @@
+ #endif
+ 		.endm
+ 
+-		.section ".start", #alloc, #execinstr
++		.section ".start", "ax"
+ /*
+  * sort out different calling conventions
+  */
+diff -Nur linux-4.4.302.orig/arch/arm/boot/compressed/piggy.gzip.S linux-4.4.302/arch/arm/boot/compressed/piggy.gzip.S
+--- linux-4.4.302.orig/arch/arm/boot/compressed/piggy.gzip.S	2022-02-03 09:27:54.000000000 +0100
++++ linux-4.4.302/arch/arm/boot/compressed/piggy.gzip.S	2026-03-02 00:11:14.938502449 +0100
+@@ -1,4 +1,4 @@
+-	.section .piggydata,#alloc
++	.section .piggydata,"a"
+ 	.globl	input_data
+ input_data:
+ 	.incbin	"arch/arm/boot/compressed/piggy.gzip"
+diff -Nur linux-4.4.302.orig/arch/arm/mm/proc-feroceon.S linux-4.4.302/arch/arm/mm/proc-feroceon.S
+--- linux-4.4.302.orig/arch/arm/mm/proc-feroceon.S	2022-02-03 09:27:54.000000000 +0100
++++ linux-4.4.302/arch/arm/mm/proc-feroceon.S	2026-03-01 23:57:07.471968342 +0100
+@@ -584,7 +584,7 @@
+ 
+ 	.align
+ 
+-	.section ".proc.info.init", #alloc
++	.section ".proc.info.init", "a"
+ 
+ .macro feroceon_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req, cache:req
+ 	.type	__\name\()_proc_info,#object