mirror of
https://github.com/openwrt/openwrt.git
synced 2025-02-02 09:18:05 +00:00
9be7c6dba9
At this moment sysupgrade replaces only kernel and rootfs. This patch add dtb part to sysupgrade images to avoid situation when old dtb make system broken. Is possible to sysupgrade older images for NOR devices: 1. Firmware partition in bootargs need to be updated to: "49m@0xf00000(firmware)". Env should be saved after changes. 2. After step one, "sysupgrade -F" will work. Run tested: LS1046A-RDB Reviewed-by: Yangbo Lu <yangbo.lu@nxp.com> Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> [bump PKG_RELEASE for uboot-layerscape] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Signed-off-by: maurerr <mariusd84@gmail.com>
59 lines
1.8 KiB
Makefile
59 lines
1.8 KiB
Makefile
#
|
|
# Copyright (C) 2016 Jiang Yutang <jiangyutang1978@gmail.com>
|
|
#
|
|
# 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
|
|
|
|
LS_SD_ROOTFSPART_OFFSET = 64
|
|
LS_SD_IMAGE_SIZE = $(shell echo $$((($(LS_SD_ROOTFSPART_OFFSET) + \
|
|
$(CONFIG_TARGET_ROOTFS_PARTSIZE)) * 1024 * 1024)))
|
|
|
|
# The limitation of flash sysupgrade.bin is 1MB dtb + 16MB kernel + 32MB rootfs
|
|
LS_SYSUPGRADE_IMAGE_SIZE = 49m
|
|
|
|
define Build/ls-clean
|
|
rm -f $@
|
|
endef
|
|
|
|
define Build/ls-append
|
|
dd if=$(STAGING_DIR_IMAGE)/$(1) >> $@
|
|
endef
|
|
|
|
define Build/ls-append-dtb
|
|
$(call Image/BuildDTB,$(DTS_DIR)/$(1).dts,$(DTS_DIR)/$(1).dtb)
|
|
dd if=$(DTS_DIR)/$(1).dtb >> $@
|
|
endef
|
|
|
|
define Build/ls-append-sdhead
|
|
./gen_sdcard_head_img.sh $(STAGING_DIR_IMAGE)/$(1)-sdcard-head.img \
|
|
$(LS_SD_ROOTFSPART_OFFSET) $(CONFIG_TARGET_ROOTFS_PARTSIZE)
|
|
dd if=$(STAGING_DIR_IMAGE)/$(1)-sdcard-head.img >> $@
|
|
endef
|
|
|
|
define Build/traverse-fit
|
|
./mkits-multiple-config.sh -o $@.its -A $(LINUX_KARCH) \
|
|
-v $(LINUX_VERSION) -k $@ -a $(KERNEL_LOADADDR) \
|
|
-e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
|
|
-C gzip -c 1 -c 2 \
|
|
-d $(DEVICE_DTS_DIR)/freescale/traverse-ls1043s.dtb \
|
|
-D "Traverse_LS1043S" -n "ls1043s" -a $(FDT_LOADADDR) -c 1 \
|
|
-d $(DEVICE_DTS_DIR)/freescale/traverse-ls1043v.dtb \
|
|
-D "Traverse_LS1043V" -n "ls1043v" -a $(FDT_LOADADDR) -c 2
|
|
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new
|
|
@mv -f $@.new $@
|
|
endef
|
|
|
|
define Device/fix-sysupgrade
|
|
DEVICE_COMPAT_VERSION := 2.0
|
|
DEVICE_COMPAT_MESSAGE := DTB was added to sysupgrade. Image format is different. \
|
|
To use sysupgrade You need to change firmware partition in bootargs to "49m@0xf00000(firmware)" and saveenv. \
|
|
After that, You can use "sysupgrade -F".
|
|
endef
|
|
|
|
include $(SUBTARGET).mk
|
|
|
|
$(eval $(call BuildImage))
|