浏览代码

Linksys NSLU2: update kernel and system config

Waldemar Brodkorb 6 月之前
父节点
当前提交
151c074253

+ 7 - 5
target/arm/Makefile

@@ -129,10 +129,6 @@ ifeq ($(ADK_TARGET_FS),nfsroot)
 targethelp:
 	@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
 	@echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)"
-ifeq ($(ADK_TARGET_SYSTEM_LINKSYS_NSLU2),y)
-	@echo "Use following in RedBoot bootloader:"
-	@echo "RedBoot> ip_address -l <localip> -h <serverip>; load -r -v -b 0x01d00000 ${TARGET_KERNEL}; exec 0x01d00000"
-endif
 endif
 ifeq ($(ADK_TARGET_FS),squashfs)
 targethelp:
@@ -205,6 +201,9 @@ endif
 ifeq ($(ADK_TARGET_SYSTEM_PCDUINO_3B),y)
 VENDOR:=allwinner/
 endif
+ifeq ($(ADK_TARGET_SYSTEM_LINKSYS_NSLU2),y)
+VENDOR:=intel/ixp/
+endif
 endif
 
 dtb-install:
@@ -271,6 +270,9 @@ ifeq ($(ADK_TARGET_SYSTEM_ST_STM32F769),y)
 endif
 ifeq ($(ADK_TARGET_SYSTEM_ST_STM32F746G),y)
 	${KERNEL_MAKE} $(VENDOR)stm32f746-disco.dtb $(MAKE_TRACE)
+endif
+ifeq ($(ADK_TARGET_SYSTEM_LINKSYS_NSLU2),y)
+	${KERNEL_MAKE} $(VENDOR)intel-ixp42x-linksys-nslu2.dtb $(MAKE_TRACE)
 endif
 	for x in $(LINUX_DIR)/arch/arm/boot/dts/$(VENDOR)*.dtb; do \
 		[[ -e "$$x" ]] && cp $(LINUX_DIR)/arch/arm/boot/dts/$(VENDOR)*.dtb $(FW_DIR); \
@@ -294,7 +296,7 @@ ifeq (${ADK_TARGET_FS},genimage)
 imageinstall: dtb-install $(FW_DIR)/$(GENIMAGE) targethelp
 endif
 ifeq ($(ADK_TARGET_FS),nfsroot)
-imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
+imageinstall: kernel-install dtb-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
 endif
 ifeq ($(ADK_TARGET_FS),squashfs)
 imageinstall: $(BUILD_DIR)/root.squashfs kernel-install dtb-install targethelp

+ 109 - 1
target/arm/kernel/linksys-nslu2

@@ -1,4 +1,7 @@
 CONFIG_ARM=y
+CONFIG_ARCH_MULTIPLATFORM=y
+CONFIG_ARCH_MULTI_V5=y
+CONFIG_ARCH_MULTI_V4_V5=y
 CONFIG_ARCH_IXDP425=y
 CONFIG_ARCH_IXDP4XX=y
 CONFIG_ARCH_IXP4XX=y
@@ -7,6 +10,111 @@ CONFIG_ATAGS=y
 CONFIG_CPU_XSCALE=y
 CONFIG_IXP4XX_NPE=y
 CONFIG_IXP4XX_QMGR=y
-CONFIG_IXP4XX_WATCHDOG=y
 CONFIG_MACH_NSLU2=y
 CONFIG_FPE_NWFPE=y
