commit a0d28029b6ca8fe1e97fa8ef4b70cdc32f09bbc1 Author: Roman Yeryomin Date: Tue Feb 5 01:55:36 2013 +0200 adopt 006-make-image.diff Signed-off-by: Roman Yeryomin diff --git a/Makefile b/Makefile index 674b79b..30b7100 100644 --- a/Makefile +++ b/Makefile @@ -1507,6 +1507,9 @@ kernelrelease: kernelversion: @echo $(KERNELVERSION) +do_rtkload: + $(Q)$(MAKE) -C rtkload + # Single targets # --------------------------------------------------------------------------- # Single targets are compatible with: diff --git a/arch/rlx/Kconfig b/arch/rlx/Kconfig index 14f97b8..94bf573 100644 --- a/arch/rlx/Kconfig +++ b/arch/rlx/Kconfig @@ -500,3 +500,9 @@ source "security/Kconfig" source "crypto/Kconfig" source "lib/Kconfig" +config RTL_KERNEL_LOAD_ADDRESS + hex "kernel load address in ram" + default "0x80500000" + help + kernel load address in ram + diff --git a/rtkload/Makefile b/rtkload/Makefile index 235673b..4a8839e 100644 --- a/rtkload/Makefile +++ b/rtkload/Makefile @@ -2,64 +2,42 @@ # Uncomment if you're building for the emulator include ../.config include ../../.config # to check toolchain CONFIG_RSDK_rsdk-1.5.4-5281-EB-2.6.30-0.9.30.3-uls-101110 -DOQUIET = false -#DOQUIET = true -#EMULATOR = true -#KERNEL_ROOT = /home/john/RealTek/linux-2.5/linux + KERNEL_ROOT = .. -ifeq ($(wildcard $(DIR_USERS)/boa/tools/cvimg),) -ifeq ($(wildcard $(DIR_USERS)/goahead-2.1.1/LINUX/cvimg),) -CVIMG=./cvimg -else -CVIMG=$(DIR_USERS)/goahead-2.1.1/LINUX/cvimg -endif + .NOTPARALLEL : all -else -CVIMG=$(DIR_USERS)/boa/tools/cvimg -endif -# ---- shouldn't need to modify below this line. -ifdef EMULATOR -EMUOPTS = -DEMULATOR -LDSCRIPT = ld-emu.script -else +CVIMG=cvimg + +AS = $(CROSS_COMPILE)as +LD = $(CROSS_COMPILE)ld +CC = $(CROSS_COMPILE)gcc +CPP = $(CC) -E +AR = $(CROSS_COMPILE)ar +NM = $(CROSS_COMPILE)nm +STRIP = $(CROSS_COMPILE)strip +OBJCOPY = $(CROSS_COMPILE)objcopy +OBJDUMP = $(CROSS_COMPILE)objdump + EMUOPTS = LDSCRIPT = ld.script -endif COPTIONS = -DROM_MEMORY -DCOMPRESSED_KERNEL -D__KERNEL__ -#SOURCES = vsprintf.c string.c ctype.c prom_printf.c misc.c hfload.c start.S read_memory.c -ifdef BZ2_COMPRESS - SOURCES = misc.c hfload.c start.S cache.c -else -ifdef GZIP_COMPRESS - SOURCES = string.c ctype.c misc.c hfload.c start.S read_memory.c cache.c -else - SOURCES = string.c ctype.c misc.c hfload.c start.S read_memory.c cache.c LzmaDecode.c -endif -endif +#SOURCES = misc.c hfload.c start.S cache.c #bzip2 +#SOURCES = string.c ctype.c misc.c hfload.c start.S read_memory.c cache.c #gzip +SOURCES = string.c ctype.c misc.c hfload.c start.S read_memory.c cache.c LzmaDecode.c #lzma LOADER_FILES = hfload.o read_memory.o -#LOADER_FILES = hfload.o -ifdef BZ2_COMPRESS - SUPPORT_FILES = misc.o cache.o -else -ifdef GZIP_COMPRESS - SUPPORT_FILES = vsprintf.o prom_printf.o string.o ctype.o misc.o cache.o -else -ifeq ($(strip $(DOQUIET)),true) - SUPPORT_FILES = string.o ctype.o misc.o cache.o LzmaDecode.o -else - SUPPORT_FILES = vsprintf.o prom_printf.o string.o ctype.o misc.o cache.o LzmaDecode.o -endif -endif -endif - -CFLAGS =-Os -g -fno-pic -mno-abicalls $(EMUOPTS) -ifeq ($(strip $(DOQUIET)),true) -CFLAGS += $(WARNINGS) -D__DO_QUIET__ -endif + +#SUPPORT_FILES = misc.o cache.o # bzip2 +#SUPPORT_FILES = vsprintf.o prom_printf.o string.o ctype.o misc.o cache.o #gzip +#SUPPORT_FILES = string.o ctype.o misc.o cache.o LzmaDecode.o #quiet +SUPPORT_FILES = vsprintf.o prom_printf.o string.o ctype.o misc.o cache.o LzmaDecode.o #lzma + +CFLAGS =-Os -g -fno-pic -mno-abicalls $(EMUOPTS) -march=rlx4181 +#CFLAGS += $(WARNINGS) -D__DO_QUIET__ #quiet + CFLAGS += -DEMBEDDED -I$(KERNEL_ROOT)/include/linux -I$(KERNEL_ROOT)/include -I$(KERNEL_ROOT)/lib $(COPTIONS) -G 0 CFLAGS += -I$(KERNEL_ROOT)/arch/rlx/bsp -I$(KERNEL_ROOT)/arch/rlx/include -I$(KERNEL_ROOT)/arch/rlx/include/asm/mach-generic #ASFLAGS = -g $(EMUOPTS) -DEMBEDDED -I$(KERNEL_ROOT)/include -I$(KERNEL_ROOT)/arch/rlx/include @@ -69,214 +47,57 @@ ASFLAGS = -g -fno-pic -mno-abicalls $(EMUOPTS) -DEMBEDDED -I$(KERNEL_ROOT)/inclu LDFLAGS=-static -nostdlib -ifdef BZ2_COMPRESS -CFLAGS += -DBZ2_COMPRESS -ASFLAGS += -DBZ2_COMPRESS -else -ifndef GZIP_COMPRESS -CFLAGS += -DLZMA_COMPRESS -ASFLAGS += -DLZMA_COMPRESS -endif -endif - -START_FILE = start.o +#CFLAGS += -DBZ2_COMPRESS #bzip2 +#ASFLAGS += -DBZ2_COMPRESS #bzip2 +#CFLAGS += #gzip +#ASFLAGS += #gzip +CFLAGS += -DLZMA_COMPRESS #lzma +ASFLAGS += -DLZMA_COMPRESS #lzma -#RTL_819X normal LOAD_START_ADDR and FLASH_OFFSET -ifdef CONFIG_RTL_819X -LOAD_START_ADDR=0x80500000 -FLASH_OFFSET=30000 -endif - -ifdef CONFIG_RTL_8196B_GW -ifdef CONFIG_MTD_RTL_8196_SPI -LOAD_START_ADDR=0x80A00000 -else -LOAD_START_ADDR=0x80500000 -endif -ifdef CONFIG_RTL_8196B_GW_8M -FLASH_OFFSET=10000 -else -ifeq ($(CONFIG_RTL_FLASH_MAPPING_ENABLE),y) -ifeq ($(CONFIG_RTL_LINUX_IMAGE_OFFSET),) -FLASH_OFFSET=30000 -else -FLASH_OFFSET=$(CONFIG_RTL_LINUX_IMAGE_OFFSET) -endif -else -FLASH_OFFSET=30000 -endif -endif -endif - -ifdef CONFIG_RTL_8198_GW -ifdef CONFIG_MTD_RTL_8196_SPI -LOAD_START_ADDR=0x80A00000 -else -LOAD_START_ADDR=0x80500000 -endif -ifdef CONFIG_RTL_8196B_GW_8M -FLASH_OFFSET=10000 -else -FLASH_OFFSET=30000 -endif -endif - -ifdef CONFIG_RTL_8196B_ICT -LOAD_START_ADDR=0x80500000 -FLASH_OFFSET=30000 -endif - -ifdef CONFIG_RTL_865X_PANAHOST -LOAD_START_ADDR=0x80500000 -FLASH_OFFSET=20000 -endif - -ifdef CONFIG_RTL_8197B_PANA -LOAD_START_ADDR=0x80700000 -FLASH_OFFSET=30000 -endif - -ifdef CONFIG_RTL_8196B_AP_ROOT -LOAD_START_ADDR=0x80500000 -FLASH_OFFSET=30000 -endif - -ifeq ($(CONFIG_RTL_FLASH_MAPPING_ENABLE),y) -ifeq ($(CONFIG_RTL_LINUX_IMAGE_OFFSET),) -FLASH_OFFSET=20000 -else -FLASH_OFFSET=$(CONFIG_RTL_LINUX_IMAGE_OFFSET) -endif -else -FLASH_OFFSET=20000 -endif +START_FILE = start.o -ifdef CONFIG_RTK_VOIP_BOARD -LOAD_START_ADDR=0x80C00000 -endif -CV_SIGNATURE= -ifdef CONFIG_RTL_8197B_PANA -#CV_OPTION=linux -CV_OPTION=signature -CV_SIGNATURE=csys -else -ifdef CONFIG_SQUASHFS CV_OPTION=linux-ro -else -CV_OPTION=linux -endif -endif - -ifdef CONFIG_RTL_8198_NFBI_BOARD -LOAD_START_ADDR=0x80700000 -FLASH_OFFSET=30000 -CV_OPTION=signature -CV_SIGNATURE=csys -endif - -#ifdef CONFIG_RTL_8196C_iNIC -#LOAD_START_ADDR=0x80500000 -#FLASH_OFFSET=30000 -#CV_OPTION=signature -#CV_SIGNATURE=cs6c -#endif - -CROSS_COMPILE ?= rsdk-linux- - -LD=$(CROSS_COMPILE)ld -CC=$(CROSS_COMPILE)gcc -CPP=$(CROSS_COMPILE)gcc -STRIP=$(CROSS_COMPILE)strip -AS=$(CROSS_COMPILE)as -NM=$(CROSS_COMPILE)nm -OBJCOPY=$(CROSS_COMPILE)objcopy - -SEDFLAGS = s/LOAD_ADDR/$(LOAD_START_ADDR)/; +#CV_OPTION=linux -ifdef CONFIG_RTK_VOIP_BOARD -STRIP-OPTIONS-$(CONFIG_RSDK_rsdk-1.5.4-5281-EB-2.6.30-0.9.30.3-uls-101110) = --remove-section=.bss -endif +SEDFLAGS = s/LOAD_ADDR/$(CONFIG_RTL_KERNEL_LOAD_ADDRESS)/; -# jffs2 related definitions -DIR_ROMFS_BOOT = $(DIR_ROMFS)/boot/ -MKJFFS2 = ./mkfs.jffs2 -MKIMAGE_UBOOT = ./mkimage-uboot O_TARGET := rtk obj-y := vmlinux_img.o $(START_FILE) $(LOADER_FILES) $(SUPPORT_FILES) -ifdef CONFIG_ROOTFS_JFFS2 -all: rtk-clean rtk-vmlinux_img vmlinux_img.gzip.uboot.jffs2 -else -all: rtk-clean rtk-vmlinux_img $(START_FILE) $(LOADER_FILES) $(SUPPORT_FILES) -endif +all: linux.bin -#memload-partial -ifdef CONFIG_ROOTFS_JFFS2 -jffs2_no_this: -endif - $(CC) -fno-pic -mno-abicalls -Os -fomit-frame-pointer -D__KERNEL__ -c vmlinux_img.c -o vmlinux_img.o - $(OBJCOPY) --add-section .vmlinux=vmlinux_img.gz vmlinux_img.o - @sed "$(SEDFLAGS)" < ld.script.in > $(LDSCRIPT) +%.o:%.S + ${CC} ${CFLAGS} -c -o $@ $< +%.o:%.c + ${CC} ${CFLAGS} -c -o $@ $< + +linux.bin: $(KERNEL_ROOT)/vmlinux $(START_FILE) $(LOADER_FILES) $(SUPPORT_FILES) + cp $(KERNEL_ROOT)/vmlinux vmlinux-stripped + $(STRIP) vmlinux-stripped $(STRIP-OPTIONS-y) + $(OBJCOPY) -Obinary vmlinux-stripped vmlinux_img + #lzma -z < vmlinux_img > vmlinux_img.squish || rm -f vmlinux_img.squish + lzma e vmlinux_img vmlinux_img.squish + #bzip2 -9 < vmlinux_img > vmlinux_img.squish || rm -f vmlinux_img.squish + #gzip -9 < vmlinux_img > vmlinux_img.squish || rm -f vmlinux_img.squish + $(CVIMG) vmlinuxhdr vmlinux_img.squish vmlinux_img.squish.hdr $(KERNEL_ROOT)/vmlinux + $(CC) ${CFLAGS} -D__KERNEL__ -c vmlinux_img.c -o vmlinux_img.o + $(OBJCOPY) --add-section .vmlinux=vmlinux_img.squish.hdr vmlinux_img.o + sed "$(SEDFLAGS)" < ld.script.in > $(LDSCRIPT) $(LD) $(LDFLAGS) -G 0 -T $(LDSCRIPT) -o memload-partial $(START_FILE) $(LOADER_FILES) $(SUPPORT_FILES) vmlinux_img.o $(NM) memload-partial | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aU] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > system.map - cp memload-partial memload-full $(OBJCOPY) -Obinary memload-full nfjrom - $(CVIMG) $(CV_OPTION) nfjrom linux.bin $(LOAD_START_ADDR) $(FLASH_OFFSET) $(CV_SIGNATURE) -# @./size_chk vmlinux_img $(LOAD_START_ADDR) - @$(CVIMG) size_chk vmlinux_img $(LOAD_START_ADDR) || exit $$? -ifeq ($(CONFIG_BLK_DEV_INITRD),y) - @echo "RAMFS no need to check flash size" -else -ifeq ($(CONFIG_RTL_FLASH_MAPPING_ENABLE),y) - @$(CVIMG) flash_size_chk linux.bin || exit $$? -endif -endif + $(CVIMG) $(CV_OPTION) nfjrom linux.bin $(CONFIG_RTL_KERNEL_LOAD_ADDRESS) $(CONFIG_RTL_LINUX_IMAGE_OFFSET) $(CV_SIGNATURE) + +clean: + rm -f *.o memload system.map nfjrom memload-partial memload-full vmlinux_img.squish vmlinux_img.squish.hdr target target.img strip1 linux.bin vmlinux-stripped $(LDSCRIPT) vmlinux_img vmlinux_img.gzip.uboot.jffs2 -rtk-clean: - rm -f *.o memload system.map nfjrom memload-partial memload-full vmlinux_img.gz target target.img strip1 linux.bin vmlinux-stripped $(LDSCRIPT) vmlinux_img vmlinux_img.gzip.uboot.jffs2 - -rtk-vmlinux_img: - cp $(KERNEL_ROOT)/vmlinux vmlinux-stripped - $(STRIP) vmlinux-stripped $(STRIP-OPTIONS-y) - $(OBJCOPY) -Obinary vmlinux-stripped vmlinux_img - rm -f vmlinux_img.gz -ifndef CONFIG_ROOTFS_JFFS2 -ifdef BZ2_COMPRESS - cat vmlinux_img | bzip2 -9v > vmlinux_img.gz -else -ifdef GZIP_COMPRESS - cat vmlinux_img | gzip -9v > vmlinux_img.gz -else - ./lzma e vmlinux_img vmlinux_img.gz -endif -endif - $(CVIMG) vmlinuxhdr vmlinux_img.gz vmlinux_img.gz $(KERNEL_ROOT)/vmlinux -endif # CONFIG_ROOTFS_JFFS2 -target: nfjrom $(BOOT_CODE) $(EXT2_IMG) -# Pading boot code to 512 bytes long (but only 256 bytes are allowed, 512 is to make it page alignment) - $(OBJCOPY) -Obinary --pad-to=0x80000200 $(BOOT_CODE) bootcode - $(OBJCOPY) -Obinary --remove-section=.bss --remove-section=.data --remove-section=.mdebug --pad-to=0x806FFE00 memload-full nandrom - $(LD) -G0 -Ttarget.script -o target -bbinary bootcode -bbinary nandrom -bbinary $(EXT2_IMG) - $(OBJCOPY) -Obinary target target.img - cp -f ./target.img /tftpboot depend: rm -f .depend $(CC) $(CFLAGS) -MM $(SOURCES) >.depend -bz2: - @make BZ2_COMPRESS=1 - -gzip: - @make GZIP_COMPRESS=1 - -vmlinux_img.gzip.uboot.jffs2: - cat vmlinux_img | gzip -9v > vmlinux_img.gzip - mkdir -p $(DIR_ROMFS_BOOT) - $(MKIMAGE_UBOOT) -A mips -O linux -T kernel -C gzip -a 80000000 -e 80000000 -n 8954c_kernel -d vmlinux_img.gzip $(DIR_ROMFS_BOOT)/vmlinux_img.gzip.uboot - $(MKJFFS2) -n -p -b -e $(CONFIG_JFFS2_ERASE_SIZE) -o $(DIR_IMAGE)/vmlinux_img.gzip.uboot.jffs2 -d $(DIR_ROMFS)