build: Allow to change the FIT config section name
Some devices only boot when a special config is found in the image and completely ignore the default entry during the selection. These devices can now use the variable DEVICE_DTS_CONFIG in their device image definition. Signed-off-by: Sven Eckelmann <sven@narfation.org>
This commit is contained in:
parent
dbdc26ba33
commit
1b773a46c2
3 changed files with 11 additions and 6 deletions
|
@ -118,6 +118,7 @@ define Build/fit
|
||||||
-D $(DEVICE_NAME) -o $@.its -k $@ \
|
-D $(DEVICE_NAME) -o $@.its -k $@ \
|
||||||
$(if $(word 2,$(1)),-d $(word 2,$(1))) -C $(word 1,$(1)) \
|
$(if $(word 2,$(1)),-d $(word 2,$(1))) -C $(word 1,$(1)) \
|
||||||
-a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
|
-a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
|
||||||
|
-c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config@1") \
|
||||||
-A $(LINUX_KARCH) -v $(LINUX_VERSION)
|
-A $(LINUX_KARCH) -v $(LINUX_VERSION)
|
||||||
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new
|
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new
|
||||||
@mv $@.new $@
|
@mv $@.new $@
|
||||||
|
|
|
@ -140,6 +140,7 @@ endef
|
||||||
define Image/BuildKernel/MkFIT
|
define Image/BuildKernel/MkFIT
|
||||||
$(TOPDIR)/scripts/mkits.sh \
|
$(TOPDIR)/scripts/mkits.sh \
|
||||||
-D $(1) -o $(KDIR)/fit-$(1).its -k $(2) $(if $(3),-d $(3)) -C $(4) -a $(5) -e $(6) \
|
-D $(1) -o $(KDIR)/fit-$(1).its -k $(2) $(if $(3),-d $(3)) -C $(4) -a $(5) -e $(6) \
|
||||||
|
-c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config@1") \
|
||||||
-A $(LINUX_KARCH) -v $(LINUX_VERSION)
|
-A $(LINUX_KARCH) -v $(LINUX_VERSION)
|
||||||
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/fit-$(1).its $(KDIR)/fit-$(1)$(7).itb
|
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/fit-$(1).its $(KDIR)/fit-$(1)$(7).itb
|
||||||
endef
|
endef
|
||||||
|
@ -347,6 +348,7 @@ define Device/Init
|
||||||
FS_OPTIONS/ubifs = $$(MKUBIFS_OPTS)
|
FS_OPTIONS/ubifs = $$(MKUBIFS_OPTS)
|
||||||
|
|
||||||
DEVICE_DTS :=
|
DEVICE_DTS :=
|
||||||
|
DEVICE_DTS_CONFIG :=
|
||||||
DEVICE_DTS_DIR :=
|
DEVICE_DTS_DIR :=
|
||||||
|
|
||||||
BOARD_NAME :=
|
BOARD_NAME :=
|
||||||
|
@ -359,8 +361,8 @@ endef
|
||||||
|
|
||||||
DEFAULT_DEVICE_VARS := \
|
DEFAULT_DEVICE_VARS := \
|
||||||
DEVICE_NAME KERNEL KERNEL_INITRAMFS KERNEL_SIZE KERNEL_INITRAMFS_IMAGE \
|
DEVICE_NAME KERNEL KERNEL_INITRAMFS KERNEL_SIZE KERNEL_INITRAMFS_IMAGE \
|
||||||
KERNEL_LOADADDR DEVICE_DTS DEVICE_DTS_DIR BOARD_NAME CMDLINE \
|
KERNEL_LOADADDR DEVICE_DTS DEVICE_DTS_CONFIG DEVICE_DTS_DIR BOARD_NAME \
|
||||||
UBOOTENV_IN_UBI KERNEL_IN_UBI \
|
CMDLINE UBOOTENV_IN_UBI KERNEL_IN_UBI \
|
||||||
BLOCKSIZE PAGESIZE SUBPAGESIZE VID_HDR_OFFSET \
|
BLOCKSIZE PAGESIZE SUBPAGESIZE VID_HDR_OFFSET \
|
||||||
UBINIZE_OPTS UIMAGE_NAME UBINIZE_PARTS \
|
UBINIZE_OPTS UIMAGE_NAME UBINIZE_PARTS \
|
||||||
SUPPORTED_DEVICES IMAGE_METADATA
|
SUPPORTED_DEVICES IMAGE_METADATA
|
||||||
|
|
|
@ -19,6 +19,7 @@ usage() {
|
||||||
"-v version -k kernel [-D name -d dtb] -o its_file"
|
"-v version -k kernel [-D name -d dtb] -o its_file"
|
||||||
echo -e "\t-A ==> set architecture to 'arch'"
|
echo -e "\t-A ==> set architecture to 'arch'"
|
||||||
echo -e "\t-C ==> set compression type 'comp'"
|
echo -e "\t-C ==> set compression type 'comp'"
|
||||||
|
echo -e "\t-c ==> set config name 'config'"
|
||||||
echo -e "\t-a ==> set load address to 'addr' (hex)"
|
echo -e "\t-a ==> set load address to 'addr' (hex)"
|
||||||
echo -e "\t-e ==> set entry point to 'entry' (hex)"
|
echo -e "\t-e ==> set entry point to 'entry' (hex)"
|
||||||
echo -e "\t-v ==> set kernel version to 'version'"
|
echo -e "\t-v ==> set kernel version to 'version'"
|
||||||
|
@ -29,11 +30,12 @@ usage() {
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
while getopts ":A:a:C:D:d:e:k:o:v:" OPTION
|
while getopts ":A:a:c:C:D:d:e:k:o:v:" OPTION
|
||||||
do
|
do
|
||||||
case $OPTION in
|
case $OPTION in
|
||||||
A ) ARCH=$OPTARG;;
|
A ) ARCH=$OPTARG;;
|
||||||
a ) LOAD_ADDR=$OPTARG;;
|
a ) LOAD_ADDR=$OPTARG;;
|
||||||
|
c ) CONFIG=$OPTARG;;
|
||||||
C ) COMPRESS=$OPTARG;;
|
C ) COMPRESS=$OPTARG;;
|
||||||
D ) DEVICE=$OPTARG;;
|
D ) DEVICE=$OPTARG;;
|
||||||
d ) DTB=$OPTARG;;
|
d ) DTB=$OPTARG;;
|
||||||
|
@ -49,7 +51,7 @@ done
|
||||||
# Make sure user entered all required parameters
|
# Make sure user entered all required parameters
|
||||||
if [ -z "${ARCH}" ] || [ -z "${COMPRESS}" ] || [ -z "${LOAD_ADDR}" ] || \
|
if [ -z "${ARCH}" ] || [ -z "${COMPRESS}" ] || [ -z "${LOAD_ADDR}" ] || \
|
||||||
[ -z "${ENTRY_ADDR}" ] || [ -z "${VERSION}" ] || [ -z "${KERNEL}" ] || \
|
[ -z "${ENTRY_ADDR}" ] || [ -z "${VERSION}" ] || [ -z "${KERNEL}" ] || \
|
||||||
[ -z "${OUTPUT}" ]; then
|
[ -z "${OUTPUT}" ] || [ -z "${CONFIG}" ]; then
|
||||||
usage
|
usage
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -104,8 +106,8 @@ ${FDT}
|
||||||
};
|
};
|
||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
default = \"config@1\";
|
default = \"${CONFIG}\";
|
||||||
config@1 {
|
${CONFIG} {
|
||||||
description = \"OpenWrt\";
|
description = \"OpenWrt\";
|
||||||
kernel = \"kernel@1\";
|
kernel = \"kernel@1\";
|
||||||
fdt = \"fdt@1\";
|
fdt = \"fdt@1\";
|
||||||
|
|
Loading…
Reference in a new issue