Files
kunlun/mfgtool/ram/Makefile
2024-10-12 05:45:51 +08:00

221 lines
7.9 KiB
Makefile

# OUTPUT type
# 1 - .out
# 2 - .a
# 3 - .so
OUTPUT_TYPE = 1
ifeq ($(ram_build_type), ram_type_boardburn)
PRE_MARCO += RAM_FOR_BOARDBURN=1
endif
ifeq ($(ram_build_type), ram_type_chipburn)
ifeq ($(target), kunlun3)
ifeq ($(manufacturer), htzd)
PRE_MARCO += MANUFACTURER_INDEX=0
version = I
else ifeq ($(manufacturer), qj)
PRE_MARCO += MANUFACTURER_INDEX=1
version = II
else ifeq ($(manufacturer), flx)
PRE_MARCO += MANUFACTURER_INDEX=2
version = III
else ifeq ($(manufacturer), spe)
PRE_MARCO += MANUFACTURER_INDEX=3
version = IV
else ifeq ($(manufacturer), gx)
PRE_MARCO += MANUFACTURER_INDEX=4
version = V
else ifeq ($(manufacturer), dt)
PRE_MARCO += MANUFACTURER_INDEX=5
version = VI
else
PRE_MARCO += MANUFACTURER_INDEX=0
version = I
endif
else
PRE_MARCO += MANUFACTURER_INDEX=0
endif
endif
ifeq ($(ram_build_type), ram_type_boardburn)
RAM_TYPE = boardburn
ifeq ($(target), kunlun2)
OUTPUT_NAME = KL2-RAM-B-$(RAM_VERSION)
OUTPUT_DIR = $(TOPDIR)/mfgtool/ram/.output/lib
TARGET_DIR = .output/lib
else ifeq ($(target), kunlun3)
OUTPUT_NAME = KL3-RAM-B-$(RAM_VERSION)
OUTPUT_DIR = $(TOPDIR)/mfgtool/ram/.output/plc/lib
TARGET_DIR = .output/plc/lib
else
OUTPUT_NAME = KL1-RAM-B-$(RAM_VERSION)
OUTPUT_DIR = $(TOPDIR)/mfgtool/ram/.output/lib
TARGET_DIR = .output/lib
endif
else ifeq ($(ram_build_type), ram_type_chipburn)
RAM_TYPE = chipburn
ifeq ($(target), kunlun2)
OUTPUT_NAME = KL2-RAM-C-$(RAM_VERSION)
OUTPUT_DIR = $(TOPDIR)/mfgtool/ram/.output/lib
TARGET_DIR = .output/lib
else ifeq ($(target), kunlun3)
OUTPUT_NAME = KL3-RAM-C-$(version)-$(RAM_VERSION)
OUTPUT_DIR = $(TOPDIR)/mfgtool/ram/.output/plc/lib
TARGET_DIR = .output/plc/lib
else
OUTPUT_NAME = KL1-RAM-C-$(RAM_VERSION)
OUTPUT_DIR = $(TOPDIR)/mfgtool/ram/.output/lib
TARGET_DIR = .output/lib
endif
else
RAM_TYPE = smoke
ifeq ($(target), kunlun2)
OUTPUT_NAME = kl2_ram
OUTPUT_DIR = $(TOPDIR)/mfgtool/ram/.output/lib
TARGET_DIR = .output/lib
else ifeq ($(target), kunlun3)
OUTPUT_NAME = kl3_ram
OUTPUT_DIR = $(TOPDIR)/mfgtool/ram/.output/plc/lib
TARGET_DIR = .output/plc/lib
else
OUTPUT_NAME = kl1_ram
OUTPUT_DIR = $(TOPDIR)/mfgtool/ram/.output/lib
TARGET_DIR = .output/lib
endif
endif
ifeq ($(target), kunlun2)
hw_dep = hw2
riscv_dep = riscv2
else
ifeq ($(target), kunlun3)
hw_dep = hw3
riscv_dep = riscv3
else
hw_dep = hw
riscv_dep = riscv
endif
endif
# predefined macro
# See plc_config.h for the definition of IOT_BUILD_TYPE
PRE_MARCO += IOT_BUILD_TYPE=IOT_BUILD_TYPE_RAM
SUB_DIRS = ../ram/src ../ram/src/$(hw_dep) $(TOPDIR)/mfgtool/clzma $(TOPDIR)/mfgtool/io_lib
ADD_INCLUDE += inc inc/$(hw_dep)
ADD_INCLUDE += $(TOPDIR)/inc/os_shim $(TOPDIR)/inc/compiler/gcc $(TOPDIR)/inc/utils
ADD_INCLUDE += $(TOPDIR)/mfgtool/ram/inc $(TOPDIR)/mfgtool/ram/inc/$(hw_dep) $(TOPDIR)/inc $(TOPDIR)/driver/inc $(TOPDIR)/inc/driver $(TOPDIR)/inc/pib $(TOPDIR)/mfgtool/clzma
ADD_INCLUDE += $(TOPDIR)/driver/src/$(hw_dep)/inc
ADD_INCLUDE += $(TOPDIR)/startup/$(riscv_dep)/inc
ADD_INCLUDE += $(TOPDIR)/inc/io_lib $(TOPDIR)/common/io_lib/inc
ADD_INCLUDE += $(TOPDIR)/inc/driver/flash
EXT_SRC = $(TOPDIR)/driver/src/hal/iot_efuse.c $(TOPDIR)/driver/src/hal/flash.c $(TOPDIR)/driver/src/hal/sram.c \
$(TOPDIR)/driver/src/hal/irq.c $(TOPDIR)/driver/src/hal/clock.c $(TOPDIR)/driver/src/hal/mtd.c \
$(TOPDIR)/common/os_shim/freertos/src/os_mem.c $(TOPDIR)/common/io_lib/src/iot_string.c \
$(TOPDIR)/common/utils/iot_crc.c $(TOPDIR)/driver/src/hal/system.c \
$(TOPDIR)/driver/src/hal/iot_flash_layout.c
ifeq ($(target), kunlun2)
EXT_SRC += $(TOPDIR)/driver/src/hw2/ana.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/wdg.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/intc.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/apb.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/clk.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/efuse.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/sfc.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/ahb.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/sec_glb.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/smc.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/gpio_mtx.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/ddrc.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/uart_e.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/pmu.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/gp_timer.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/cpu.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/dw_apb_ssi.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/gpio_hw.c
EXT_SRC += $(TOPDIR)/driver/src/hw2/system_hw.c
else
ifeq ($(target), kunlun3)
EXT_SRC += $(TOPDIR)/driver/src/hw3/ana.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/wdg.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/intc.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/apb.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/clk.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/efuse.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/sfc.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/ahb.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/sec_glb.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/smc.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/gpio_mtx.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/ddrc.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/uart_e.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/pmu.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/gp_timer.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/cpu.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/dw_apb_ssi.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/gpio_hw.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/system_hw.c
EXT_SRC += $(TOPDIR)/driver/src/hw3/pll_cal.c
EXT_SRC += $(TOPDIR)/common/os_shim/dtestos/os_task.c
else
EXT_SRC += $(TOPDIR)/driver/src/hw/ana.c
EXT_SRC += $(TOPDIR)/driver/src/hw/wdg.c
EXT_SRC += $(TOPDIR)/driver/src/hw/intc.c
EXT_SRC += $(TOPDIR)/driver/src/hw/apb.c
EXT_SRC += $(TOPDIR)/driver/src/hw/clk.c
EXT_SRC += $(TOPDIR)/driver/src/hw/efuse.c
EXT_SRC += $(TOPDIR)/driver/src/hw/sfc.c
EXT_SRC += $(TOPDIR)/driver/src/hw/ahb.c
EXT_SRC += $(TOPDIR)/driver/src/hw/sec_glb.c
EXT_SRC += $(TOPDIR)/driver/src/hw/smc.c
EXT_SRC += $(TOPDIR)/driver/src/hw/gp_timer.c
EXT_SRC += $(TOPDIR)/driver/src/hw/uart_e.c
EXT_SRC += $(TOPDIR)/driver/src/hw/cpu.c
EXT_SRC += $(TOPDIR)/driver/src/hw/gpio_mtx.c
EXT_SRC += $(TOPDIR)/driver/src/hw/system_hw.c
EXT_SRC += $(TOPDIR)/driver/src/hw/dw_apb_ssi.c
EXT_SRC += $(TOPDIR)/driver/src/hw/gpio_hw.c
endif
endif
LD_SCRIPT = link_ram.lds
# lib dir
ADD_LIBDIR = $(TOPDIR)/mfgtool/clzma $(TOPDIR)/mfgtool/io_lib
# becareful the seq of LIBs
ADD_LIB = clzma io_lib
#####################################################
.PHONY: TARGET
TARGET: ram_copy_check
ifdef TOPDIR
include $(TOPDIR)/build/makefile.cfg
else
include $(CURDIR)/build/makefile.cfg
TOPDIR = $(CURDIR)
export TOPDIR
endif
ram_copy_check: $(TARGET_DIR)/$(OUTPUT_NAME).out
@mkdir -p $(TOPDIR)/tools/ram/$(RAM_TYPE)
@cp $(OUTPUT_DIR)/$(OUTPUT_NAME).bin $(TOPDIR)/tools/ram/$(RAM_TYPE)/$(OUTPUT_NAME).bin
@md5sum $(TOPDIR)/tools/ram/$(RAM_TYPE)/$(OUTPUT_NAME).bin | cut -d " " -f1 > $(TOPDIR)/tools/ram/$(RAM_TYPE)/$(OUTPUT_NAME).md5
dump:
$(OBJDUMP) -D -S -l $(OUTPUT_FULL_NAME) > $(OUTPUT_FULL_NAME).dump
# display the obj files and output name
debug:
@echo TOPDIR=$(TOPDIR)
@echo OUTPUT_LIB=$(OUTPUT_FULL_NAME)
@echo DEPS=$(DEPS)
@echo OBJECTS=$(OBJECTS)
@echo SRCS=$(SRCS)
@echo OBJECTS folder=$(foreach dirname, $(SUB_DIRS), $(addprefix $(BIN_DIR)/, $(dirname)))
@echo output_name=$(OUTPUT_FULL_NAME)