163 lines
5.9 KiB
Makefile
Executable File
163 lines
5.9 KiB
Makefile
Executable File
MODULE_NAME = appfs
|
|
# DIRs
|
|
# source folder
|
|
SENSOR_CFG_DIR = $(NVT_HDAL_DIR)/ext_devices/sensor/configs
|
|
AD_CFG_DIR = $(NVT_HDAL_DIR)/ext_devices/ad/configs
|
|
MOTOR_CFG_DIR = $(NVT_HDAL_DIR)/ext_devices/motor/configs
|
|
ISP_CFG_DIR = $(NVT_HDAL_DIR)/vendor/isp/configs
|
|
# dtb includes
|
|
DTB_INCLUDE = \
|
|
-I$(SENSOR_CFG_DIR)/dtsi \
|
|
-I$(AD_CFG_DIR)/dtsi \
|
|
-I$(MOTOR_CFG_DIR)/dtsi \
|
|
-I$(ISP_CFG_DIR)/dtsi \
|
|
-I$(KERNELDIR)/include \
|
|
-I$(KERNELDIR)/arch/arm/boot/dts/include \
|
|
-I$(CONFIG_DIR)/include \
|
|
-I$(LINUX_BUILD_TOP)/base/linux-BSP/linux-kernel/include
|
|
|
|
# appfs folder
|
|
SENSOR_APPFS_DIR = $(MODULE_NAME)/sensor
|
|
MOTOR_APPFS_DIR = $(MODULE_NAME)/motor
|
|
ISP_APPFS_DIR = $(MODULE_NAME)/isp
|
|
|
|
.PHONY: all clean
|
|
|
|
###############################################################################
|
|
# Linux Makefile #
|
|
###############################################################################
|
|
ifeq ($(NVT_PRJCFG_CFG),Linux)
|
|
OUTPUT_NAND = $(MODULE_NAME).ubifs.nand.bin
|
|
OUTPUT_NOR = $(MODULE_NAME).jffs2.nor.bin
|
|
OUTPUT_NOR_SQUASHFS = $(MODULE_NAME).squash.nor.bin
|
|
OUTPUT_EMMC = $(MODULE_NAME).ext4.emmc.bin
|
|
|
|
#--------- ENVIRONMENT SETTING --------------------
|
|
# disable python tool generate __pycache__ directory
|
|
export PYTHONDONTWRITEBYTECODE=1
|
|
# MTD configs
|
|
include $(NVT_PRJCFG_MODEL_CFG)
|
|
NVT_FS_MTD_CFG_DEFAULT := ${ROOTFS_DIR}/mtd_cfg.txt
|
|
NVT_FS_MTD_CFG := ${CONFIG_DIR}/cfg_gen/mtd_cfg.txt
|
|
-include $(NVT_FS_MTD_CFG_DEFAULT)
|
|
-include $(NVT_FS_MTD_CFG)
|
|
# UBIFS app partition label name
|
|
PARTITION_LABEL_UBIFS = app
|
|
# system fdt name
|
|
DTBNAME = nvt-evb.dtb
|
|
#--------- END OF ENVIRONMENT SETTING -------------
|
|
SENSOR_DTS = sensor.dts
|
|
MOTOR_DTS = motor.dts
|
|
ISP_DTS = isp.dts
|
|
SENSOR_CFG_SRC = $(wildcard $(SENSOR_CFG_DIR)/cfg/*.cfg)
|
|
AD_CFG_SRC = $(wildcard $(AD_CFG_DIR)/cfg/*.cfg)
|
|
MOTOR_CFG_SRC = $(wildcard $(MOTOR_CFG_DIR)/cfg/*.cfg)
|
|
ISP_CFG_SRC = $(wildcard $(ISP_CFG_DIR)/cfg/*.cfg) $(wildcard $(ISP_CFG_DIR)/bin/*.bin)
|
|
|
|
DTS_SRC = $(SENSOR_DTS) $(MOTOR_DTS) $(ISP_DTS)
|
|
DTB = $(DTS_SRC:.dts=.dtb)
|
|
|
|
ifneq ($(ROOTFS_APPFS_EN),OFF)
|
|
all: $(DTB) $(OUTPUT_NAND) $(OUTPUT_NOR) $(OUTPUT_NOR_SQUASHFS) $(OUTPUT_EMMC)
|
|
else
|
|
all:
|
|
@echo "nothing to be done for vendor_cfg"
|
|
endif
|
|
|
|
$(DTB): $(wildcard *.dtsi) $(wildcard *.dts)
|
|
|
|
%.dtb: %.dts
|
|
@echo Compiling $<
|
|
@cpp -nostdinc $(DTB_INCLUDE) -undef -x assembler-with-cpp $< > $<.tmp \
|
|
&& dtc -O dtb -b 0 -o $@ $<.tmp \
|
|
&& rm $<.tmp
|
|
|
|
$(SENSOR_APPFS_DIR): $(SENSOR_CFG_SRC) $(SENSOR_DTS:.dts=.dtb)
|
|
@echo creating $@
|
|
@mkdir -p $@ && \
|
|
cp -arf -t $@ $^
|
|
|
|
$(MOTOR_APPFS_DIR): $(MOTOR_CFG_SRC) $(MOTOR_DTS:.dts=.dtb)
|
|
@echo creating $@
|
|
@mkdir -p $@ && \
|
|
cp -arf -t $@ $^
|
|
|
|
$(ISP_APPFS_DIR): $(ISP_CFG_SRC) $(ISP_DTS:.dts=.dtb)
|
|
@echo creating $@
|
|
@mkdir -p $@ && \
|
|
cp -arf -t $@ $^
|
|
|
|
$(OUTPUT_NAND) : $(SENSOR_APPFS_DIR) $(MOTOR_APPFS_DIR) $(ISP_APPFS_DIR)
|
|
@echo "creating $@ ";
|
|
ifeq ($(EMBMEM), EMBMEM_SPI_NAND)
|
|
@$(ROOTFS_DIR)/verify_leb.py -f $(dir $(NVT_PRJCFG_MODEL_CFG))$(DTBNAME) -l $(PARTITION_LABEL_UBIFS) -b $(ROOTFS_UBI_APP_MAX_LEB_COUNT)
|
|
endif
|
|
@if [ -e bin ]; then \
|
|
rm -rf bin; \
|
|
fi
|
|
@mkdir bin;
|
|
@mkfs.ubifs --squash-uids -x $(ROOTFS_UBI_COMPRESS_MODE) -m $(ROOTFS_UBI_PAGE_SIZE) -e $(ROOTFS_UBI_ERASE_BLK_SIZE) -c $(ROOTFS_UBI_APP_MAX_LEB_COUNT) -o bin/$(OUTPUT_NAND).raw -r $(MODULE_NAME);
|
|
@echo -e "[ubifs]\nmode=ubi\nimage=bin/$(OUTPUT_NAND).raw\nvol_id=0" > bin/ubinize.cfg;
|
|
@echo -e "vol_size=$(shell echo $(ROOTFS_UBI_APP_MAX_LEB_COUNT)\*$(shell echo $(ROOTFS_UBI_ERASE_BLK_SIZE))|bc)" >> bin/ubinize.cfg;
|
|
@echo -e "vol_type=dynamic\nvol_name=app" >> bin/ubinize.cfg;
|
|
@ubinize -m $(ROOTFS_UBI_PAGE_SIZE) -p $(ROOTFS_UBI_BLK_SIZE) -s $(ROOTFS_UBI_PAGE_SIZE) -o bin/$(OUTPUT_NAND).tmp.raw bin/ubinize.cfg;
|
|
@$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$(OUTPUT_NAND).tmp.raw --packsum-dst=bin/$(OUTPUT_NAND) --packsum-type=0x9;
|
|
@cp bin/$(OUTPUT_NAND) $(OUTPUT_NAND)
|
|
$(OUTPUT_NOR) : $(SENSOR_APPFS_DIR) $(MOTOR_APPFS_DIR) $(ISP_APPFS_DIR)
|
|
@echo "creating $@ ";
|
|
@mkfs.jffs2 -n -s $(ROOTFS_JFFS2_PAGE_SIZE) -e $(ROOTFS_JFFS2_BLK_SIZE) -r $(MODULE_NAME) -U -X $(ROOTFS_JFFS2_COMPRESS_MODE) -p $(ROOTFS_JFFS2_APP_NOR_SIZE) -o bin/$(OUTPUT_NOR).raw;
|
|
@$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$@.raw --packsum-dst=bin/$@ --packsum-type=0x9;
|
|
@cp bin/$@ $@
|
|
$(OUTPUT_NOR_SQUASHFS) : $(SENSOR_APPFS_DIR) $(MOTOR_APPFS_DIR) $(ISP_APPFS_DIR)
|
|
@echo "creating $@ ";
|
|
@mksquashfs $(MODULE_NAME) bin/$@.raw -comp $(ROOTFS_SQ_COMPRESS_MODE) -b $(ROOTFS_SQ_BLK_SIZE) -root-owned;
|
|
@$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$@.raw --packsum-dst=bin/$@ --packsum-type=0x9;
|
|
@cp bin/$@ $@
|
|
$(OUTPUT_EMMC) : $(SENSOR_APPFS_DIR) $(MOTOR_APPFS_DIR) $(ISP_APPFS_DIR)
|
|
@echo "creating $@ ";
|
|
@make_ext4fs -s -l $(ROOTFS_EXT4_APP_SIZE) $@.raw $(MODULE_NAME);
|
|
@$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=$@.raw --packsum-dst=$@ --packsum-type=0x9; \
|
|
rm $@.raw;
|
|
|
|
clean:
|
|
@rm -f $(DTB) $(OUTPUT_NAND) $(OUTPUT_NOR) $(OUTPUT_NOR_SQUASHFS) $(OUTPUT_EMMC)
|
|
@rm -rf $(MODULE_NAME)
|
|
@rm -rf bin
|
|
|
|
ifneq ($(ROOTFS_APPFS_EN),OFF)
|
|
install:
|
|
@cp -arf -t $(LINUX_BUILD_TOP)/output $(OUTPUT_NAND) $(OUTPUT_NOR) $(OUTPUT_NOR_SQUASHFS) $(OUTPUT_EMMC)
|
|
@RAW_IMAGE_LIST=`ls bin/*.bin.raw 2>/dev/null`; \
|
|
for file in $$RAW_IMAGE_LIST; do \
|
|
mkdir -p $(LINUX_BUILD_TOP)/output/raw; \
|
|
if [ -f $$file ]; then cp $$file $(LINUX_BUILD_TOP)/output/raw; fi; \
|
|
done;
|
|
else
|
|
install:
|
|
@echo "nothing to be done for vendor_cfg"
|
|
endif
|
|
###############################################################################
|
|
# rtos Makefile #
|
|
###############################################################################
|
|
else ifeq ($(NVT_PRJCFG_CFG),rtos)
|
|
|
|
DTS_SRC = isp.dts
|
|
DTB = $(DTS_SRC:.dts=.dtb)
|
|
|
|
all: $(DTB)
|
|
|
|
$(DTB): $(wildcard *.dtsi) $(wildcard *.dts)
|
|
|
|
%.dtb: %.dts
|
|
@echo Compiling $<
|
|
@cpp -nostdinc $(DTB_INCLUDE) -undef -x assembler-with-cpp $< > $<.tmp \
|
|
&& dtc -O dtb -b 0 -o $@ $<.tmp \
|
|
&& rm $<.tmp
|
|
|
|
clean:
|
|
@rm -f $(DTB)
|
|
|
|
install:
|
|
|
|
endif
|