mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 01:11:14 +00:00
071a637276
In certain cases, the uncompressed initramfs image will overwrite the lzma-loader, which is currently only 10 MB away from kernel image start. To prevent this, change LZMA_TEXT_START to 24 MB, so loader and compressed image have 8 MB at the end of RAM and uncompressed image has 24 MB available. This is only enabled for ath79 at the moment, as there we can be sure that all devices have 32+ MB RAM and TARGET_INITRAMFS_COMPRESSION_LZMA is not enabled there. Despite, since lzma-loader is currently build specifically for ath79 anyway, there is no need to re-specify LOADADDR and LZMA_TEXT_START in image/Makefile, so the values are set directly in image/lzma-loader/Makefile and the overwrite in image/Makefile is removed. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
71 lines
1.6 KiB
Makefile
71 lines
1.6 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 :=
|
|
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) \
|
|
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)
|
|
|