+CONFIG_ARM_APPENDED_DTB=y
+CONFIG_ARM_THUMB=y
+CONFIG_KUSER_HELPERS=y
+
+CONFIG_FW_LOADER=y
+CONFIG_FW_LOADER_USER_HELPER=y
+CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_INTEL_IXP4XX_EB=y
+CONFIG_MTD=y
+CONFIG_MTD_OF_PARTS=y
+CONFIG_MTD_REDBOOT_PARTS=y
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_GEN_PROBE=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+CONFIG_MTD_OTP=y
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_UTIL=y
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_PHYSMAP_OF=y
+CONFIG_MTD_PHYSMAP_IXP4XX=y
+CONFIG_NET_VENDOR_XSCALE=y
+CONFIG_IXP4XX_ETH=y
+CONFIG_PHYLIB=y
+CONFIG_SWPHY=y
+CONFIG_PHYLIB_LEDS=y
+CONFIG_FIXED_PHY=y
+CONFIG_AMD_PHY=y
+CONFIG_REALTEK_PHY=y
+CONFIG_REALTEK_PHY_HWMON=y
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
+CONFIG_FWNODE_MDIO=y
+CONFIG_OF_MDIO=y
+CONFIG_MDIO_DEVRES=y
+CONFIG_IXP4XX_HSS=y
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_16550A_VARIANTS=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=2
+CONFIG_SERIAL_8250_RUNTIME_UARTS=2
+CONFIG_SERIAL_8250_FSL=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_MCTRL_GPIO=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_IXP4XX=y
+CONFIG_DEVPORT=y
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_ALGOBIT=y
+CONFIG_I2C_GPIO=y
+CONFIG_I2C_IOP3XX=y
+CONFIG_PTP_1588_CLOCK_OPTIONAL=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_OF_GPIO=y
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_CDEV=y
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_IXP4XX=y
+CONFIG_GPIO_GW_PLD=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_HWMON=y
+CONFIG_RTC_LIB=y
+CONFIG_RTC_MC146818_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_I2C_AND_SPI=y
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_STAGING=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_IXP4XX_TIMER=y
+CONFIG_IXP4XX_QMGR=y
+CONFIG_IXP4XX_NPE=y
+CONFIG_IRQCHIP=y
+CONFIG_IXP4XX_IRQ=y

+ 4 - 2
target/arm/systems/linksys-nslu2

@@ -4,15 +4,17 @@ config ADK_TARGET_SYSTEM_LINKSYS_NSLU2
 	select ADK_TARGET_BIG_ENDIAN
 	select ADK_TARGET_CPU_ARM_XSCALE
 	select ADK_TARGET_WITH_USB
-	select ADK_TARGET_WITH_PCI
 	select ADK_TARGET_WITH_SERIAL
 	select ADK_TARGET_WITH_NET
 	select ADK_TARGET_WITH_NETDEVICE
-	select ADK_TARGET_WITH_BLOCK
 	select ADK_TARGET_WITH_I2C
+	select ADK_TARGET_WITH_MTD
+	select ADK_TARGET_WITH_PCI
 	select ADK_TARGET_KERNEL_ZIMAGE
 	select ADK_TARGET_KERNEL_WITH_COMPRESSION
 	select ADK_PACKAGE_IXP4XX_MICROCODE
+	select ADK_PACKAGE_APEX
+	select ADK_HOST_BUILD_UPSLUG2
 	help
 	  Linksys NSLU2
 

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

@@ -113,3 +113,4 @@ config ADK_TARGET_KERNEL_APPEND_DTB
 	string
 	default "armada-xp-synology-ds414" if ADK_TARGET_SYSTEM_SYNOLOGY_DS414 && !ADK_TARGET_KERNEL_VENDORED_DTB
 	default "marvell/armada-xp-synology-ds414" if ADK_TARGET_SYSTEM_SYNOLOGY_DS414 && ADK_TARGET_KERNEL_VENDORED_DTB
+	default "intel/ixp/intel-ixp42x-linksys-nslu2" if ADK_TARGET_SYSTEM_LINKSYS_NSLU2 && ADK_TARGET_KERNEL_VENDORED_DTB

+ 3 - 4
target/config/Config.in.rootfs

@@ -59,8 +59,8 @@ config ADK_TARGET_ROOTFS_INITRAMFS
 
 config ADK_TARGET_ROOTFS_SQUASHFS
 	bool "Compressed read-only root filesystem (squashfs)"
-	select ADK_KERNEL_SQUASHFS
-	select ADK_HOST_NEED_SQUASHFS
+	select ADK_LINUX_KERNEL_SQUASHFS
+	select ADK_HOST_NEED_SQUASHFS_TOOLS
 	select ADK_HOST_NEED_QEMU if ADK_TARGET_QEMU
 	select ADK_TARGET_QEMU_WITH_BLOCK if ADK_TARGET_QEMU
 	depends on ADK_TARGET_WITH_MTD \
@@ -101,8 +101,7 @@ config ADK_TARGET_ROOTFS_NFSROOT
 	select ADK_LINUX_KERNEL_IP_PNP_DHCP if ADK_TARGET_OS_LINUX
 	depends on !ADK_TARGET_QEMU && \
 		   !ADK_TARGET_SIM && \
-		   !ADK_TARGET_SYSTEM_ARANYM_M68K && \
-		   !ADK_TARGET_SYSTEM_LINKSYS_NSLU2 
+		   !ADK_TARGET_SYSTEM_ARANYM_M68K
 	depends on ADK_TARGET_WITH_NETDEVICE
 	help
 	  Root filesystem mounted via NFS. (DHCP)

