mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-28 01:28:59 +00:00
43b8e5b120
It seems that newer builds of OpenWRT have a gzip kernel larger than 2MB~, which for some reason fails to boot on this board. However, we have 8MB of kernel space and currently the uncompressed kernel is 6.5MB~, so we have some space to grow until a better solution is worked out. Before: ## Booting kernel from Legacy Image at ee840000 ... Image Name: Linux-4.19.53 Created: 2019-06-22 11:17:48 UTC Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 2315724 Bytes = 2.2 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Loading init Ramdisk from Legacy Image at 02000000 ... Image Name: OpenWrt fake ramdisk Created: 2019-06-22 11:17:48 UTC Image Type: PowerPC Linux RAMDisk Image (uncompressed) Data Size: 0 Bytes = 0 kB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at ec000000 Booting using the fdt blob at 0xec000000 Uncompressing Kernel Image ... Error: Bad gzipped data GUNZIP: uncompress, out-of-mem or overwrite error - must RESET board to recover Loading Ramdisk to 10000000, end 10000000 ... OK Loading Device Tree to 00ffa000, end 00fffc78 ... OK ft_fixup_l2cache: FDT_ERR_NOTFOUND After: ## Booting kernel from Legacy Image at ee840000 ... Image Name: POWERPC OpenWrt Linux-4.19.53 Created: 2019-06-22 11:17:48 UTC Image Type: PowerPC Linux Kernel Image (uncompressed) Data Size: 6724584 Bytes = 6.4 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Loading init Ramdisk from Legacy Image at 02000000 ... Image Name: OpenWrt fake ramdisk Created: 2019-06-22 11:17:48 UTC Image Type: PowerPC Linux RAMDisk Image (uncompressed) Data Size: 0 Bytes = 0 kB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at ec000000 Booting using the fdt blob at 0xec000000 Loading Kernel Image ... OK OK Loading Ramdisk to 10000000, end 10000000 ... OK Loading Device Tree to 00ffa000, end 00fffc78 ... OK Signed-off-by: Chris Blake <chrisrblake93@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [75 cpl limit]
137 lines
4.1 KiB
Makefile
137 lines
4.1 KiB
Makefile
#
|
|
# 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
|
|
|
|
DEVICE_VARS += TPLINK_HWID TPLINK_HWREV TPLINK_FLASHLAYOUT
|
|
|
|
define rootfs_align
|
|
$(patsubst %-256k,0x40000,$(patsubst %-128k,0x20000,$(patsubst %-64k,0x10000,$(patsubst squashfs%,0x4,$(patsubst root.%,%,$(1))))))
|
|
endef
|
|
|
|
define Build/copy-file
|
|
cat "$(1)" > "$@"
|
|
endef
|
|
|
|
# combine kernel and rootfs into one image
|
|
# mktplinkfw <type> <optional extra arguments to mktplinkfw binary>
|
|
# <type> is "sysupgrade" or "factory"
|
|
#
|
|
# -a align the rootfs start on an <align> bytes boundary
|
|
# -j add jffs2 end-of-filesystem markers
|
|
# -s strip padding from end of the image
|
|
# -X reserve <size> bytes in the firmware image (hexval prefixed with 0x)
|
|
define Build/mktplinkfw
|
|
-$(STAGING_DIR_HOST)/bin/mktplinkfw \
|
|
-H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) -N OpenWrt -V $(REVISION) \
|
|
-k $(IMAGE_KERNEL) \
|
|
-r $@ \
|
|
-o $@.new \
|
|
-j -X 0x40000 \
|
|
-a $(call rootfs_align,$(FILESYSTEM)) \
|
|
$(wordlist 2,$(words $(1)),$(1)) \
|
|
$(if $(findstring sysupgrade,$(word 1,$(1))),-s) && mv $@.new $@ || rm -f $@
|
|
endef
|
|
|
|
define Device/Default
|
|
PROFILES := Default
|
|
DEVICE_DTS := $(1)
|
|
KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
|
|
KERNEL_ENTRY := 0x00000000
|
|
KERNEL_LOADADDR := 0x00000000
|
|
KERNEL := kernel-bin
|
|
endef
|
|
|
|
ifeq ($(SUBTARGET),generic)
|
|
|
|
define Device/tl-wdr4900-v1
|
|
DEVICE_TITLE := TP-Link TL-WDR4900
|
|
TPLINK_HWID := 0x49000001
|
|
TPLINK_HWREV := 1
|
|
TPLINK_FLASHLAYOUT := 16Mppc
|
|
KERNEL_SIZE := 2684k
|
|
KERNEL_NAME := simpleImage.tl-wdr4900-v1
|
|
KERNEL_INITRAMFS :=
|
|
KERNEL := kernel-bin | uImage none
|
|
KERNEL_ENTRY := 0x1000000
|
|
KERNEL_LOADADDR := 0x1000000
|
|
SUPPORTED_DEVICES:=tl-wdr4900-v1 tplink,tl-wdr4900-v1
|
|
ARTIFACTS := fdt.bin
|
|
ARTIFACT/fdt.bin := append-dtb
|
|
IMAGES := fdt.bin factory.bin sysupgrade.bin
|
|
IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade | append-metadata
|
|
IMAGE/factory.bin := append-rootfs | mktplinkfw factory
|
|
endef
|
|
TARGET_DEVICES += tl-wdr4900-v1
|
|
|
|
define Device/red-15w-rev1
|
|
DEVICE_TITLE := Sophos RED 15w Rev.1
|
|
# Original firmware uses a dedicated DTB-partition.
|
|
# The bootloader however supports FIT-images.
|
|
KERNEL = kernel-bin | gzip | fit gzip $(KDIR)/image-$$(DEVICE_DTS).dtb
|
|
SUPPORTED_DEVICES := sophos,red-15w-rev1
|
|
IMAGES := sysupgrade.bin
|
|
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
|
endef
|
|
TARGET_DEVICES += red-15w-rev1
|
|
|
|
endif
|
|
|
|
ifeq ($(SUBTARGET),p1020)
|
|
|
|
define Device/hiveap-330
|
|
DEVICE_TITLE := Aerohive HiveAP-330
|
|
DEVICE_PACKAGES := kmod-tpm-i2c-atmel
|
|
BLOCKSIZE := 128k
|
|
KERNEL := kernel-bin | uImage none
|
|
KERNEL_SIZE := 8m
|
|
KERNEL_INITRAMFS := copy-file $(KDIR)/vmlinux-initramfs | uImage none
|
|
SUPPORTED_DEVICES := aerohive,hiveap-330
|
|
IMAGES := fdt.bin sysupgrade.bin
|
|
IMAGE/fdt.bin := append-dtb
|
|
IMAGE/sysupgrade.bin := append-dtb | pad-to 256k | check-size 256k | \
|
|
append-uImage-fakehdr ramdisk | pad-to 256k | check-size 512k | \
|
|
append-rootfs | pad-rootfs $$(BLOCKSIZE) | pad-to 41216k | check-size 41216k | \
|
|
append-kernel | append-metadata
|
|
endef
|
|
TARGET_DEVICES += hiveap-330
|
|
|
|
define Device/panda
|
|
DEVICE_TITLE := OCEDO Panda
|
|
DEVICE_PACKAGES := kmod-rtc-ds1307 uboot-envtools
|
|
KERNEL = kernel-bin | gzip | fit gzip $(KDIR)/image-$$(DEVICE_DTS).dtb
|
|
PAGESIZE := 2048
|
|
SUBPAGESIZE := 512
|
|
BLOCKSIZE := 128k
|
|
SUPPORTED_DEVICES := ocedo,panda
|
|
IMAGES := fdt.bin sysupgrade.bin
|
|
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
|
IMAGE/fdt.bin := append-dtb
|
|
endef
|
|
TARGET_DEVICES += panda
|
|
|
|
endif
|
|
|
|
ifeq ($(SUBTARGET),p2020)
|
|
|
|
define Device/p2020rdb
|
|
DEVICE_TITLE := Freescale P2020RDB
|
|
DEVICE_DTS_DIR := $(DTS_DIR)/fsl
|
|
DEVICE_PACKAGES := kmod-hwmon-core kmod-hwmon-lm90 kmod-rtc-ds1307 \
|
|
kmod-gpio-pca953x kmod-eeprom-at24
|
|
BLOCKSIZE := 128k
|
|
KERNEL := kernel-bin | gzip | \
|
|
fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
|
|
SUPPORTED_DEVICES := fsl,P2020RDB
|
|
IMAGES := sysupgrade.bin
|
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | \
|
|
pad-rootfs $$(BLOCKSIZE) | append-metadata
|
|
endef
|
|
TARGET_DEVICES += p2020rdb
|
|
|
|
endif
|
|
|
|
$(eval $(call BuildImage))
|