1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
#
# Copyright (C) 2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/image.mk
include $(INCLUDE_DIR)/host.mk
FAT32_BLOCK_SIZE=1024
FAT32_BLOCKS=$(shell echo $$(($(CONFIG_ZYNQ_SD_BOOT_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE))))
#################################################
# Images
#################################################
define Image/boot-imgs
# Copy zImage to BIN_DIR
$(CP) $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-zImage
$(call Image/BuildKernel/MkuImage, none, $(KERNEL_LOADADDR), \
$(KERNEL_ENTRY_POINT), $(KDIR)/zImage, \
$(BIN_DIR)/$(IMG_PREFIX)-uImage)
$(call Image/BuildDTB,$(DTS_DIR)/$(DEVICE_DTS).dts,\
$(BIN_DIR)/$(IMG_PREFIX)-system.dtb)
$(call Image/mkfs/cpiogz)
$(call Image/mkfs/targz)
# Create uboot cpio.gz
mkimage -A arm -T ramdisk -C gzip -n "$(PROFILE) OpenWRT rootfs" \
-d $(BIN_DIR)/$(IMG_PREFIX)-rootfs.cpio.gz \
$(BIN_DIR)/$(IMG_PREFIX)-uramdisk.image.gz
# create FIT image with rootfs
./mkits.sh \
-D $(DEVICE_LC) -o $(KDIR)/fit-$(DEVICE_LC).its -k $(KDIR)/zImage \
-d $(BIN_DIR)/$(IMG_PREFIX)-system.dtb \
-C none -a $(KERNEL_LOADADDR) -e $(KERNEL_ENTRY_POINT) \
-A $(ARCH) -v $(LINUX_VERSION) \
-r $(BIN_DIR)/$(IMG_PREFIX)-rootfs.cpio.gz -z gzip
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/fit-$(DEVICE_LC).its $(KDIR)/fit-$(DEVICE_LC).itb
$(CP) $(KDIR)/fit-$(DEVICE_LC).itb $(BIN_DIR)/$(IMG_PREFIX)-fit.itb
ln -fs $(IMG_PREFIX)-fit.itb $(BIN_DIR)/fit.itb
endef
define Image/Build/Zynq
# Create SD card image
rm -f $(KDIR_TMP)/$(IMG_PREFIX)-boot.img
mkfs.fat $(KDIR_TMP)/$(IMG_PREFIX)-boot.img -C $(FAT32_BLOCKS)
mcopy -i $(KDIR_TMP)/$(IMG_PREFIX)-boot.img $(KDIR)/uboot-$(IMG_PREFIX)-u-boot.bin ::boot.bin
mcopy -i $(KDIR_TMP)/$(IMG_PREFIX)-boot.img $(BIN_DIR)/$(DEVICE_DTS)-system.dtb ::devicetree.dtb
mcopy -i $(KDIR_TMP)/$(IMG_PREFIX)-boot.img $(KDIR)/uboot-$(IMG_PREFIX)-u-boot-dtb.img ::u-boot.img
mcopy -i $(KDIR_TMP)/$(IMG_PREFIX)-boot.img $(KDIR)/uboot-$(IMG_PREFIX)-uEnv.txt ::uEnv.txt
mcopy -i $(KDIR_TMP)/$(IMG_PREFIX)-boot.img $(BIN_DIR)/$(IMG_PREFIX)-uImage ::uImage
./gen_zynq_sdcard_img.sh \
$(BIN_DIR)/$(IMG_PREFIX)-sdcard-vfat-$(1).img \
$(KDIR_TMP)/$(IMG_PREFIX)-boot.img \
$(KDIR)/root.$(1) \
$(CONFIG_ZYNQ_SD_BOOT_PARTSIZE) \
$(CONFIG_TARGET_ROOTFS_PARTSIZE)
$(if $(CONFIG_TARGET_IMAGES_GZIP),gzip -9n -c $(BIN_DIR)/$(IMG_PREFIX)-sdcard-vfat-$(1).img > $(BIN_DIR)/$(IMG_PREFIX)-sdcard-vfat-$(1).img.gz)
endef
#################################################
# Devices
#################################################
# default kernel load address
KERNEL_LOADADDR=0x8000
KERNEL_ENTRY_POINT=0x8000
### Device macros ###
define Device/Default
IMG_PREFIX := zynq
DEVICE_DTS :=
PROFILE_SANITIZED :=
endef
DEVICE_VARS += DEVICE_DTS
define Device/DefaultConfig
DEVICE_LC = $(1)
IMG_PREFIX = zynq-$(1)
DEVICE_DTS = zynq-$(1)
endef
### ZC702 ###
define Device/ZC702
$(call Device/DefaultConfig,zc702)
endef
define Device/ZED
$(call Device/DefaultConfig,zed)
endef
define Device/ZYBO
$(call Device/DefaultConfig,zybo)
endef
define Image/BuildKernel
$(eval $(call Device/$(PROFILE)))
$(call Image/boot-imgs)
endef
define Image/Build
$(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1).img
$(call Image/Build/Zynq,$(1))
endef
$(eval $(call BuildImage))
|