+ 3 - 3
target/config/Config.in.tools

@@ -284,13 +284,13 @@ config ADK_HOST_BUILD_OPKG
 	default y if ADK_HOST_NEED_OPKG
 	default n
 
-config ADK_HOST_NEED_SQUASHFS
+config ADK_HOST_NEED_SQUASHFS_TOOLS
 	bool
 	default n
 
-config ADK_HOST_BUILD_SQUASHFS
+config ADK_HOST_BUILD_SQUASHFS_TOOLS
 	bool
-	default y if ADK_HOST_NEED_SQUASHFS
+	default y if ADK_HOST_NEED_SQUASHFS_TOOLS
 	default n
 
 config ADK_HOST_NEED_SYSLINUX

+ 6 - 0
target/linux/config/Config.in.bus

@@ -25,3 +25,9 @@ config ADK_LINUX_KERNEL_PCI_IMX6
 	default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6  || \
 		ADK_TARGET_SYSTEM_PHYTEC_IMX6
 	default n
+
+config ADK_LINUX_KERNEL_PCI_IXP4XX
+	bool
+	depends on ADK_TARGET_SYSTEM_LINKSYS_NSLU2
+	default y if ADK_TARGET_SYSTEM_LINKSYS_NSLU2
+	default n

+ 17 - 0
target/linux/config/Config.in.flash

@@ -91,6 +91,22 @@ config ADK_LINUX_KERNEL_ETRAX_AXISFLASHMAP
 	depends on ADK_TARGET_SYSTEM_FOXBOARD_LX832
 	default y if ADK_TARGET_SYSTEM_FOXBOARD_LX832
 
+config ADK_LINUX_KERNEL_MTD_PHYSMAP_IXP4XX
+	bool "Linksys NSLU2 Flashmap driver"
+	select ADK_LINUX_KERNEL_BLOCK
+	select ADK_LINUX_KERNEL_MTD
+	select ADK_LINUX_KERNEL_MTD_PARTITIONS
+	select ADK_LINUX_KERNEL_MTD_CHAR
+	select ADK_LINUX_KERNEL_MTD_BLKDEVS
+	select ADK_LINUX_KERNEL_MTD_BLOCK
+	select ADK_LINUX_KERNEL_MTD_ROOTFS_ROOT_DEV
+	select ADK_LINUX_KERNEL_MTD_CFI
+	select ADK_LINUX_KERNEL_MTD_CFI_INTELEXT
+	select ADK_LINUX_KERNEL_MTD_PHYSMAP
+	select ADK_LINUX_KERNEL_MTD_PHYSMAP_OF
+	depends on ADK_TARGET_SYSTEM_LINKSYS_NSLU2
+	default y if ADK_TARGET_SYSTEM_LINKSYS_NSLU2
+
 config ADK_LINUX_KERNEL_MTD_M25P80
 	bool "MTD M25P80 driver"
 	select ADK_LINUX_KERNEL_BLOCK
@@ -164,6 +180,7 @@ config ADK_TARGET_MTD_SIZE
 	depends on ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800 \
 		|| ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 \
 		|| ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9 \
+		|| ADK_TARGET_SYSTEM_LINKSYS_NSLU2 \
 		|| ADK_TARGET_SYSTEM_MIKROTIK_RB532
 	default "16777216" if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800
 	default "33554432" if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605

+ 0 - 4
target/linux/config/Config.in.fs

@@ -43,9 +43,6 @@ config ADK_LINUX_KERNEL_FAT_DEFAULT_IOCHARSET
 	string
 	default "iso8859-1"
 
-config ADK_LINUX_KERNEL_SQUASHFS_XZ
-	bool
-
 config ADK_LINUX_KERNEL_JFFS2_COMPRESSION_OPTIONS
 	bool
 
@@ -253,7 +250,6 @@ config ADK_LINUX_KERNEL_JFFS2_FS
 config ADK_LINUX_KERNEL_SQUASHFS
 	tristate "SquashFS filesystem"
 	select ADK_LINUX_KERNEL_MISC_FILESYSTEMS
-	select ADK_LINUX_KERNEL_SQUASHFS_XZ
 	help
 	  Squashfs compressed read-only filesystem
 

+ 5 - 0
target/linux/config/Config.in.usb

