diff options
Diffstat (limited to 'target')
18 files changed, 0 insertions, 1552 deletions
diff --git a/target/linux/orion/Makefile b/target/linux/orion/Makefile deleted file mode 100644 index 170f0ddb40..0000000000 --- a/target/linux/orion/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -# -# Copyright (C) 2008-2015 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# -include $(TOPDIR)/rules.mk - -ARCH:=arm -BOARD:=orion -BOARDNAME:=Marvell Orion -FEATURES:=broken rtc -SUBTARGETS:=generic harddisk -MAINTAINER:=Imre Kaloz <kaloz@openwrt.org> - -KERNEL_PATCHVER:=4.14 - -include $(INCLUDE_DIR)/target.mk - -KERNELNAME:=zImage - -DEFAULT_PACKAGES += kmod-ath9k wpad-basic kmod-rtc-isl1208 uboot-envtools - -$(eval $(call BuildTarget)) diff --git a/target/linux/orion/base-files/etc/board.d/02_network b/target/linux/orion/base-files/etc/board.d/02_network deleted file mode 100755 index ab74bf3713..0000000000 --- a/target/linux/orion/base-files/etc/board.d/02_network +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -. /lib/functions/uci-defaults.sh - -board_config_update - -if grep -q lan1 /proc/net/dev; then - ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan" -else - ucidef_set_interface_lan "eth0" -fi - -board_config_flush - -exit 0 diff --git a/target/linux/orion/base-files/etc/hotplug.d/usb/10-usb b/target/linux/orion/base-files/etc/hotplug.d/usb/10-usb deleted file mode 100644 index 2ae0f73bdc..0000000000 --- a/target/linux/orion/base-files/etc/hotplug.d/usb/10-usb +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2009-2010 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -usb_led='' -usb_device='' - -led_set_attr() { - [ -f "/sys/class/leds/$1/$2" ] && echo "$3" > "/sys/class/leds/$1/$2" -} - -usb_led_set_timer() { - led_set_attr "${usb_led}" 'trigger' 'timer' - led_set_attr "${usb_led}" 'delay_on' "$1" - led_set_attr "${usb_led}" 'delay_off' "$2" -} - -usb_led_on() { - led_set_attr "${usb_led}" 'trigger' 'none' - led_set_attr "${usb_led}" 'brightness' 255 -} - -usb_led_off() { - led_set_attr "${usb_led}" 'trigger' 'none' - led_set_attr "${usb_led}" 'brightness' 0 -} - -get_usb_led() { - . /lib/functions.sh - - case "$(board_name)" in - 'Linksys WRT350N v2') - usb_led='wrt350nv2:green:usb' - usb_device='1-1:1.0' - ;; - esac; -} - -get_usb_led - -case "${ACTION}" in - add) - # update LEDs - [ "${usb_device}" = "${DEVICENAME}" ] && usb_led_on - ;; - remove) - # update LEDs - [ "${usb_device}" = "${DEVICENAME}" ] && usb_led_off - ;; -esac diff --git a/target/linux/orion/base-files/lib/preinit/01_sysinfo b/target/linux/orion/base-files/lib/preinit/01_sysinfo deleted file mode 100644 index 1ef07d774f..0000000000 --- a/target/linux/orion/base-files/lib/preinit/01_sysinfo +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -do_sysinfo_orion() { - local name="$(sed -n /Hardware/s/.*:.//p /proc/cpuinfo)" - [ -z "$name" ] && name="unknown" - - [ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/" - echo "$name" > /tmp/sysinfo/board_name - echo "unknown" > /tmp/sysinfo/model -} - -boot_hook_add preinit_main do_sysinfo_orion diff --git a/target/linux/orion/config-4.14 b/target/linux/orion/config-4.14 deleted file mode 100644 index 63a6700642..0000000000 --- a/target/linux/orion/config-4.14 +++ /dev/null @@ -1,274 +0,0 @@ -CONFIG_ALIGNMENT_TRAP=y -CONFIG_ARCH_CLOCKSOURCE_DATA=y -CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y -CONFIG_ARCH_HAS_ELF_RANDOMIZE=y -CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y -CONFIG_ARCH_HAS_SET_MEMORY=y -CONFIG_ARCH_HAS_SG_CHAIN=y -CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y -CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y -CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y -CONFIG_ARCH_MULTIPLATFORM=y -CONFIG_ARCH_MULTI_CPU_AUTO=y -# CONFIG_ARCH_MULTI_V4 is not set -# CONFIG_ARCH_MULTI_V4T is not set -CONFIG_ARCH_MULTI_V4_V5=y -CONFIG_ARCH_MULTI_V5=y -CONFIG_ARCH_NR_GPIO=0 -CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y -# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set -CONFIG_ARCH_ORION5X=y -# CONFIG_ARCH_ORION5X_DT is not set -# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set -# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set -CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y -CONFIG_ARCH_SUPPORTS_UPROBES=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_ARCH_USE_BUILTIN_BSWAP=y -CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y -CONFIG_ARCH_WANT_GENERAL_HUGETLB=y -CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y -CONFIG_ARM=y -# CONFIG_ARM_CPU_SUSPEND is not set -CONFIG_ARM_HAS_SG_CHAIN=y -CONFIG_ARM_L1_CACHE_SHIFT=5 -CONFIG_ARM_PATCH_PHYS_VIRT=y -# CONFIG_ARM_THUMB is not set -CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y -CONFIG_ATAGS=y -CONFIG_AUTO_ZRELADDR=y -CONFIG_BLK_MQ_PCI=y -# CONFIG_CACHE_L2X0 is not set -CONFIG_CLKDEV_LOOKUP=y -CONFIG_CLKSRC_MMIO=y -CONFIG_CLONE_BACKWARDS=y -CONFIG_CMDLINE="rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200 earlyprintk" -CONFIG_CMDLINE_FORCE=y -CONFIG_COMMON_CLK=y -CONFIG_CPU_32v5=y -CONFIG_CPU_ABRT_EV5T=y -CONFIG_CPU_CACHE_VIVT=y -CONFIG_CPU_COPY_FEROCEON=y -CONFIG_CPU_CP15=y -CONFIG_CPU_CP15_MMU=y -CONFIG_CPU_FEROCEON=y -CONFIG_CPU_FEROCEON_OLD_ID=y -# CONFIG_CPU_ICACHE_DISABLE is not set -CONFIG_CPU_PABRT_LEGACY=y -CONFIG_CPU_THUMB_CAPABLE=y -CONFIG_CPU_TLB_FEROCEON=y -CONFIG_CPU_USE_DOMAINS=y -CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_DEV_MARVELL_CESA=y -CONFIG_CRYPTO_HASH=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_DEBUG_LL=y -CONFIG_DEBUG_LL_INCLUDE="debug/8250.S" -CONFIG_DEBUG_LL_UART_8250=y -# CONFIG_DEBUG_MVEBU_UART0_ALTERNATE is not set -# CONFIG_DEBUG_UART_8250 is not set -# CONFIG_DEBUG_UART_8250_FLOW_CONTROL is not set -CONFIG_DEBUG_UART_8250_SHIFT=2 -# CONFIG_DEBUG_UART_8250_WORD is not set -CONFIG_DEBUG_UART_PHYS=0xf1012000 -CONFIG_DEBUG_UART_VIRT=0xfe012000 -CONFIG_DEBUG_UNCOMPRESS=y -# CONFIG_DEBUG_USER is not set -CONFIG_DMADEVICES=y -CONFIG_DMA_ENGINE=y -CONFIG_DMA_ENGINE_RAID=y -CONFIG_DMA_OF=y -CONFIG_DNOTIFY=y -CONFIG_DTC=y -CONFIG_EARLY_PRINTK=y -CONFIG_EDAC_ATOMIC_SCRUB=y -CONFIG_EDAC_SUPPORT=y -CONFIG_FIXED_PHY=y -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_FRAME_POINTER=y -CONFIG_GENERIC_ALLOCATOR=y -CONFIG_GENERIC_ATOMIC64=y -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CPU_AUTOPROBE=y -CONFIG_GENERIC_EARLY_IOREMAP=y -CONFIG_GENERIC_IDLE_POLL_SETUP=y -CONFIG_GENERIC_IO=y -CONFIG_GENERIC_IRQ_CHIP=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_IRQ_SHOW_LEVEL=y -CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_GENERIC_SCHED_CLOCK=y -CONFIG_GENERIC_SMP_IDLE_THREAD=y -CONFIG_GENERIC_STRNCPY_FROM_USER=y -CONFIG_GENERIC_STRNLEN_USER=y -CONFIG_GPIOLIB=y -CONFIG_GPIO_MVEBU=y -CONFIG_GPIO_SYSFS=y -# CONFIG_GRO_CELLS is not set -CONFIG_HANDLE_DOMAIN_IRQ=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_HAS_DMA=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT_MAP=y -# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set -CONFIG_HAVE_ARCH_AUDITSYSCALL=y -# CONFIG_HAVE_ARCH_BITREVERSE is not set -CONFIG_HAVE_ARCH_JUMP_LABEL=y -CONFIG_HAVE_ARCH_KGDB=y -CONFIG_HAVE_ARCH_PFN_VALID=y -CONFIG_HAVE_ARCH_SECCOMP_FILTER=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set -CONFIG_HAVE_CC_STACKPROTECTOR=y -CONFIG_HAVE_CLK=y -CONFIG_HAVE_CLK_PREPARE=y -CONFIG_HAVE_CONTEXT_TRACKING=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_HAVE_DEBUG_KMEMLEAK=y -CONFIG_HAVE_DMA_API_DEBUG=y -CONFIG_HAVE_DMA_CONTIGUOUS=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y -CONFIG_HAVE_EBPF_JIT=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_HAVE_IDE=y -CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y -CONFIG_HAVE_MEMBLOCK=y -CONFIG_HAVE_MOD_ARCH_SPECIFIC=y -CONFIG_HAVE_NET_DSA=y -CONFIG_HAVE_OPROFILE=y -CONFIG_HAVE_OPTPROBES=y -CONFIG_HAVE_PERF_EVENTS=y -CONFIG_HAVE_PERF_REGS=y -CONFIG_HAVE_PERF_USER_STACK_DUMP=y -CONFIG_HAVE_PROC_CPU=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_HAVE_UID16=y -CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y -CONFIG_HZ_FIXED=0 -CONFIG_HZ_PERIODIC=y -CONFIG_I2C=y -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_CHARDEV=y -CONFIG_I2C_MV64XXX=y -# CONFIG_INITRAMFS_FORCE is not set -CONFIG_INITRAMFS_SOURCE="" -CONFIG_IOMMU_HELPER=y -CONFIG_IRQCHIP=y -CONFIG_IRQ_DOMAIN=y -CONFIG_IRQ_FORCED_THREADING=y -CONFIG_IRQ_WORK=y -CONFIG_LEDS_GPIO=y -CONFIG_LIBFDT=y -# CONFIG_MACH_D2NET_DT is not set -# CONFIG_MACH_DB88F5281 is not set -# CONFIG_MACH_DNS323 is not set -# CONFIG_MACH_DT2 is not set -# CONFIG_MACH_KUROBOX_PRO is not set -# CONFIG_MACH_LINKSTATION_LS_HGL is not set -# CONFIG_MACH_LINKSTATION_MINI is not set -# CONFIG_MACH_LINKSTATION_PRO is not set -# CONFIG_MACH_MSS2_DT is not set -# CONFIG_MACH_MV2120 is not set -# CONFIG_MACH_NET2BIG is not set -# CONFIG_MACH_RD88F5181L_FXO is not set -# CONFIG_MACH_RD88F5181L_GE is not set -# CONFIG_MACH_RD88F5182 is not set -# CONFIG_MACH_RD88F5182_DT is not set -# CONFIG_MACH_RD88F6183AP_GE is not set -CONFIG_MACH_TERASTATION_PRO2=y -# CONFIG_MACH_TS209 is not set -# CONFIG_MACH_TS409 is not set -# CONFIG_MACH_TS78XX is not set -CONFIG_MACH_WN802T=y -CONFIG_MACH_WNR854T=y -CONFIG_MACH_WRT350N_V2=y -CONFIG_MDIO_BUS=y -CONFIG_MDIO_DEVICE=y -CONFIG_MIGHT_HAVE_PCI=y -CONFIG_MIGRATION=y -CONFIG_MMC=y -CONFIG_MMC_MVSDIO=y -# CONFIG_MMC_TIFM_SD is not set -CONFIG_MODULES_USE_ELF_REL=y -CONFIG_MTD_PHYSMAP=y -CONFIG_MULTI_IRQ_HANDLER=y -CONFIG_MV643XX_ETH=y -CONFIG_MVEBU_MBUS=y -CONFIG_MVMDIO=y -CONFIG_MV_XOR=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_NEED_KUSER_HELPERS=y -CONFIG_NEED_PER_CPU_KM=y -# CONFIG_NET_VENDOR_AURORA is not set -CONFIG_NO_BOOTMEM=y -CONFIG_OF=y -CONFIG_OF_ADDRESS=y -CONFIG_OF_ADDRESS_PCI=y -CONFIG_OF_EARLY_FLATTREE=y -CONFIG_OF_FLATTREE=y -CONFIG_OF_GPIO=y -CONFIG_OF_IRQ=y -CONFIG_OF_MDIO=y -CONFIG_OF_NET=y -CONFIG_OF_PCI=y -CONFIG_OF_PCI_IRQ=y -CONFIG_OF_RESERVED_MEM=y -CONFIG_OLD_SIGACTION=y -CONFIG_OLD_SIGSUSPEND3=y -CONFIG_ORION_WATCHDOG=y -CONFIG_PAGE_OFFSET=0xC0000000 -CONFIG_PCI=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_DOMAINS_GENERIC=y -CONFIG_PERF_USE_VMALLOC=y -CONFIG_PGTABLE_LEVELS=2 -CONFIG_PHYLIB=y -CONFIG_PLAT_ORION=y -CONFIG_PLAT_ORION_LEGACY=y -CONFIG_RATIONAL=y -# CONFIG_RCU_EXPERT is not set -# CONFIG_RCU_NEED_SEGCBLIST is not set -# CONFIG_RCU_STALL_COMMON is not set -CONFIG_REGMAP=y -CONFIG_REGMAP_I2C=y -CONFIG_REGMAP_MMIO=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_I2C_AND_SPI=y -CONFIG_RTC_MC146818_LIB=y -CONFIG_RWSEM_XCHGADD_ALGORITHM=y -# CONFIG_SCHED_INFO is not set -# CONFIG_SCSI_DMA is not set -CONFIG_SERIAL_8250_FSL=y -CONFIG_SPARSE_IRQ=y -CONFIG_SPLIT_PTLOCK_CPUS=999999 -CONFIG_SRAM=y -CONFIG_SRAM_EXEC=y -CONFIG_SRCU=y -CONFIG_SWIOTLB=y -CONFIG_SWPHY=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_TICK_CPU_ACCOUNTING=y -CONFIG_TIMER_OF=y -CONFIG_TIMER_PROBE=y -CONFIG_TINY_SRCU=y -CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" -CONFIG_USB_SUPPORT=y -CONFIG_USE_OF=y -CONFIG_VECTORS_BASE=0xffff0000 -# CONFIG_VFP is not set -CONFIG_WATCHDOG_CORE=y -CONFIG_XZ_DEC_ARM=y -CONFIG_XZ_DEC_BCJ=y -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_ZBOOT_ROM_TEXT=0x0 diff --git a/target/linux/orion/generic/base-files/etc/uci-defaults/09_hardware b/target/linux/orion/generic/base-files/etc/uci-defaults/09_hardware deleted file mode 100644 index 5d928b092a..0000000000 --- a/target/linux/orion/generic/base-files/etc/uci-defaults/09_hardware +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2010 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -# -# This script sets system defaults for the hardware on firstboot -# - -. /lib/functions.sh - -wrt350nv2_default() { -# leds - uci batch <<__EOF -set system.power_led=led -set system.power_led.name='Power LED (green)' -set system.power_led.sysfs='wrt350nv2:green:power' -set system.power_led.default='1' -set system.wifi_led=led -set system.wifi_led.name='Wireless LED (green)' -set system.wifi_led.sysfs='wrt350nv2:green:wireless' -set system.wifi_led.trigger='netdev' -set system.wifi_led.dev='wlan0' -set system.wifi_led.mode='link tx rx' -set system.wifi_led.default='0' -commit system -__EOF - -# add mac address from U-Boot partition to lan and wan devices - MTD=$(grep -e 'u-boot' /proc/mtd) - MTD=$(echo ${MTD} | sed 's/[a-z]*\([0-9]*\):.*/\1/') - [ -n "${MTD}" ] && { - MACADDR=$(dd if=/dev/mtdblock${MTD} bs=1 skip=262048 count=6 2>/dev/null | hexdump -e '1/1 "%02x"') - MACADDR2=$(( 0x${MACADDR} + 1)) - MACADDR2=$(printf "%012x" ${MACADDR2}) - - MACADDR=$(echo ${MACADDR} | sed 's/\(..\)/\1:/g' | sed 's/:$//') - MACADDR2=$(echo ${MACADDR2} | sed 's/\(..\)/\1:/g' | sed 's/:$//') - - uci set network.eth0.macaddr=${MACADDR} - uci set network.lan.macaddr=${MACADDR} - uci set network.wan.macaddr=${MACADDR2} - uci commit network - } -} - -case "$(board_name)" in - 'Linksys WRT350N v2') - wrt350nv2_default - ;; -esac diff --git a/target/linux/orion/generic/base-files/lib/upgrade/platform.sh b/target/linux/orion/generic/base-files/lib/upgrade/platform.sh deleted file mode 100644 index cf1fad83a8..0000000000 --- a/target/linux/orion/generic/base-files/lib/upgrade/platform.sh +++ /dev/null @@ -1,38 +0,0 @@ -# -# Copyright (C) 2010-2011 OpenWrt.org -# - -# use default "image" for PART_NAME -# use default for platform_do_upgrade() - -platform_check_image() { - [ "$#" -gt 1 ] && { echo 'Too many arguments. Only flash file expected.'; return 1; } - - local hardware="$(board_name)" - local magic="$(get_magic_word "$1")" - local magic_long="$(get_magic_long "$1")" - - case "${hardware}" in - # hardware with a direct uImage partition - # image header format as described in U-Boot's include/image.h - # see http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=blob;f=include/image.h - 'Linksys WRT350N v2') - [ "${magic_long}" != '27051956' ] && { - echo "Invalid image type ${magic_long}." - return 1 - } - return 0 - ;; - # Netgear WNR854T (has uImage as file inside a JFFS2 partition) - 'Netgear WNR854T') - [ "${magic}" != '8519' ] && { - echo "Invalid image type ${magic}." - return 1 - } - return 0 - ;; - esac - - echo "Sysupgrade is not yet supported on ${hardware}." - return 1 -} diff --git a/target/linux/orion/generic/target.mk b/target/linux/orion/generic/target.mk deleted file mode 100644 index 7b054edd6b..0000000000 --- a/target/linux/orion/generic/target.mk +++ /dev/null @@ -1,14 +0,0 @@ -# -# Copyright (C) 2008-2010 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -BOARDNAME:=Generic -FEATURES+=squashfs - -define Target/Description - Build firmware images for Marvell Orion based boards that boot from internal flash. - (e.g.: Linksys WRT350N v2, Netgear WNR854T, ...) -endef diff --git a/target/linux/orion/harddisk/config-default b/target/linux/orion/harddisk/config-default deleted file mode 100644 index c25cb6265d..0000000000 --- a/target/linux/orion/harddisk/config-default +++ /dev/null @@ -1,42 +0,0 @@ -CONFIG_ATA=y -CONFIG_BLK_DEV_DM=y -CONFIG_BLK_DEV_DM_BUILTIN=y -CONFIG_BLK_DEV_MD=y -CONFIG_BLK_DEV_SD=y -CONFIG_BLK_SCSI_REQUEST=y -CONFIG_CRC16=y -CONFIG_CRYPTO_CRC32C=y -CONFIG_DAX=y -# CONFIG_DM_CRYPT is not set -# CONFIG_DM_MIRROR is not set -# CONFIG_DM_SNAPSHOT is not set -CONFIG_EXT4_FS=y -CONFIG_FS_MBCACHE=y -CONFIG_GENERIC_PHY=y -CONFIG_GLOB=y -CONFIG_HWMON=y -CONFIG_JBD2=y -CONFIG_MACH_DT2=y -CONFIG_MACH_NET2BIG=y -# CONFIG_MACH_WN802T is not set -# CONFIG_MACH_WNR854T is not set -# CONFIG_MACH_WRT350N_V2 is not set -CONFIG_MD=y -CONFIG_MD_AUTODETECT=y -CONFIG_MD_LINEAR=y -# CONFIG_MD_MULTIPATH is not set -CONFIG_MD_RAID0=y -CONFIG_MD_RAID1=y -# CONFIG_MD_RAID10 is not set -# CONFIG_MD_RAID456 is not set -CONFIG_NLS=y -CONFIG_SATA_MV=y -CONFIG_SCSI=y -CONFIG_SCSI_DMA=y -CONFIG_SG_POOL=y -CONFIG_USB=y -CONFIG_USB_COMMON=y -CONFIG_USB_EHCI_HCD=y -CONFIG_USB_EHCI_HCD_ORION=y -CONFIG_USB_EHCI_HCD_PLATFORM=y -CONFIG_USB_STORAGE=y diff --git a/target/linux/orion/harddisk/target.mk b/target/linux/orion/harddisk/target.mk deleted file mode 100644 index 6096e69709..0000000000 --- a/target/linux/orion/harddisk/target.mk +++ /dev/null @@ -1,15 +0,0 @@ -# -# Copyright (C) 2008-2010 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -BOARDNAME:=Internal Hard-Disk -FEATURES+=targz -DEVICE_TYPE:=nas - -define Target/Description - Build firmware images for Marvell Orion based boards that boot directly from internal disk storage. - (e.g.: Freecom DataTank 2, ...) -endef diff --git a/target/linux/orion/image/Makefile b/target/linux/orion/image/Makefile deleted file mode 100644 index 058519f720..0000000000 --- a/target/linux/orion/image/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (C) 2008-2010 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# -include $(TOPDIR)/rules.mk -include $(INCLUDE_DIR)/image.mk - -include $(SUBTARGET).mk - -$(eval $(call BuildImage)) diff --git a/target/linux/orion/image/generic.mk b/target/linux/orion/image/generic.mk deleted file mode 100644 index 595f8c1f79..0000000000 --- a/target/linux/orion/image/generic.mk +++ /dev/null @@ -1,237 +0,0 @@ -# -# Copyright (C) 2008-2015 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -### DO NOT INDENT LINES CONTAINING $(call xyz) AS THIS MAY CHANGE THE CONTEXT -### OF THE FIRST LINE IN THE CALLED VARIABLE (NOTE: variable!) -### see http://www.gnu.org/software/make/manual/html_node/Call-Function.html#Call-Function -### ACTUALLY IT IS A SIMPLE MACRO EXPANSION - -### use round brackets for make variables, and curly brackets for shell variables - - -## Kernel mtd partition size in KiB -KERNEL_MTD_SIZE:=1280 - -# Netgear WNR854T: erase size is 128KiB = 0x00020000 = 131072 -ERASE_SIZE_128K:=128 - -# Linksys WRT350N v2: erase size is 64KiB = 0x00010000 = 65536 -ERASE_SIZE_64K:=64 - -# define JFFS2 sizes for include/image.mk -JFFS2_BLOCKSIZE:=64k 128k - - -### -### Image/BuildKernel -### - -define Image/BuildKernel -### Dummy comment for indented calls of Image/BuildKernel - - ## Netgear WN802T: mach id 3306 (0x0cea) -$(call Image/BuildKernel/ARM/zImage,wn802t,"\x0c\x1c\xa0\xe3\xea\x10\x81\xe3") -$(call Image/BuildKernel/ARM/uImage,wn802t) -ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) -$(call Image/BuildKernel/ARM/zImage,wn802t,"\x0c\x1c\xa0\xe3\xea\x10\x81\xe3",-initramfs) -$(call Image/BuildKernel/ARM/uImage,wn802t,-initramfs) -endif - ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) # nothing more to do for a ramdisk build -$(call Image/BuildKernel/JFFS2uImage,wn802t,$(ERASE_SIZE_64K),uImage) -$(call Image/Default/FileSizeCheck,$(KDIR)/wn802t-uImage.jffs2,$(shell expr $(KERNEL_MTD_SIZE) \* 1024)) - endif - - ## Netgear WNR854T: mach id 1801 (0x0709) -$(call Image/BuildKernel/ARM/zImage,wnr854t,"\x07\x1c\xa0\xe3\x09\x10\x81\xe3") -$(call Image/BuildKernel/ARM/uImage,wnr854t) -ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) -$(call Image/BuildKernel/ARM/zImage,wnr854t,"\x07\x1c\xa0\xe3\x09\x10\x81\xe3",-initramfs) -$(call Image/BuildKernel/ARM/uImage,wnr854t,-initramfs) -endif - ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) # nothing more to do for a ramdisk build -$(call Image/BuildKernel/JFFS2uImage,wnr854t,$(ERASE_SIZE_128K),uImage) -$(call Image/Default/FileSizeCheck,$(KDIR)/wnr854t-uImage.jffs2,$(shell expr $(KERNEL_MTD_SIZE) \* 1024)) - endif - - ## Linksys WRT350N v2: mach id 1633 (0x0661) -$(call Image/BuildKernel/ARM/zImage,wrt350nv2,"\x06\x1c\xa0\xe3\x61\x10\x81\xe3") -$(call Image/BuildKernel/ARM/uImage,wrt350nv2) -ifeq ($($CONFIG_TARGET_ROOTFS_INITRAMFS),y) -$(call Image/BuildKernel/ARM/zImage,wrt350nv2,"\x06\x1c\xa0\xe3\x61\x10\x81\xe3",-initramfs) -$(call Image/BuildKernel/ARM/uImage,wrt350nv2-initramfs) -endif - ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) # nothing more to do for a ramdisk build -$(call Image/Default/FileSizeCheck,$(KDIR)/wrt350nv2-uImage,$(shell expr $(KERNEL_MTD_SIZE) \* 1024)) - endif - - ## Buffalo Terastation Pro II/Live: mach id 1584 (0x0630) -$(call Image/BuildKernel/ARM/zImage,terastation-pro2,"\x06\x1c\xa0\xe3\x30\x10\x81\xe3") -$(call Image/BuildKernel/ARM/uImage,terastation-pro2) -ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) -$(call Image/BuildKernel/ARM/zImage,terastation-pro2,"\x06\x1c\xa0\xe3\x30\x10\x81\xe3",-initramfs) -$(call Image/BuildKernel/ARM/uImage,terastation-pro2,-initramfs) -endif -endef - -define Image/BuildKernel/ARM/zImage - # merge machine id and regular zImage into one file - # parameters: 1 = machine name, 2 = machine id as string in quotes - # $(BOARD) kernel zImage for $(1) - echo -en $(2) > '$(KDIR)/$(1)-zImage$(3)' - cat '$(KDIR)/zImage$(3)' >> '$(KDIR)/$(1)-zImage$(3)' -endef - -define Image/BuildKernel/ARM/uImage - # create uImage from zImage - # parameters: 1 = machine name - # $(BOARD) kernel uImage for $(1) - '$(STAGING_DIR_HOST)/bin/mkimage' -A arm -O linux -T kernel \ - -C none -a 0x00008000 -e 0x00008000 -n 'Linux-$(LINUX_VERSION)' \ - -d '$(KDIR)/$(1)-zImage$(2)' '$(KDIR)/$(1)-uImage$(2)' - ifeq ($(2),-initramfs) # only copy uImage for ramdisk build - cp '$(KDIR)/$(1)-uImage-initramfs' '$(BIN_DIR)/openwrt-$(1)-uImage-initramfs' - endif -endef - -define Image/BuildKernel/JFFS2uImage - # create JFFS2 partition with uImage file (result is already padded to erase size) - # parameters: 1 = machine name, 2 = erase size in KiB, 3 = uImage file name - # $(BOARD) kernel uImage for $(1) in JFFS2-$(2)k partition - rm -rf '$(TMP_DIR)/$(1)_jffs2_uimage' - mkdir '$(TMP_DIR)/$(1)_jffs2_uimage' - cp '$(KDIR)/$(1)-uImage' '$(TMP_DIR)/$(1)_jffs2_uimage/$(3)' - $(STAGING_DIR_HOST)/bin/mkfs.jffs2 --compression-mode=none --pad --little-endian --squash -e $(2)KiB -o '$(KDIR)/$(1)-uImage.jffs2' -d '$(TMP_DIR)/$(1)_jffs2_uimage' - rm -rf '$(TMP_DIR)/$(1)_jffs2_uimage' -endef - -define Image/Default/FileSizeCheck - # parameters: 1 = file path, 2 = maximum size in bytes - [ $(stat -c %s '$(1)') -le $(2) ] || { echo ' ERROR: $(1) too big (> $(2) bytes)'; rm -f $(1); } -endef - - -### -### Image/Build -### - -define Image/Build -### Dummy comment for indented calls of Image/Build with $(1) - - ## Prepare rootfs -$(call Image/Build/$(1),$(1)) - - ## Netgear WN802T -$(call Image/Build/Default,$(1),wn802t,$(ERASE_SIZE_64K),$(KERNEL_MTD_SIZE),.jffs2,NG_WN802T) - - ## Netgear WNR854T -$(call Image/Build/Default,$(1),wnr854t,$(ERASE_SIZE_128K),$(KERNEL_MTD_SIZE),.jffs2,NG_WNR854T) - - ## Linksys WRT350N v2 -$(call Image/Build/Linksys/wrt350nv2,$(1),wrt350nv2,$(ERASE_SIZE_64K),$(KERNEL_MTD_SIZE),) - - ## Buffalo Terastation Pro II/Live -$(call Image/Build/Default,$(1),terastation-pro2,$(ERASE_SIZE_128K),$(KERNEL_MTD_SIZE),.jffs2,TERASTATION_PRO2) -endef - -define Image/Build/squashfs -$(call prepare_generic_squashfs,$(KDIR)/root.squashfs) -endef - -## generate defines for all JFFS2 block sizes -define Image/Build/jffs2/sub - $(eval define Image/Build/jffs2-$(1) - cp '$$(KDIR)/root.jffs2-$(1)' '$$(BIN_DIR)/$$(IMG_PREFIX)-root.jffs2-$(1)' - endef) -endef - -$(foreach SZ,$(JFFS2_BLOCKSIZE),$(call Image/Build/jffs2/sub,$(SZ))) - -define Image/Build/Default - # parameters: 1 = rootfs type, 2 = machine name, 3 = erase size in KiB, 4 = kernel mtd size in KiB, 5 = kernel file suffix, 6 = header - ifeq ($(findstring jffs2-,$(1)),jffs2-) # JFFS2: build only image fitting to erase size - ifeq ($(1),jffs2-$(3)k) -$(call Image/Build/Default/sysupgrade,$(1),$(2),$(4),$(5)) -$(call Image/Build/Default/factory,$(1),$(2),$(6)) - endif - else - ifeq ($(1),ext4) # EXT4: ignore - # do nothing - else # do all other images -$(call Image/Build/Default/sysupgrade,$(1),$(2),$(4),$(5)) -$(call Image/Build/Default/factory,$(1),$(2),$(6)) - endif - endif -endef - -define Image/Build/Default/sysupgrade - # parameters: 1 = rootfs type, 2 = machine name, 3 = pad size in KiB (kernel mtd size or erase size), 4 = kernel file suffix - # $(BOARD) $(1) sysupgrade image for $(2) - ( \ - dd if='$(KDIR)/$(2)-uImage$(4)' bs=$(3)k conv=sync; \ - dd if='$(KDIR)/root.$(1)'; \ - ) > '$(BIN_DIR)/openwrt-$(2)-$(1)-sysupgrade.img' -endef - -define Image/Build/Default/factory - # parameters: 1 = rootfs type, 2 = machine name, 3 = header - # $(BOARD) $(1) factory upgrade image for $(2) - '$(STAGING_DIR_HOST)/bin/add_header' $(3) '$(BIN_DIR)/openwrt-$(2)-$(1)-sysupgrade.img' '$(BIN_DIR)/openwrt-$(2)-$(1)-factory.img' -endef - -## -## Image/Build/Linksys -## - -define Image/Build/Linksys/wrt350nv2 - # parameters: 1 = rootfs type, 2 = machine name, 3 = erase size in KiB, 4 = kernel mtd size in KiB, 5 = kernel file suffix - ifeq ($(findstring jffs2-,$(1)),jffs2-) # JFFS2: build only image fitting to erase size - ifeq ($(1),jffs2-$(3)k) -$(call Image/Build/Default/sysupgrade,$(1),$(2),$(4),$(5)) -$(call Image/Build/Linksys/wrt350nv2-builder,$(1),$(2)) - endif - else - ifeq ($(1),ext4) # EXT4: ignore - # do nothing - else # do all other images -$(call Image/Build/Default/sysupgrade,$(1),$(2),$(4),$(5)) -$(call Image/Build/Linksys/wrt350nv2-builder,$(1),$(2)) - endif - endif -endef - -define Image/Build/Linksys/wrt350nv2-builder - # parameters: 1 = rootfs type, 2 = machine name - # $(BOARD) $(1) factory and recovery image for $(2) via wrt350nv2-builder - rm -rf '$(TMP_DIR)/$(2)_factory' - mkdir '$(TMP_DIR)/$(2)_factory' - # create parameter file - echo ':image 0 $(BIN_DIR)/openwrt-$(2)-$(1)-sysupgrade.img' > '$(TMP_DIR)/$(2)_factory/$(2).par' - [ ! -f '$(STAGING_DIR_HOST)/share/wrt350nv2-builder/u-boot.bin' ] || ( \ - echo ':u-boot 0 $(STAGING_DIR_HOST)/share/wrt350nv2-builder/u-boot.bin' >> '$(TMP_DIR)/$(2)_factory/$(2).par'; \ - ) - echo '#version 0x2020' >> '$(TMP_DIR)/$(2)_factory/$(2).par' - # create bin file for recovery and factory image - -( \ - cd '$(TMP_DIR)/$(2)_factory'; \ - '$(STAGING_DIR_HOST)/bin/wrt350nv2-builder' -b '$(TMP_DIR)/$(2)_factory/$(2).par'; \ - ) && $(CP) '$(TMP_DIR)/$(2)_factory/wrt350n.bin' '$(BIN_DIR)/openwrt-$(2)-$(1)-recovery.bin' && \ - ( \ - cd '$(TMP_DIR)/$(2)_factory'; \ - zip 'wrt350n.zip' 'wrt350n.bin'; \ - ) && '$(STAGING_DIR_HOST)/bin/wrt350nv2-builder' -z '$(TMP_DIR)/$(2)_factory/wrt350n.zip' '$(BIN_DIR)/openwrt-$(2)-$(1)-factory.img' - rm -rf '$(TMP_DIR)/$(2)_factory' -endef - - -### -### Image/PreReq -### - -## Dependency for WRT350N v2 factory image -$(eval $(call RequireCommand,zip, \ - Please install zip. \ -)) diff --git a/target/linux/orion/image/harddisk.mk b/target/linux/orion/image/harddisk.mk deleted file mode 100644 index fb2f351b7f..0000000000 --- a/target/linux/orion/image/harddisk.mk +++ /dev/null @@ -1,57 +0,0 @@ -# -# Copyright (C) 2008-2010 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -define Image/BuildKernelMachId - echo -en "\x$(2)\x1c\xa0\xe3\x$(3)\x10\x81\xe3" > $(KDIR)/$(1)-zImage - cat $(LINUX_DIR)/arch/arm/boot/zImage >> $(KDIR)/$(1)-zImage - $(STAGING_DIR_HOST)/bin/mkimage -A arm -O linux -T kernel \ - -C none -a 0x00008000 -e 0x00008000 -n 'Linux-$(LINUX_VERSION)' \ - -d $(KDIR)/$(1)-zImage $(KDIR)/$(1)-uImage - cp $(KDIR)/$(1)-uImage $(BIN_DIR)/openwrt-$(1)-uImage -endef - -define Image/BuildKernel - # Orion Kernel uImages - # DT2: mach id 1514 (0x5EA) - $(call Image/BuildKernelMachId,dt2,05,ea) - # LaCie 2big Network: mach id 2342 (0x926) - $(call Image/BuildKernelMachId,net2big,09,26) -endef - -define Image/Build/Freecom - # Orion Freecom Images - # backup unwanted files - rm -rf ${TMP_DIR}/$2_backup - mkdir ${TMP_DIR}/$2_backup - -mv $(TARGET_DIR)/{var,jffs,rom} ${TMP_DIR}/$2_backup - # add extra files - $(INSTALL_DIR) $(TARGET_DIR)/boot - # TODO: Add special CMDLINE shim for webupgrade image here - $(CP) $(KDIR)/dt2-uImage $(TARGET_DIR)/boot/uImage - $(INSTALL_DIR) $(TARGET_DIR)/var - # create image - $(TAR) cfj $(BIN_DIR)/openwrt-$(2)-$(1).img --numeric-owner --owner=0 --group=0 -C $(TARGET_DIR)/ . - $(STAGING_DIR_HOST)/bin/encode_crc $(BIN_DIR)/openwrt-$(2)-$(1).img $(BIN_DIR)/openwrt-$(2)-$(1)-webupgrade.img $(3) - # remove extra files - rm -rf $(TARGET_DIR)/{boot,var} - # recover unwanted files - -mv ${TMP_DIR}/$2_backup/* $(TARGET_DIR)/ - rm -rf ${TMP_DIR}/$2_backup -endef - -define Image/Build -$(call Image/Build/$(1),$(1)) -$(call Image/Build/Freecom,$(1),dt2,DT,$(1)) -endef - -define Image/Build/squashfs -$(call prepare_generic_squashfs,$(KDIR)/root.squashfs) - ( \ - dd if=$(KDIR)/uImage bs=1024k conv=sync; \ - dd if=$(KDIR)/root.$(1) bs=128k conv=sync; \ - ) > $(BIN_DIR)/$(IMG_PREFIX)-$(1).img -endef diff --git a/target/linux/orion/patches-4.14/000-arm_openwrt_machtypes.patch b/target/linux/orion/patches-4.14/000-arm_openwrt_machtypes.patch deleted file mode 100644 index 5d52bd0afa..0000000000 --- a/target/linux/orion/patches-4.14/000-arm_openwrt_machtypes.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/arch/arm/tools/mach-types -+++ b/arch/arm/tools/mach-types -@@ -268,6 +268,7 @@ yl9200 MACH_YL9200 YL9200 1507 - rd88f5182 MACH_RD88F5182 RD88F5182 1508 - kurobox_pro MACH_KUROBOX_PRO KUROBOX_PRO 1509 - mx31_3ds MACH_MX31_3DS MX31_3DS 1511 -+dt2 MACH_DT2 DT2 1514 - qong MACH_QONG QONG 1524 - omap2evm MACH_OMAP2EVM OMAP2EVM 1534 - omap3evm MACH_OMAP3EVM OMAP3EVM 1535 -@@ -530,6 +531,7 @@ mx53_loco MACH_MX53_LOCO MX53_LOCO 32 - wario MACH_WARIO WARIO 3288 - cm_t3730 MACH_CM_T3730 CM_T3730 3290 - hrefv60 MACH_HREFV60 HREFV60 3293 -+wn802t MACH_WN802T WN802T 3306 - armlex4210 MACH_ARMLEX4210 ARMLEX4210 3361 - snowball MACH_SNOWBALL SNOWBALL 3363 - xilinx_ep107 MACH_XILINX_EP107 XILINX_EP107 3378 diff --git a/target/linux/orion/patches-4.14/100-wrt350nv2_openwrt_partition_map.patch b/target/linux/orion/patches-4.14/100-wrt350nv2_openwrt_partition_map.patch deleted file mode 100644 index 89c2c9420b..0000000000 --- a/target/linux/orion/patches-4.14/100-wrt350nv2_openwrt_partition_map.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c -+++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c -@@ -134,11 +134,11 @@ static struct mtd_partition wrt350n_v2_n - { - .name = "kernel", - .offset = 0x00000000, -- .size = 0x00760000, -+ .size = 0x00140000, // change to kernel mtd size here (1/3) - }, { - .name = "rootfs", -- .offset = 0x001a0000, -- .size = 0x005c0000, -+ .offset = 0x00140000, // change to kernel mtd size here (2/3) -+ .size = 0x00610000, // adopt to kernel mtd size here (3/3) = 0x00750000 - <kernel mtd size> - }, { - .name = "lang", - .offset = 0x00760000, -@@ -151,6 +151,14 @@ static struct mtd_partition wrt350n_v2_n - .name = "u-boot", - .offset = 0x007c0000, - .size = 0x00040000, -+ }, { -+ .name = "eRcOmM_do_not_touch", -+ .offset = 0x00750000, -+ .size = 0x00010000, // erasesize -+ }, { -+ .name = "image", // for sysupgrade -+ .offset = 0x00000000, -+ .size = 0x00750000, - }, - }; - diff --git a/target/linux/orion/patches-4.14/101-wnr854t_partition_map.patch b/target/linux/orion/patches-4.14/101-wnr854t_partition_map.patch deleted file mode 100644 index 881cfb773e..0000000000 --- a/target/linux/orion/patches-4.14/101-wnr854t_partition_map.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- a/arch/arm/mach-orion5x/wnr854t-setup.c -+++ b/arch/arm/mach-orion5x/wnr854t-setup.c -@@ -57,15 +57,19 @@ static struct mtd_partition wnr854t_nor_ - { - .name = "kernel", - .offset = 0x00000000, -- .size = 0x00100000, -+ .size = 0x00140000, - }, { - .name = "rootfs", -- .offset = 0x00100000, -- .size = 0x00660000, -+ .offset = 0x00140000, -+ .size = 0x00620000, - }, { - .name = "uboot", - .offset = 0x00760000, - .size = 0x00040000, -+ }, { -+ .name = "image", // for sysupgrade -+ .offset = 0x00000000, -+ .size = 0x00760000, - }, - }; - diff --git a/target/linux/orion/patches-4.14/200-dt2_board_support.patch b/target/linux/orion/patches-4.14/200-dt2_board_support.patch deleted file mode 100644 index fcadabcd17..0000000000 --- a/target/linux/orion/patches-4.14/200-dt2_board_support.patch +++ /dev/null @@ -1,557 +0,0 @@ ---- a/arch/arm/mach-orion5x/Kconfig -+++ b/arch/arm/mach-orion5x/Kconfig -@@ -49,6 +49,13 @@ config MACH_RD88F5182_DT - Say 'Y' here if you want your kernel to support the Marvell - Orion-NAS (88F5182) RD2, Flattened Device Tree. - -+config MACH_DT2 -+ bool "Freecom DataTank Gateway" -+ select I2C_BOARDINFO -+ help -+ Say 'Y' here if you want your kernel to support the -+ Freecom DataTank Gateway -+ - config MACH_KUROBOX_PRO - bool "KuroBox Pro" - select I2C_BOARDINFO if I2C ---- a/arch/arm/mach-orion5x/Makefile -+++ b/arch/arm/mach-orion5x/Makefile -@@ -16,6 +16,7 @@ obj-$(CONFIG_MACH_TS78XX) += ts78xx-setu - obj-$(CONFIG_MACH_MV2120) += mv2120-setup.o - obj-$(CONFIG_MACH_NET2BIG) += net2big-setup.o - obj-$(CONFIG_MACH_WNR854T) += wnr854t-setup.o -+obj-$(CONFIG_MACH_DT2) += dt2-setup.o - obj-$(CONFIG_MACH_RD88F5181L_GE) += rd88f5181l-ge-setup.o - obj-$(CONFIG_MACH_RD88F5181L_FXO) += rd88f5181l-fxo-setup.o - obj-$(CONFIG_MACH_RD88F6183AP_GE) += rd88f6183ap-ge-setup.o ---- /dev/null -+++ b/arch/arm/mach-orion5x/dt2-common.h -@@ -0,0 +1,82 @@ -+#ifndef __INC_DT2_COMMON_H -+#define __INC_DT2_COMMON_H -+ -+#define ATAG_MV_UBOOT 0x41000403 -+ -+struct tag_mv_uboot { -+ u32 uboot_version; -+ u32 tclk; -+ u32 sysclk; -+ u32 isUsbHost; -+ u32 overEthAddr; -+ u8 dt2_eeprom[256]; -+}; -+ -+#define DT2_EEPROM_ADDR 0x50 -+#define DT2_EEPROM_OFFSET 0 -+#define DT2_EEPROM_LENGTH 256 -+ -+#define DT2_SERIAL_NUMBER_DEFAULT "run on default\0" -+#define DT2_REVISION_DEFAULT_INIT 0xFF -+#define DT2_CONFIG_FLAGS_DEFAULT 0x00 -+ -+#define _PACKED_ __attribute__((packed)) -+ -+struct DT2_EEPROM_SD_CONFIG { -+ unsigned int ram_1; -+ unsigned int ram_2; -+ unsigned int ram_3; -+ unsigned int ram_4; -+ unsigned char ram_5; -+ unsigned char ram_6; -+ unsigned short ram_7; -+ unsigned int magic_id; -+ } _PACKED_; // 24 Bytes in total -+ -+struct DT2_EEPROM_FC_CONFIG { -+ unsigned char rtc_sts_mask; -+ unsigned char rtc_sts_init; -+ unsigned char rtc_int_mask; -+ unsigned char rtc_int_init; -+ unsigned char rtc_atrim_init; -+ unsigned char rtc_dtrim_init; -+ unsigned char dummy1; -+ unsigned char dummy2; -+ unsigned char dt2_config_flags; /* 0x80 to load rtc_values to RTC */ -+ unsigned char dt2_revision; /* upper nibble is HW, lower nibble is FW */ -+ unsigned char dt2_serial_number[16]; /* Serial number of DT-2 */ -+ } _PACKED_; // 26 Bytes in total -+ -+#define CFG_LOAD_RTC_VALUES 0x80 -+ -+struct DT2_EEPROM_GW_CONFIG { -+ unsigned int dummy1; -+ unsigned int dummy2; -+ unsigned int dummy3; -+ unsigned char dummy4; -+ unsigned char tos_video_val1; -+ unsigned char tos_video_val2; -+ unsigned char tos_voip_val; -+ unsigned char qos_igmp_cfg; -+ unsigned char num_of_ifs; -+ unsigned short vlan_ports_if[3]; -+ unsigned char mac_addr[3][6]; -+ } _PACKED_; // 42 Bytes in total -+ -+#define _SIZE_OF_ALL_STRUCTS_ (sizeof(struct DT2_EEPROM_SD_CONFIG) + sizeof(struct DT2_EEPROM_FC_CONFIG) + sizeof(struct DT2_EEPROM_GW_CONFIG)) -+ -+// MV = EEPROM - SD - FC - GW - CRC -+struct DT2_EEPROM_MV_CONFIG { -+ unsigned int reg_addr[(DT2_EEPROM_LENGTH - _SIZE_OF_ALL_STRUCTS_ - sizeof(unsigned int)) / (sizeof(unsigned int) * 2)]; -+ unsigned int reg_data[(DT2_EEPROM_LENGTH - _SIZE_OF_ALL_STRUCTS_ - sizeof(unsigned int)) / (sizeof(unsigned int) * 2)]; -+ } _PACKED_; -+ -+struct DT2_EEPROM_STRUCT { -+ struct DT2_EEPROM_MV_CONFIG mv; -+ struct DT2_EEPROM_SD_CONFIG sd; -+ struct DT2_EEPROM_FC_CONFIG fc; -+ struct DT2_EEPROM_GW_CONFIG gw; -+ unsigned int crc; -+ } _PACKED_; -+ -+#endif ---- /dev/null -+++ b/arch/arm/mach-orion5x/dt2-setup.c -@@ -0,0 +1,443 @@ -+/* -+ * arch/arm/mach-orion5x/dt2-setup.c -+ * -+ * Freecom DataTank Gateway Setup -+ * -+ * Copyright (C) 2009 Zintis Petersons <Zintis.Petersons@abcsolutions.lv> -+ * -+ * This file is licensed under the terms of the GNU General Public -+ * License version 2. This program is licensed "as is" without any -+ * warranty of any kind, whether express or implied. -+ */ -+ -+#include <linux/kernel.h> -+#include <linux/init.h> -+#include <linux/platform_device.h> -+#include <linux/pci.h> -+#include <linux/irq.h> -+#include <linux/mtd/physmap.h> -+#include <linux/mv643xx_eth.h> -+#include <linux/ethtool.h> -+#include <linux/if_ether.h> -+#include <net/dsa.h> -+#include <linux/ata_platform.h> -+#include <linux/i2c.h> -+#include <linux/reboot.h> -+#include <linux/interrupt.h> -+#include <asm/mach-types.h> -+#include <asm/gpio.h> -+#include <asm/mach/arch.h> -+#include <asm/mach/pci.h> -+#include "orion5x.h" -+#include "common.h" -+#include "mpp.h" -+ -+/***************************************************************************** -+ * DT2 local -+ ****************************************************************************/ -+#include <asm/setup.h> -+#include "dt2-common.h" -+ -+u32 mvUbootVer = 0; -+u32 mvTclk = 166666667; -+u32 mvSysclk = 200000000; -+u32 mvIsUsbHost = 1; -+u32 overEthAddr = 0; -+u32 gBoardId = -1; -+struct DT2_EEPROM_STRUCT dt2_eeprom; -+ -+/***************************************************************************** -+ * DT2 Info -+ ****************************************************************************/ -+/* -+ * PCI -+ */ -+ -+#define DT2_PCI_SLOT0_OFFS 7 -+#define DT2_PCI_SLOT0_IRQ_A_PIN 3 -+#define DT2_PCI_SLOT0_IRQ_B_PIN 2 -+ -+#define DT2_PIN_GPIO_SYNC 25 -+#define DT2_PIN_GPIO_POWER 24 -+#define DT2_PIN_GPIO_UNPLUG1 23 -+#define DT2_PIN_GPIO_UNPLUG2 22 -+#define DT2_PIN_GPIO_RESET 4 -+ -+#define DT2_NOR_BOOT_BASE 0xf4000000 -+#define DT2_NOR_BOOT_SIZE SZ_512K -+ -+#define DT2_LEDS_BASE 0xfa000000 -+#define DT2_LEDS_SIZE SZ_1K -+ -+/***************************************************************************** -+ * 512K NOR Flash on Device bus Boot CS -+ ****************************************************************************/ -+ -+static struct mtd_partition dt2_partitions[] = { -+ { -+ .name = "u-boot", -+ .size = 0x00080000, -+ .offset = 0, -+ }, -+}; -+ -+static struct physmap_flash_data dt2_nor_flash_data = { -+ .width = 1, /* 8 bit bus width */ -+ .parts = dt2_partitions, -+ .nr_parts = ARRAY_SIZE(dt2_partitions) -+}; -+ -+static struct resource dt2_nor_flash_resource = { -+ .flags = IORESOURCE_MEM, -+ .start = DT2_NOR_BOOT_BASE, -+ .end = DT2_NOR_BOOT_BASE + DT2_NOR_BOOT_SIZE - 1, -+}; -+ -+static struct platform_device dt2_nor_flash = { -+ .name = "physmap-flash", -+ .id = 0, -+ .dev = { -+ .platform_data = &dt2_nor_flash_data, -+ }, -+ .resource = &dt2_nor_flash_resource, -+ .num_resources = 1, -+}; -+ -+/***************************************************************************** -+ * PCI -+ ****************************************************************************/ -+ -+void __init dt2_pci_preinit(void) -+{ -+ int pin, irq; -+ -+ /* -+ * Configure PCI GPIO IRQ pins -+ */ -+ pin = DT2_PCI_SLOT0_IRQ_A_PIN; -+ if (gpio_request(pin, "PCI IntA") == 0) { -+ if (gpio_direction_input(pin) == 0) { -+ irq = gpio_to_irq(pin); -+ irq_set_irq_type(irq, IRQ_TYPE_LEVEL_LOW); -+ printk (KERN_INFO "PCI IntA IRQ: %d\n", irq); -+ } else { -+ printk(KERN_ERR "dt2_pci_preinit failed to " -+ "irq_set_irq_type pin %d\n", pin); -+ gpio_free(pin); -+ } -+ } else { -+ printk(KERN_ERR "dt2_pci_preinit failed to request gpio %d\n", pin); -+ } -+ -+ pin = DT2_PCI_SLOT0_IRQ_B_PIN; -+ if (gpio_request(pin, "PCI IntB") == 0) { -+ if (gpio_direction_input(pin) == 0) { -+ irq = gpio_to_irq(pin); -+ irq_set_irq_type(irq, IRQ_TYPE_LEVEL_LOW); -+ printk (KERN_INFO "PCI IntB IRQ: %d\n", irq); -+ } else { -+ printk(KERN_ERR "dt2_pci_preinit failed to " -+ "irq_set_irq_type pin %d\n", pin); -+ gpio_free(pin); -+ } -+ } else { -+ printk(KERN_ERR "dt2_pci_preinit failed to gpio_request %d\n", pin); -+ } -+} -+ -+static int __init dt2_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) -+{ -+ int irq; -+ -+ /* -+ * Check for devices with hard-wired IRQs. -+ */ -+ irq = orion5x_pci_map_irq(dev, slot, pin); -+ if (irq != -1){ -+ printk(KERN_INFO "orion5x_pci_map_irq: %d\n", irq); -+ return irq; -+ } -+ -+ /* -+ * PCI IRQs are connected via GPIOs -+ */ -+ switch (slot - DT2_PCI_SLOT0_OFFS) { -+ case 0: -+ if (pin == 1){ -+ irq = gpio_to_irq(DT2_PCI_SLOT0_IRQ_A_PIN); -+ printk(KERN_INFO "dt2_pci_map_irq DT2_PCI_SLOT0_IRQ_A_PIN: %d\n", irq); -+ } -+ else { -+ irq = gpio_to_irq(DT2_PCI_SLOT0_IRQ_B_PIN); -+ printk(KERN_INFO "dt2_pci_map_irq DT2_PCI_SLOT0_IRQ_B_PIN: %d\n", irq); -+ } -+ default: -+ irq = -1; -+ printk(KERN_INFO "dt2_pci_map_irq IRQ: %d\n", irq); -+ } -+ -+ return irq; -+} -+ -+static struct hw_pci dt2_pci __initdata = { -+ .nr_controllers = 2, -+ .preinit = dt2_pci_preinit, -+ .setup = orion5x_pci_sys_setup, -+ .scan = orion5x_pci_sys_scan_bus, -+ .map_irq = dt2_pci_map_irq, -+}; -+ -+static int __init dt2_pci_init(void) -+{ -+ if (machine_is_dt2()) -+ pci_common_init(&dt2_pci); -+ -+ return 0; -+} -+ -+subsys_initcall(dt2_pci_init); -+ -+/***************************************************************************** -+ * Ethernet -+ ****************************************************************************/ -+ -+static struct mv643xx_eth_platform_data dt2_eth_data = { -+ .phy_addr = MV643XX_ETH_PHY_NONE, -+ .speed = SPEED_1000, -+ .duplex = DUPLEX_FULL, -+}; -+ -+static struct dsa_chip_data dt2_switch_chip_data = { -+ .port_names[0] = "wan", -+ .port_names[1] = "lan1", -+ .port_names[2] = "lan2", -+ .port_names[3] = "cpu", -+ .port_names[4] = "lan3", -+ .port_names[5] = "lan4", -+}; -+ -+/***************************************************************************** -+ * RTC ISL1208 on I2C bus -+ ****************************************************************************/ -+static struct i2c_board_info __initdata dt2_i2c_rtc = { -+ I2C_BOARD_INFO("isl1208", 0x6F), -+}; -+ -+/***************************************************************************** -+ * Sata -+ ****************************************************************************/ -+static struct mv_sata_platform_data dt2_sata_data = { -+ .n_ports = 2, -+}; -+ -+/***************************************************************************** -+ * General Setup -+ ****************************************************************************/ -+static unsigned int dt2_mpp_modes[] __initdata = { -+ MPP0_GPIO, // RTC interrupt -+ MPP1_GPIO, // 88e6131 interrupt -+ MPP2_GPIO, // PCI_intB -+ MPP3_GPIO, // PCI_intA -+ MPP4_GPIO, // reset button switch -+ MPP5_GPIO, -+ MPP6_GPIO, -+ MPP7_GPIO, -+ MPP8_GPIO, -+ MPP9_GIGE, /* GE_RXERR */ -+ MPP10_GPIO, // usb -+ MPP11_GPIO, // usb -+ MPP12_GIGE, // GE_TXD[4] -+ MPP13_GIGE, // GE_TXD[5] -+ MPP14_GIGE, // GE_TXD[6] -+ MPP15_GIGE, // GE_TXD[7] -+ MPP16_GIGE, // GE_RXD[4] -+ MPP17_GIGE, // GE_RXD[5] -+ MPP18_GIGE, // GE_RXD[6] -+ MPP19_GIGE, // GE_RXD[7] -+ 0, -+}; -+ -+/***************************************************************************** -+ * LEDS -+ ****************************************************************************/ -+static struct platform_device dt2_leds = { -+ .name = "dt2-led", -+ .id = -1, -+}; -+ -+/**************************************************************************** -+ * GPIO key -+ ****************************************************************************/ -+static irqreturn_t dt2_reset_handler(int irq, void *dev_id) -+{ -+ /* This is the paper-clip reset which does an emergency reboot. */ -+ printk(KERN_INFO "Restarting system.\n"); -+ machine_restart(NULL); -+ -+ /* This should never be reached. */ -+ return IRQ_HANDLED; -+} -+ -+static irqreturn_t dt2_power_handler(int irq, void *dev_id) -+{ -+ printk(KERN_INFO "Shutting down system.\n"); -+ machine_power_off(); -+ return IRQ_HANDLED; -+} -+ -+static void __init dt2_init(void) -+{ -+ /* -+ * Setup basic Orion functions. Need to be called early. -+ */ -+ orion5x_init(); -+ -+ orion5x_mpp_conf(dt2_mpp_modes); -+ -+ /* -+ * Configure peripherals. -+ */ -+ -+ orion5x_uart0_init(); -+ orion5x_ehci0_init(); -+ orion5x_ehci1_init(); -+ orion5x_i2c_init(); -+ orion5x_sata_init(&dt2_sata_data); -+ orion5x_xor_init(); -+ -+ printk(KERN_INFO "U-Boot parameters:\n"); -+ printk(KERN_INFO "Sys Clk = %d, Tclk = %d, BoardID = 0x%02x\n", mvSysclk, mvTclk, gBoardId); -+ -+ printk(KERN_INFO "Serial: %s\n", dt2_eeprom.fc.dt2_serial_number); -+ printk(KERN_INFO "Revision: %016x\n", dt2_eeprom.fc.dt2_revision); -+ printk(KERN_INFO "DT2: Using MAC address %pM for port 0\n", -+ dt2_eeprom.gw.mac_addr[0]); -+ printk(KERN_INFO "DT2: Using MAC address %pM for port 1\n", -+ dt2_eeprom.gw.mac_addr[1]); -+ -+ orion5x_eth_init(&dt2_eth_data); -+ memcpy(dt2_eth_data.mac_addr, dt2_eeprom.gw.mac_addr[0], 6); -+ orion5x_eth_switch_init(&dt2_switch_chip_data); -+ -+ i2c_register_board_info(0, &dt2_i2c_rtc, 1); -+ -+ mvebu_mbus_add_window_by_id(ORION_MBUS_DEVBUS_BOOT_TARGET, -+ ORION_MBUS_DEVBUS_BOOT_ATTR, -+ DT2_NOR_BOOT_BASE, DT2_NOR_BOOT_SIZE); -+ -+ platform_device_register(&dt2_nor_flash); -+ -+ mvebu_mbus_add_window_by_id(ORION_MBUS_DEVBUS_TARGET(0), -+ ORION_MBUS_DEVBUS_ATTR(0), -+ DT2_LEDS_BASE, DT2_LEDS_SIZE); -+ platform_device_register(&dt2_leds); -+ -+ if (request_irq(gpio_to_irq(DT2_PIN_GPIO_RESET), &dt2_reset_handler, -+ IRQF_TRIGGER_LOW, -+ "DT2: Reset button", NULL) < 0) { -+ -+ printk("DT2: Reset Button IRQ %d not available\n", -+ gpio_to_irq(DT2_PIN_GPIO_RESET)); -+ } -+ -+ if (request_irq(gpio_to_irq(DT2_PIN_GPIO_POWER), &dt2_power_handler, -+ IRQF_TRIGGER_LOW, -+ "DT2: Power button", NULL) < 0) { -+ -+ printk(KERN_DEBUG "DT2: Power Button IRQ %d not available\n", -+ gpio_to_irq(DT2_PIN_GPIO_POWER)); -+ } -+} -+ -+static int __init parse_tag_dt2_uboot(const struct tag *t) -+{ -+ struct tag_mv_uboot *mv_uboot; -+ -+ // Get pointer to our block -+ mv_uboot = (struct tag_mv_uboot*)&t->u; -+ mvTclk = mv_uboot->tclk; -+ mvSysclk = mv_uboot->sysclk; -+ mvUbootVer = mv_uboot->uboot_version; -+ mvIsUsbHost = mv_uboot->isUsbHost; -+ -+ // Some clock fixups -+ if(mvTclk == 166000000) mvTclk = 166666667; -+ else if(mvTclk == 133000000) mvTclk = 133333333; -+ else if(mvSysclk == 166000000) mvSysclk = 166666667; -+ -+ gBoardId = (mvUbootVer & 0xff); -+ -+ //DT2 specific data -+ memcpy(&dt2_eeprom, mv_uboot->dt2_eeprom, sizeof(struct DT2_EEPROM_STRUCT)); -+ -+ return 0; -+} -+__tagtable(ATAG_MV_UBOOT, parse_tag_dt2_uboot); -+ -+/* -+ * This is OpenWrt specific fixup. It includes code from original "tag_fixup_mem32" to -+ * fixup bogus memory tags and also fixes kernel cmdline by adding " init=/etc/preinit" -+ * at the end. It is important to flash OpenWrt image from original Freecom firmware. -+ * -+ * Vanilla kernel should use "tag_fixup_mem32" function. -+ */ -+static void __init openwrt_fixup(struct tag *t, char **from) -+{ -+ char *p = NULL; -+ static char openwrt_init_tag[] __initdata = " init=/etc/preinit"; -+ -+ for (; t->hdr.size; t = tag_next(t)){ -+ /* Locate the Freecom cmdline */ -+ if (t->hdr.tag == ATAG_CMDLINE) { -+ p = t->u.cmdline.cmdline; -+ printk("%s(%d): Found cmdline '%s' at 0x%0lx\n", -+ __FUNCTION__, __LINE__, p, (unsigned long)p); -+ } -+ /* -+ * Many orion-based systems have buggy bootloader implementations. -+ * This is a common fixup for bogus memory tags. -+ */ -+ if (t->hdr.tag == ATAG_MEM && -+ (!t->u.mem.size || t->u.mem.size & ~PAGE_MASK || -+ t->u.mem.start & ~PAGE_MASK)) { -+ printk(KERN_WARNING -+ "Clearing invalid memory bank %dKB@0x%08x\n", -+ t->u.mem.size / 1024, t->u.mem.start); -+ t->hdr.tag = 0; -+ } -+ } -+ -+ printk("%s(%d): End of table at 0x%0lx\n", __FUNCTION__, __LINE__, (unsigned long)t); -+ -+ /* Overwrite the end of the table with a new cmdline tag. */ -+ t->hdr.tag = ATAG_CMDLINE; -+ t->hdr.size = -+ (sizeof (struct tag_header) + -+ strlen(p) + strlen(openwrt_init_tag) + 1 + 4) >> 2; -+ -+ strlcpy(t->u.cmdline.cmdline, p, COMMAND_LINE_SIZE); -+ strlcpy(t->u.cmdline.cmdline + strlen(p), openwrt_init_tag, -+ COMMAND_LINE_SIZE - strlen(p)); -+ -+ printk("%s(%d): New cmdline '%s' at 0x%0lx\n", -+ __FUNCTION__, __LINE__, -+ t->u.cmdline.cmdline, (unsigned long)t->u.cmdline.cmdline); -+ -+ t = tag_next(t); -+ -+ printk("%s(%d): New end of table at 0x%0lx\n", __FUNCTION__, __LINE__, (unsigned long)t); -+ -+ t->hdr.tag = ATAG_NONE; -+ t->hdr.size = 0; -+} -+ -+/* Warning: Freecom uses their own custom bootloader with mach-type (=1500) */ -+MACHINE_START(DT2, "Freecom DataTank Gateway") -+ /* Maintainer: Zintis Petersons <Zintis.Petersons@abcsolutions.lv> */ -+ .atag_offset = 0x100, -+ .init_machine = dt2_init, -+ .map_io = orion5x_map_io, -+ .init_irq = orion5x_init_irq, -+ .init_time = orion5x_timer_init, -+ .fixup = openwrt_fixup, //tag_fixup_mem32, -+MACHINE_END diff --git a/target/linux/orion/patches-4.14/210-wn802t_support.patch b/target/linux/orion/patches-4.14/210-wn802t_support.patch deleted file mode 100644 index 2a3393f283..0000000000 --- a/target/linux/orion/patches-4.14/210-wn802t_support.patch +++ /dev/null @@ -1,72 +0,0 @@ ---- a/arch/arm/mach-orion5x/Kconfig -+++ b/arch/arm/mach-orion5x/Kconfig -@@ -150,10 +150,13 @@ config MACH_MSS2_DT - Maxtor Shared Storage II platform. - - config MACH_WNR854T -- bool "Netgear WNR854T" -+ bool "Netgear WNR854T / WN802T" - help - Say 'Y' here if you want your kernel to support the -- Netgear WNR854T platform. -+ Netgear WNR854T or WN802T platform. -+ -+config MACH_WN802T -+ def_bool MACH_WNR854T - - config MACH_RD88F5181L_GE - bool "Marvell Orion-VoIP GE Reference Design" ---- a/arch/arm/mach-orion5x/wnr854t-setup.c -+++ b/arch/arm/mach-orion5x/wnr854t-setup.c -@@ -110,6 +110,11 @@ static struct dsa_chip_data wnr854t_swit - .port_names[7] = "lan2", - }; - -+static struct dsa_chip_data wn802t_switch_chip_data = { -+ .port_names[2] = "wan", -+ .port_names[3] = "cpu", -+}; -+ - static void __init wnr854t_init(void) - { - /* -@@ -123,7 +128,10 @@ static void __init wnr854t_init(void) - * Configure peripherals. - */ - orion5x_eth_init(&wnr854t_eth_data); -- orion5x_eth_switch_init(&wnr854t_switch_chip_data); -+ if (machine_is_wn802t()) -+ orion5x_eth_switch_init(&wn802t_switch_chip_data); -+ else -+ orion5x_eth_switch_init(&wnr854t_switch_chip_data); - orion5x_uart0_init(); - - mvebu_mbus_add_window_by_id(ORION_MBUS_DEVBUS_BOOT_TARGET, -@@ -163,7 +171,7 @@ static struct hw_pci wnr854t_pci __initd - - static int __init wnr854t_pci_init(void) - { -- if (machine_is_wnr854t()) -+ if (machine_is_wnr854t() || machine_is_wn802t()) - pci_common_init(&wnr854t_pci); - - return 0; -@@ -177,6 +185,18 @@ MACHINE_START(WNR854T, "Netgear WNR854T" - .init_machine = wnr854t_init, - .map_io = orion5x_map_io, - .init_early = orion5x_init_early, -+ .init_irq = orion5x_init_irq, -+ .init_time = orion5x_timer_init, -+ .fixup = tag_fixup_mem32, -+ .restart = orion5x_restart, -+MACHINE_END -+ -+MACHINE_START(WN802T, "Netgear WN802T") -+ /* Maintainer: Imre Kaloz <kaloz@openwrt.org> */ -+ .atag_offset = 0x100, -+ .init_machine = wnr854t_init, -+ .map_io = orion5x_map_io, -+ .init_early = orion5x_init_early, - .init_irq = orion5x_init_irq, - .init_time = orion5x_timer_init, - .fixup = tag_fixup_mem32, |