mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 10:08:59 +00:00
1f6ec4b29e
...and max flash offset
The mtdsplit parser was recently refactored
to allow the kernel to have custom image header magic.
Let's also do this for the lzma-loader
For example:
When implemented together,
this allows the kernel to "appear" to be a rootfs
by OEM software in order to write an image
that is actually kernel + rootfs.
At the same time,
it would boot to openwrt normally
by setting the same magic in DTS.
Both of the variables
have a default value that is unchanged
when not defined in the makefiles
This has no effect on the size of the loader
when lzma compressed.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
(cherry picked from commit 1b8bd17c2d
)
73 lines
1.7 KiB
Makefile
73 lines
1.7 KiB
Makefile
#
|
|
# Copyright (C) 2011 OpenWrt.org
|
|
# Copyright (C) 2011 Gabor Juhos <juhosg@openwrt.org>
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
LZMA_TEXT_START := 0x81800000
|
|
LOADADDR := 0x80060000
|
|
LOADER := loader.bin
|
|
LOADER_NAME := $(basename $(notdir $(LOADER)))
|
|
LOADER_DATA :=
|
|
KERNEL_MAGIC :=
|
|
TARGET_DIR :=
|
|
FLASH_OFFS :=
|
|
FLASH_MAX :=
|
|
BOARD :=
|
|
|
|
ifeq ($(TARGET_DIR),)
|
|
TARGET_DIR := $(KDIR)
|
|
endif
|
|
|
|
LOADER_BIN := $(TARGET_DIR)/$(LOADER_NAME).bin
|
|
LOADER_GZ := $(TARGET_DIR)/$(LOADER_NAME).gz
|
|
LOADER_ELF := $(TARGET_DIR)/$(LOADER_NAME).elf
|
|
|
|
PKG_NAME := lzma-loader
|
|
PKG_BUILD_DIR := $(KDIR)/$(PKG_NAME)
|
|
|
|
.PHONY : loader-compile loader.bin loader.elf loader.gz
|
|
|
|
$(PKG_BUILD_DIR)/.prepared:
|
|
mkdir $(PKG_BUILD_DIR)
|
|
$(CP) ./src/* $(PKG_BUILD_DIR)/
|
|
touch $@
|
|
|
|
loader-compile: $(PKG_BUILD_DIR)/.prepared
|
|
$(MAKE) -C $(PKG_BUILD_DIR) CROSS_COMPILE="$(TARGET_CROSS)" \
|
|
LZMA_TEXT_START=$(LZMA_TEXT_START) \
|
|
LOADADDR=$(LOADADDR) \
|
|
LOADER_DATA=$(LOADER_DATA) \
|
|
KERNEL_MAGIC=$(KERNEL_MAGIC) \
|
|
FLASH_OFFS=$(FLASH_OFFS) \
|
|
FLASH_MAX=$(FLASH_MAX) \
|
|
BOARD="$(BOARD)" \
|
|
clean all
|
|
|
|
loader.gz: $(PKG_BUILD_DIR)/loader.bin
|
|
# Workaround for buggy bootloaders: Some devices
|
|
# (TP-Link TL-WR1043ND v1) don't work correctly when
|
|
# the uncompressed loader is too small (probably a cache
|
|
# invalidation issue)
|
|
dd if=$< bs=512K conv=sync | gzip -nc9 > $(LOADER_GZ)
|
|
|
|
loader.elf: $(PKG_BUILD_DIR)/loader.elf
|
|
$(CP) $< $(LOADER_ELF)
|
|
|
|
loader.bin: $(PKG_BUILD_DIR)/loader.bin
|
|
$(CP) $< $(LOADER_BIN)
|
|
|
|
download:
|
|
prepare: $(PKG_BUILD_DIR)/.prepared
|
|
compile: loader-compile
|
|
|
|
install:
|
|
|
|
clean:
|
|
rm -rf $(PKG_BUILD_DIR)
|
|
|