@@ -78,6 +78,7 @@ config ADK_LINUX_KERNEL_USB
 	select ADK_LINUX_KERNEL_NLS
 	select ADK_LINUX_KERNEL_USB_SUPPORT
 	select ADK_LINUX_KERNEL_USB_ANNOUNCE_NEW_DEVICES
+	select ADK_LINUX_KERNEL_USB_PCI if ADK_TARGET_SYSTEM_LINKSYS_NSLU2
 	default m if ADK_TARGET_SYSTEM_PCENGINES_APU
 	default m if ADK_TARGET_SYSTEM_PCENGINES_ALIX
 	default m if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
@@ -88,6 +89,7 @@ config ADK_LINUX_KERNEL_USB
 	default y if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
 	default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
 	default y if ADK_TARGET_SYSTEM_RASPBERRY_PI5
+	default y if ADK_TARGET_SYSTEM_LINKSYS_NSLU2
 	default n
 	help
 	  Universal Serial Bus (USB) is a specification for a serial bus
@@ -159,6 +161,7 @@ config ADK_LINUX_KERNEL_USB_EHCI_HCD
 	default y if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
 	default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
 	default y if ADK_TARGET_SYSTEM_RASPBERRY_PI5
+	default y if ADK_TARGET_SYSTEM_LINKSYS_NSLU2
 	default n
 	help
 	  The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
@@ -205,11 +208,13 @@ config ADK_LINUX_KERNEL_USB_OHCI_HCD
 	select ADK_LINUX_KERNEL_USB_OHCI_HCD_PCI if ADK_TARGET_SYSTEM_PCENGINES_ALIX
 	select ADK_LINUX_KERNEL_USB_OHCI_HCD_PCI if ADK_TARGET_SYSTEM_PCENGINES_APU
 	select ADK_LINUX_KERNEL_USB_OHCI_HCD_PCI if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+	select ADK_LINUX_KERNEL_USB_OHCI_HCD_PCI if ADK_TARGET_SYSTEM_LINKSYS_NSLU2
 	default m if ADK_TARGET_SYSTEM_PCENGINES_APU
 	default m if ADK_TARGET_SYSTEM_PCENGINES_ALIX
 	default m if ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
 	default m if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
 	default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+	default y if ADK_TARGET_SYSTEM_LINKSYS_NSLU2
 	default n
 	help
 	  The Open Host Controller Interface (OHCI) is a standard for accessing

+ 9 - 0
target/linux/config/Config.in.watchdog

@@ -35,6 +35,15 @@ config ADK_LINUX_KERNEL_IMX2_WDT
 	help
 	  Watchdog driver for IMX6 boards.
 
+config ADK_LINUX_KERNEL_IXP4XX_WATCHDOG
+	bool "Hardware Watchdog for Linksys NSLU2"
+	select ADK_LINUX_KERNEL_WATCHDOG
+	depends on ADK_TARGET_SYSTEM_LINKSYS_NSLU2
+	default y if ADK_TARGET_SYSTEM_LINKSYS_NSLU2
+	default n
+	help
+	  Watchdog driver for Linksys NSLU2.
+
 config ADK_LINUX_KERNEL_SCx200_WDT
 	bool "Natsemi Hardware Watchdog" 
 	depends on ADK_TARGET_SYSTEM_PCENGINES_WRAP

+ 12 - 0
target/linux/patches/6.6.82/linksys-nslu2.patch

@@ -0,0 +1,12 @@
+diff -Nur linux-6.6.82.orig/arch/arm/boot/dts/intel/ixp/intel-ixp42x-linksys-nslu2.dts linux-6.6.82/arch/arm/boot/dts/intel/ixp/intel-ixp42x-linksys-nslu2.dts
+--- linux-6.6.82.orig/arch/arm/boot/dts/intel/ixp/intel-ixp42x-linksys-nslu2.dts	2025-03-09 09:55:04.000000000 +0100
++++ linux-6.6.82/arch/arm/boot/dts/intel/ixp/intel-ixp42x-linksys-nslu2.dts	2025-04-08 19:11:26.464512676 +0200
+@@ -21,7 +21,7 @@
+ 	};
+ 
+ 	chosen {
+-		bootargs = "console=ttyS0,115200n8 root=/dev/mtdblock2 rw rootfstype=squashfs,jffs2 rootwait";
++		bootargs = "console=ttyS0,115200n8 root=/dev/mtdblock4 rootfstype=squashfs rootwait";
+ 		stdout-path = "uart0:115200n8";
+ 	};
+