KERNEL_LOADADDR = 0x80060000
-DEVICE_VARS += CMDLINE CONSOLE IMAGE_SIZE BOARDNAME LOADER_FLASH_OFFS LOADER_TYPE ATH_SOC
+DEVICE_VARS += LOADER_FLASH_OFFS LOADER_TYPE
+DEVICE_VARS += LOADER_FLASH_MAX LOADER_KERNEL_MAGIC
+DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
+DEVICE_VARS += RAS_BOARD RAS_ROOTFS_SIZE RAS_VERSION
+
+define Build/combined-image
+ sh $(TOPDIR)/scripts/combined-image.sh \
+ "$(IMAGE_KERNEL)" \
+ "$@" \
+ "$@.new"
+ @mv $@.new $@
+endef
define Build/loader-common
rm -rf $@.src
$(MAKE) -C lzma-loader \
PKG_BUILD_DIR="$@.src" \
TARGET_DIR="$(dir $@)" LOADER_NAME="$(notdir $@)" \
- BOARD="$(BOARDNAME)" \
- LZMA_TEXT_START=0x80a00000 LOADADDR=0x80060000 \
$(1) compile loader.$(LOADER_TYPE)
mv "$@.$(LOADER_TYPE)" "$@"
rm -rf $@.src
endef
define Build/loader-kernel
- $(call Build/loader-common,LOADER_DATA="$@")
+ $(call Build/loader-common, \
+ LOADER_DATA="$@" \
+ BOARD="$(DEVICE_NAME)" )
endef
-define Build/loader-kernel-cmdline
- $(call Build/loader-common,LOADER_DATA="$@" KERNEL_CMDLINE="$(CMDLINE)")
-endef
-
-
define Build/loader-okli-compile
- $(call Build/loader-common,FLASH_OFFS=$(LOADER_FLASH_OFFS) FLASH_MAX=0 KERNEL_CMDLINE="$(CMDLINE)")
+ $(call Build/loader-common, \
+ FLASH_OFFS=$(LOADER_FLASH_OFFS) \
+ FLASH_MAX=$(LOADER_FLASH_MAX) \
+ KERNEL_MAGIC=$(LOADER_KERNEL_MAGIC) \
+ BOARD="$(DEVICE_NAME)" )
endef
+# Arguments: <output name> <kernel offset>
define Build/loader-okli
- dd if=$(KDIR)/loader-$(1).gz bs=7680 conv=sync of="$@.new"
+ dd if=$(KDIR)/loader-$(word 1,$(1)).$(LOADER_TYPE) bs=$(word 2,$(1)) conv=sync of="$@.new"
cat "$@" >> "$@.new"
mv "$@.new" "$@"
endef
-define Build/copy-file
- cat "$(1)" > "$@"
+define Build/append-loader-okli
+ cat "$(KDIR)/loader-$(word 1,$(1)).$(LOADER_TYPE)" >> "$@"
endef
+define Build/append-loader-okli-uimage
+ cat "$(KDIR)/loader-$(word 1,$(1)).uImage" >> "$@"
+endef
+
+define Build/relocate-kernel
+ rm -rf $@.relocate
+ $(CP) ../../generic/image/relocate $@.relocate
+ $(MAKE) -j1 -C $@.relocate KERNEL_ADDR=$(KERNEL_LOADADDR) CROSS_COMPILE=$(TARGET_CROSS)
+ ( \
+ dd if=$@.relocate/loader.bin bs=32 conv=sync && \
+ perl -e '@s = stat("$@"); print pack("N", @s[7])' && \
+ cat "$@" \
+ ) > "$@.new"
+ mv "$@.new" "$@"
+ rm -rf $@.relocate
+endef
+
+
define Device/Default
- ATH_SOC :=
- BOARDNAME :=
- DEVICE_PROFILE = $$(BOARDNAME)
DEVICE_DTS_DIR := ../dts
- DEVICE_DTS = $$(ATH_SOC)_$(1)
- PROFILES = Default Minimal $$(DEVICE_PROFILE)
+ DEVICE_DTS = $$(SOC)_$(1)
+ PROFILES = Default
MTDPARTS :=
BLOCKSIZE := 64k
- CONSOLE = ttyS0,115200
- CMDLINE = $$(if $$(BOARDNAME),board=$$(BOARDNAME)) $$(if $$(MTDPARTS),mtdparts=$$(MTDPARTS)) $$(if $$(CONSOLE),console=$$(CONSOLE))
KERNEL := kernel-bin | append-dtb | lzma | uImage lzma
KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | uImage lzma
+ LOADER_KERNEL_MAGIC :=
+ LOADER_FLASH_MAX :=
+ LOADER_FLASH_OFFS :=
+ LOADER_TYPE :=
COMPILE :=
IMAGES := sysupgrade.bin
- IMAGE/sysupgrade.bin = append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs
+ IMAGE/sysupgrade.bin = append-kernel | pad-to $$$$(BLOCKSIZE) | \
+ append-rootfs | pad-rootfs | check-size | append-metadata
+endef
+
+define Device/loader-okli-uimage
+ LOADER_TYPE := bin
+ COMPILE := loader-$(1).bin loader-$(1).uImage
+ COMPILE/loader-$(1).bin := loader-okli-compile
+ COMPILE/loader-$(1).uImage := append-loader-okli $(1) | pad-to 64k | \
+ lzma | uImage lzma
endef
+include $(SUBTARGET).mk
+
ifeq ($(SUBTARGET),generic)
-include ./tp-link.mk
-include ./generic.mk
-include ./generic-ubnt.mk
+include generic-tp-link.mk
+include generic-ubnt.mk
+endif
+
+ifeq ($(SUBTARGET),tiny)
+include tiny-netgear.mk
+include tiny-tp-link.mk
endif
+
$(eval $(call BuildImage))