mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 22:47:56 +00:00
mvebu: Add sub-profiles
In order to support the various board NAND layout that we support, introduce a sub-profile similar to the one used by ar71xx. These subprofiles provide a default implementation for most of the building functions, while allowing each sub-profile to override any of these operations in order to have a more specific behaviour, like Mamba expects for example. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Imre Kaloz <kaloz@openwrt.org> SVN-Revision: 44261
This commit is contained in:
parent
b361a9d59a
commit
80cfe34291
@ -7,18 +7,10 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/image.mk
|
||||
|
||||
TARGET_DTBS := armada-xp-db armada-370-db armada-xp-openblocks-ax3-4 armada-370-mirabox \
|
||||
armada-370-rd armada-xp-gp armada-xp-mamba
|
||||
|
||||
NANDBOARDS := armada-xp-mamba
|
||||
|
||||
LOADADDR:=0x00008000
|
||||
|
||||
JFFS2_BLOCKSIZE = 128k
|
||||
|
||||
UBIFS_OPTS = -F -m 2048 -e 124KiB -c 4096 -U
|
||||
UBI_OPTS = -m 2048 -p 128KiB -s 512 -O 2048
|
||||
|
||||
KDIR_TMP:=$(KDIR)/tmp
|
||||
|
||||
|
||||
@ -33,16 +25,70 @@ define Image/Build/DTB
|
||||
cp $(KDIR)/uImage$(2)-$(1) $(UIMAGE)$(2)-$(1);
|
||||
endef
|
||||
|
||||
define Image/BuildKernel
|
||||
$(foreach dtb,$(TARGET_DTBS),$(call Image/Build/DTB,$(dtb)))
|
||||
# $(1): Profile Name
|
||||
# $(2): DTB Name
|
||||
# $(3): Erase Block Size
|
||||
# $(4): Page Size
|
||||
# $(5): Sub-Page Size (optional)
|
||||
define NANDProfile
|
||||
define Image/BuildKernel/Profile/$(1)
|
||||
$(call Image/Build/DTB,$(2))
|
||||
ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
|
||||
$(call Image/Build/Initramfs)
|
||||
$(call Image/Build/Profile,$(1)/Initramfs)
|
||||
endif
|
||||
endef
|
||||
|
||||
define Image/Build/squashfs
|
||||
$(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
|
||||
$(foreach nandboard,$(NANDBOARDS),$(call Image/Build/UbinizeImage,$(nandboard),,squashfs,$(UBI_OPTS));)
|
||||
define Image/Build/Profile/$(1)/BuildSysupgrade
|
||||
$(call Image/Build/SysupgradeNAND,$(2),$$(1),$(KDIR)/uImage-$(2))
|
||||
endef
|
||||
|
||||
define Image/Build/Profile/$(1)/Initramfs
|
||||
$(call Image/Build/DTB,$(2),-initramfs)
|
||||
endef
|
||||
|
||||
define Image/Build/Profile/$(1)/squashfs
|
||||
$(call Image/Build/UbinizeImage,$(2),,squashfs, -p $(3) -m $(4) $(if $(5),-s $(5)))
|
||||
cp $(KDIR)/$$(IMG_PREFIX)-$(2)-squashfs-ubinized.bin $(BIN_DIR)
|
||||
endef
|
||||
|
||||
PROFILES_LIST += $(1)
|
||||
endef
|
||||
|
||||
# $(1): Profile Name
|
||||
# $(2): Sub Profiles list
|
||||
define MultiProfile
|
||||
define Image/BuildKernel/Profile/$(1)
|
||||
$(foreach profile, $(2),
|
||||
$(call Image/BuildKernel/Profile/$(profile)))
|
||||
endef
|
||||
|
||||
define Image/Build/Profile/$(1)/BuildSysupgrade
|
||||
$(foreach profile, $(2),
|
||||
$(call Image/Build/Profile/$(profile)/BuildSysupgrade,$$(1)))
|
||||
endef
|
||||
|
||||
define Image/Build/Profile/$(1)/Initramfs
|
||||
$(foreach profile, $(2),
|
||||
$(call Image/Build/Profile/$(profile)/Initramfs))
|
||||
endef
|
||||
|
||||
define Image/Build/Profile/$(1)/squashfs
|
||||
$(foreach profile, $(2),
|
||||
$(call Image/Build/Profile/$(profile)/squashfs))
|
||||
endef
|
||||
endef
|
||||
|
||||
# Boards with NAND, with subpages
|
||||
$(eval $(call NANDProfile,370-DB,armada-370-db,128KiB,2048,512))
|
||||
$(eval $(call NANDProfile,370-RD,armada-370-rd,128KiB,2048,512))
|
||||
$(eval $(call NANDProfile,Mamba,armada-xp-mamba,128KiB,2048,512))
|
||||
$(eval $(call NANDProfile,Mirabox,armada-370-mirabox,128KiB,2048,512))
|
||||
$(eval $(call NANDProfile,OpenBlocks-AX-3-4,armada-xp-openblocks-ax3-4,128KiB,2048,512))
|
||||
$(eval $(call NANDProfile,XP-DB,armada-xp-db,128KiB,2048,512))
|
||||
$(eval $(call NANDProfile,XP-GP,armada-xp-gp,128KiB,2048,512))
|
||||
|
||||
define Image/Build/Profile/Mamba/squashfs
|
||||
$(call Image/Build/UbinizeImage,armada-xp-mamba,,squashfs, -p 128KiB -m 2048 -s 512)
|
||||
( \
|
||||
dd if=$(KDIR)/uImage-armada-xp-mamba bs=3072k conv=sync; \
|
||||
dd if=$(KDIR)/$(IMG_PREFIX)-armada-xp-mamba-squashfs-ubinized.bin \
|
||||
@ -50,20 +96,26 @@ define Image/Build/squashfs
|
||||
) > $(BIN_DIR)/$(IMG_PREFIX)-armada-xp-mamba-squashfs-factory.img
|
||||
endef
|
||||
|
||||
define Image/Build/Initramfs
|
||||
$(foreach dtb,$(TARGET_DTBS),$(call Image/Build/DTB,$(dtb),-initramfs))
|
||||
$(eval $(call MultiProfile,Generic,$(PROFILES_LIST)))
|
||||
$(eval $(call MultiProfile,Evalboards,$(PROFILES_LIST)))
|
||||
|
||||
define Image/BuildKernel
|
||||
$(call Image/BuildKernel/Profile/$(PROFILE))
|
||||
endef
|
||||
|
||||
define BuildSysupgrade
|
||||
$(call Image/Build/SysupgradeNAND,$(2),$(1),$(KDIR)/uImage-$(2))
|
||||
define Image/Build/squashfs
|
||||
# Align the squashfs image size before calling the profiles,
|
||||
# otherwise the size would keep growing
|
||||
$(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
|
||||
$(call Image/Build/Profile/$(PROFILE)/squashfs)
|
||||
endef
|
||||
|
||||
define Image/Build
|
||||
$(call Image/Build/$(1))
|
||||
dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) bs=128k conv=sync
|
||||
$(foreach nandboard,$(NANDBOARDS),$(call BuildSysupgrade,$(1),$(nandboard));)
|
||||
$(call Image/Build/Profile/$(PROFILE)/BuildSysupgrade,$(1))
|
||||
ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
|
||||
$(call Image/Build/Initramfs)
|
||||
$(call Image/Build/Profile/$(PROFILE)/Initramfs)
|
||||
endif
|
||||
endef
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user