1# 2# Copyright (C) 2006-2010 OpenWrt.org 3# 4# This is free software, licensed under the GNU General Public License v2. 5# See /LICENSE for more information. 6# 7include $(TOPDIR)/rules.mk 8include $(INCLUDE_DIR)/image.mk 9 10LOADADDR = 0x81000000 # RAM start + 16M 11KERNEL_ENTRY = 0x80101000 12RAMSIZE = 0x00100000 # 1MB 13IMAGE_COPY = 1 14 15LOADER_MAKEOPTS= \ 16 KDIR=$(KDIR) \ 17 LOADADDR=$(LOADADDR) \ 18 KERNEL_ENTRY=$(KERNEL_ENTRY) \ 19 RAMSIZE=$(RAMSIZE) \ 20 IMAGE_COPY=$(IMAGE_COPY) 21 22define Build/Clean 23 $(MAKE) -C $(GENERIC_PLATFORM_DIR)/image/lzma-loader $(LOADER_MAKEOPTS) clean 24endef 25 26define Image/Prepare 27 cat $(KDIR)/vmlinux | $(STAGING_DIR_HOST)/bin/lzma e -si -so -eos -lc1 -lp2 -pb2 > $(KDIR)/vmlinux.lzma 28 $(MAKE) -C $(GENERIC_PLATFORM_DIR)/image/lzma-loader $(LOADER_MAKEOPTS) clean compile 29ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) 30 $(STAGING_DIR_HOST)/bin/patch-cmdline $(KDIR)/vmlinux-initramfs '$(strip $(call Image/cmdline/yaffs2)) ' 31 cat $(KDIR)/vmlinux-initramfs | $(STAGING_DIR_HOST)/bin/lzma e -si -so -eos -lc1 -lp2 -pb2 > $(KDIR)/vmlinux-initramfs.lzma 32 $(MAKE) -C $(GENERIC_PLATFORM_DIR)/image/lzma-loader $(LOADER_MAKEOPTS) clean compile 33 $(CP) $(KDIR)/loader.elf $(KDIR)/loader-initramfs.elf 34endif 35endef 36 37VMLINUX:=$(BIN_DIR)/$(IMG_PREFIX)-vmlinux-kernel 38 39define Image/BuildKernel 40 $(CP) $(KDIR)/loader.elf $(VMLINUX) 41ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) 42 $(CP) $(KDIR)/loader-initramfs.elf $(BIN_DIR)/$(IMG_PREFIX)-vmlinux-initramfs 43endif 44endef 45 46define Image/cmdline/jffs2-64k 47block2mtd.block2mtd=/dev/sda2,65536 root=/dev/mtdblock2 rootfstype=jffs2 48endef 49 50define Image/cmdline/jffs2-128k 51block2mtd.block2mtd=/dev/sda2,131072 root=/dev/mtdblock2 rootfstype=jffs2 52endef 53 54define Image/cmdline/ext4 55root=/dev/sda2 rootfstype=ext4 56endef 57 58define Image/cmdline/squashfs 59block2mtd.block2mtd=/dev/sda2,65536,rootfs root=/dev/mtdblock2 rootfstype=squashfs 60endef 61 62define Image/cmdline/yaffs2 63root=/dev/mtdblock1 rootfstype=yaffs2 64endef 65 66define Image/Build/squashfs 67 $(call prepare_generic_squashfs,$(KDIR)/root.squashfs) 68endef 69 70define Image/Build 71 $(call Image/Build/$(1),$(1)) 72 $(CP) $(KDIR)/vmlinux.elf $(BIN_DIR)/$(IMG_PREFIX)-$(1).kernel 73 $(STAGING_DIR_HOST)/bin/patch-cmdline $(BIN_DIR)/$(IMG_PREFIX)-$(1).kernel '$(strip $(call Image/cmdline/$(1))) ' 74 ./gen_image.sh $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).bin \ 75 5 $(BIN_DIR)/$(IMG_PREFIX)-$(1).kernel \ 76 $(CONFIG_TARGET_ROOTFS_PARTSIZE) $(KDIR)/root.$(1) \ 77 128 78endef 79 80$(eval $(call BuildImage)) 81