mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-28 17:48:58 +00:00
3001d3c5d4
On master, the bootwrapper link-address for all simpleImage targets was relocated to 0x15000000 due to growing kernel size. This was not done on OpenWrt 23.05, as the decompressed kernel still fits. However, with the wrapper for the WS-AP3710i, the bootloader attempts execute in-place with the uImage load-address of 0x1000000. As the image is compiled without the uImage header in mind, this naturally fails. In order to fix this, link the WS-AP3715i simpleImage at 0x15000000 as done in master. This will force the bootloader to relocate the code to the proper address and skip XIP. Signed-off-by: David Bauer <mail@david-bauer.net>
117 lines
4.3 KiB
Makefile
117 lines
4.3 KiB
Makefile
define Build/MultiImage
|
|
rm -rf $@.fakerd $@.new
|
|
|
|
dd if=/dev/zero of=$@.fakerd bs=32 count=1 conv=sync
|
|
|
|
-$(STAGING_DIR_HOST)/bin/mkimage -A $(LINUX_KARCH) -O linux -T multi -C $(1) \
|
|
-a $(KERNEL_LOADADDR) -e $(KERNEL_ENTRY) -n '$(BOARD_NAME) initramfs' \
|
|
-d $@:$@.fakerd:$(KDIR)/image-$(firstword $(DEVICE_DTS)).dtb $@.new
|
|
mv $@.new $@
|
|
rm -rf $@.fakerd
|
|
endef
|
|
|
|
define Device/aerohive_hiveap-330
|
|
DEVICE_VENDOR := Aerohive
|
|
DEVICE_MODEL := HiveAP-330
|
|
DEVICE_ALT0_VENDOR := Aerohive
|
|
DEVICE_ALT0_MODEL := HiveAP-350
|
|
DEVICE_PACKAGES := kmod-tpm-i2c-atmel kmod-hwmon-lm70
|
|
BLOCKSIZE := 128k
|
|
KERNEL := kernel-bin | uImage none
|
|
KERNEL_INITRAMFS := kernel-bin | MultiImage none
|
|
KERNEL_SIZE := 16m
|
|
IMAGES := sysupgrade.bin
|
|
IMAGE/sysupgrade.bin := append-dtb | pad-to 256k | append-kernel | \
|
|
append-rootfs | pad-rootfs | check-size | append-metadata
|
|
IMAGE_SIZE = 63m
|
|
DEVICE_COMPAT_VERSION := 2.0
|
|
DEVICE_COMPAT_MESSAGE := \n$\
|
|
!The partitioning of the HiveAP 330 has changed! \n$\
|
|
To upgrade, please take a look at the install instructions over \
|
|
at the device's wiki: <https://openwrt.org/toh/aerohive/hiveap-330> \n$\
|
|
An abridged version for the console is provided here for comfort. \n$\
|
|
Run the following script into a shell on the device and retry this \
|
|
sysupgrade again: \n$\
|
|
cat <<- "EOF" > /tmp/uboot-fix.sh; sh /tmp/uboot-fix.sh \n$\
|
|
. /lib/functions.sh \n$\
|
|
. /lib/functions/system.sh \n$\
|
|
opkg update && opkg install uboot-envtools kmod-mtd-rw || exit 2 \n$\
|
|
insmod mtd-rw i_want_a_brick=y || exit 3 \n$\
|
|
echo "/dev/mtd$$$$(find_mtd_index u-boot-env) 0x0 0x20000 0x10000" > "/etc/fw_env.config" \n$\
|
|
fw_setenv owrt_boot 'setenv bootargs console=ttyS0,9600;bootm 0xEC040000 - 0xEC000000' \n$\
|
|
cp "/dev/mtd$$$$(find_mtd_index 'u-boot')" /tmp/uboot \n$\
|
|
cp /tmp/uboot /tmp/uboot_patched \n$\
|
|
strings -td < /tmp/uboot | grep '^ *[0-9]* *\\(run owrt_boot\\|setenv bootargs\\).*cp\\.l' | \n$\
|
|
awk '{print $$$$1}' | \n$\
|
|
while read offset; do \n$\
|
|
echo -n "run owrt_boot; " | dd of=/tmp/uboot_patched bs=1 seek=$$$${offset} conv=notrunc \n$\
|
|
done \n$\
|
|
mtd write /tmp/uboot_patched u-boot \n$\
|
|
uci set system.@system[0].compat_version=2.0; uci commit; \n$\
|
|
EOF \n$\
|
|
\n$\
|
|
Note that if this fails, you will need to use the serial console \n$\
|
|
to re-install OpenWrt. \n$\
|
|
Note that after this sysupgrade, the AP will be unavailable for 7 \n$\
|
|
minutes to reformat flash."
|
|
|
|
endef
|
|
TARGET_DEVICES += aerohive_hiveap-330
|
|
|
|
define Device/enterasys_ws-ap3710i
|
|
DEVICE_VENDOR := Enterasys
|
|
DEVICE_MODEL := WS-AP3710i
|
|
BLOCKSIZE := 128k
|
|
KERNEL_NAME := simpleImage.ws-ap3710i
|
|
KERNEL_ENTRY := 0x1500000
|
|
KERNEL_LOADADDR := 0x1500000
|
|
KERNEL = kernel-bin | uImage none
|
|
KERNEL_INITRAMFS := kernel-bin | uImage none
|
|
IMAGES := sysupgrade.bin
|
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
|
endef
|
|
TARGET_DEVICES += enterasys_ws-ap3710i
|
|
|
|
define Device/extreme-networks_ws-ap3825i
|
|
DEVICE_VENDOR := Extreme Networks
|
|
DEVICE_MODEL := WS-AP3825i
|
|
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
|
|
BLOCKSIZE := 128k
|
|
KERNEL_NAME := simpleImage.ws-ap3825i
|
|
KERNEL_ENTRY := 0x1000000
|
|
KERNEL_LOADADDR := 0x1000000
|
|
KERNEL = kernel-bin | fit none $(KDIR)/image-$$(DEVICE_DTS).dtb
|
|
IMAGES := sysupgrade.bin
|
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
|
endef
|
|
TARGET_DEVICES += extreme-networks_ws-ap3825i
|
|
|
|
define Device/hpe_msm460
|
|
DEVICE_VENDOR := Hewlett-Packard
|
|
DEVICE_MODEL := MSM460
|
|
KERNEL = kernel-bin | lzma | fit lzma $(KDIR)/image-$$(DEVICE_DTS).dtb
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
SUBPAGESIZE := 2048
|
|
KERNEL_IN_UBI := 1
|
|
UBINIZE_OPTS := -E 5
|
|
IMAGES := factory.bin sysupgrade.bin
|
|
IMAGE/factory.bin := append-ubi
|
|
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
|
endef
|
|
TARGET_DEVICES += hpe_msm460
|
|
|
|
define Device/ocedo_panda
|
|
DEVICE_VENDOR := OCEDO
|
|
DEVICE_MODEL := Panda
|
|
DEVICE_PACKAGES := kmod-rtc-ds1307
|
|
KERNEL = kernel-bin | gzip | fit gzip $(KDIR)/image-$$(DEVICE_DTS).dtb
|
|
PAGESIZE := 2048
|
|
SUBPAGESIZE := 512
|
|
BLOCKSIZE := 128k
|
|
IMAGES := fdt.bin sysupgrade.bin
|
|
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
|
IMAGE/fdt.bin := append-dtb
|
|
endef
|
|
TARGET_DEVICES += ocedo_panda
|