blob: b05a7ff61e4d0bb80e18cf710a22c6540ec0d05f [file] [log] [blame]
.PHONY: all clean test
O ?= .
ARCH ?=
ifeq ($(strip $(ARCH)),)
ARCH_ARM = y
ARCH_ARM64 = y
else ifeq (${ARCH}, arm)
ARCH_ARM = y
else ifeq (${ARCH}, arm64)
ARCH_ARM64 = y
endif
ifneq ("$(wildcard $(PWD)/MAINTAINERS)","")
LINUX ?= $(PWD)
else
mkfile_path := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
LINUX ?= ${mkfile_path}../linux
endif
DTC ?= ${LINUX}/scripts/dtc/dtc
DTC_WARN_FLAGS := -Wno-interrupt_provider -Wno-unit_address_vs_reg -Wno-unit_address_format -Wno-avoid_unnecessary_addr_size -Wno-alias_paths -Wno-graph_child_address -Wno-simple_bus_reg -Wno-unique_unit_address -Wno-pci_device_reg
DTC_FLAGS := -O dtb -@ -b 0 -i${LINUX}/include ${DTC_WARN_FLAGS}
CPP_FLAGS := -E -nostdinc -I${LINUX}/scripts/dtc/include-prefixes -undef -D__DTS__ -x assembler-with-cpp
dtbo_src-y =
dtbo_src-$(ARCH_ARM) += $(shell find arch/arm -name *.dtso)
dtbo_src-$(ARCH_ARM64) += $(shell find arch/arm64 -name *.dtso)
dtbo_src = ${dtbo_src-y}
dtbo_dst := $(dtbo_src:.dtso=.dtbo)
dtbo_tmp := $(dtbo_src:.dtso=.dtso.pre)
dtbo_dst := $(addprefix $(O)/,$(dtbo_dst))
dtbo_tmp := $(addprefix $(O)/,$(dtbo_tmp))
# List of all dts files that need symbols enabled.
# These are taken from $LINUX.
dtb_src_arm = \
am335x-boneblack.dts \
am437x-gp-evm.dts \
am57xx-beagle-x15.dts \
am57xx-beagle-x15-revb1.dts \
am57xx-beagle-x15-revc.dts \
am572x-idk.dts \
am571x-idk.dts \
am574x-idk.dts \
dra7-evm.dts \
dra72-evm.dts \
dra72-evm-revc.dts \
dra71-evm.dts \
dra76-evm.dts \
keystone-k2g-evm.dts
dtb_src_arm := $(dtb_src_arm:%=$(LINUX)/arch/arm/boot/dts/%)
dtb_src_arm64 = \
ti/k3-am654-base-board.dts \
ti/k3-j721e-common-proc-board.dts \
ti/k3-j7200-common-proc-board.dts \
ti/k3-am642-evm.dts \
ti/k3-am642-sk.dts
dtb_src_arm64 := $(dtb_src_arm64:%=$(LINUX)/arch/arm64/boot/dts/%)
dtb_src-y =
dtb_src-$(ARCH_ARM) += $(dtb_src_arm)
dtb_src-$(ARCH_ARM64) += $(dtb_src_arm64)
dtb_src = $(dtb_src-y)
dtb_dst = $(dtb_src:$(LINUX)/%.dts=%.dtb)
dtb_tmp = $(dtb_src:$(LINUX)/%.dts=%.dts.pre)
dtb_dst := $(addprefix $(O)/,$(dtb_dst))
dtb_tmp := $(addprefix $(O)/,$(dtb_tmp))
all: dtbs dtbos
$(dtbo_tmp): $(O)/%.dtso.pre: %.dtso
@mkdir -p `dirname $@`
@gcc $(CPP_FLAGS) -o $@ $<
$(dtbo_dst): $(O)/%.dtbo: $(O)/%.dtso.pre
@echo " DTC $@"
@$(DTC) $(DTC_FLAGS) -o $@ $<
dtbos: $(dtbo_dst)
$(dtb_tmp): $(O)/%.dts.pre : $(LINUX)/%.dts
@mkdir -p `dirname $@`
@gcc $(CPP_FLAGS) -o $@ $<
$(dtb_dst): $(O)/%.dtb : $(O)/%.dts.pre
@echo " DTC $@"
@$(DTC) $(DTC_FLAGS) -i$(LINUX)/$(patsubst $(O)/%,%,$(dir $@)) -o $@ $<
dtbs: $(dtb_dst)
clean:
@rm -f $(dtb_tmp) $(dtb_dst)
@rm -f $(dtbo_tmp) $(dtbo_dst)
# base-dtb,ovl1,ovl2...
dtb-tests-arm := dra76-evm.dtb,ti/dra76-evm-tfp410.dtbo \
dra76-evm.dtb,ti/dra76-evm-ov5640.dtbo \
dra76-evm.dtb,ti/dra76-evm-fpdlink-fusion.dtbo,ti/dra76-evm-fpdlink-ov10635-0-0.dtbo,ti/dra76-evm-fpdlink-ov10635-0-1.dtbo,ti/dra76-evm-fpdlink-imx390-0-2.dtbo,ti/dra76-evm-fpdlink-imx390-0-3.dtbo \
dra71-evm.dtb,ti/dra71-evm-lcd-auo-g101evn01.0.dtbo \
dra72-evm.dtb,ti/dra7x-evm-osd-lcd-common.dtbo,ti/dra72-evm-touchscreen.dtbo,ti/lcd-osd101t2045.dtbo \
dra72-evm.dtb,ti/dra7x-evm-osd-lcd-common.dtbo,ti/dra72-evm-touchscreen.dtbo,ti/lcd-osd101t2587.dtbo \
dra72-evm-revc.dtb,ti/dra7x-evm-osd-lcd-common.dtbo,ti/dra72-evm-touchscreen.dtbo,ti/lcd-osd101t2045.dtbo \
dra72-evm-revc.dtb,ti/dra7x-evm-osd-lcd-common.dtbo,ti/dra72-evm-touchscreen.dtbo,ti/lcd-osd101t2587.dtbo \
dra7-evm.dtb,ti/dra7x-evm-osd-lcd-common.dtbo,ti/dra74-evm-touchscreen.dtbo,ti/lcd-osd101t2045.dtbo \
dra7-evm.dtb,ti/dra7x-evm-osd-lcd-common.dtbo,ti/dra74-evm-touchscreen.dtbo,ti/lcd-osd101t2587.dtbo
dtb-tests-arm += \
am57xx-beagle-x15.dtb,ti/am57xx-evm-common.dtbo,ti/am57xx-evm.dtbo \
am57xx-beagle-x15-revc.dtb,ti/am57xx-evm-common.dtbo,ti/am57xx-evm-reva3.dtbo
dtb-tests-arm += \
am571x-idk.dtb,ti/am57xx-idk-osd-lcd-common.dtbo,ti/am571x-idk-touchscreen.dtbo,ti/lcd-osd101t2045.dtbo \
am571x-idk.dtb,ti/am57xx-idk-osd-lcd-common.dtbo,ti/am571x-idk-touchscreen.dtbo,ti/lcd-osd101t2587.dtbo \
am572x-idk.dtb,ti/am57xx-idk-osd-lcd-common.dtbo,ti/am572x-idk-touchscreen.dtbo,ti/lcd-osd101t2045.dtbo \
am572x-idk.dtb,ti/am57xx-idk-osd-lcd-common.dtbo,ti/am572x-idk-touchscreen.dtbo,ti/lcd-osd101t2587.dtbo \
am574x-idk.dtb,ti/am57xx-idk-osd-lcd-common.dtbo,ti/am572x-idk-touchscreen.dtbo,ti/lcd-osd101t2587.dtbo
dtb-tests-arm += \
keystone-k2g-evm.dtb,ti/keystone-k2g-evm-lcd.dtbo
dtb-tests-arm64 := \
ti/k3-am654-base-board.dtb,ti/k3-am654-gp.dtbo \
ti/k3-am654-base-board.dtb,ti/k3-am654-evm-hdmi.dtbo \
ti/k3-am654-base-board.dtb,ti/k3-am654-evm-oldi-lcd1evm.dtbo \
ti/k3-am654-base-board.dtb,ti/k3-am654-evm-tc358876.dtbo \
ti/k3-am654-base-board.dtb,ti/k3-am654-evm-ov5640.dtbo \
ti/k3-am654-base-board.dtb,ti/k3-am654-evm-fpdlink-ub960-evm.dtbo,ti/k3-am654-evm-fpdlink-ov10635-0.dtbo,ti/k3-am654-evm-fpdlink-ov10635-1.dtbo \
ti/k3-am654-base-board.dtb,ti/k3-am654-pcie-usb2.dtbo \
ti/k3-am654-base-board.dtb,ti/k3-am654-pcie-usb3.dtbo \
ti/k3-am654-base-board.dtb,ti/k3-am654-idk.dtbo
dtb-tests-arm64 += \
ti/k3-j721e-common-proc-board.dtb,ti/k3-j721e-common-proc-board-infotainment.dtbo
comma := ,
define GEN_MERGE_CMD
@echo " [TEST] $(subst $(comma), ,$1)"
@fdtoverlay -i $(2)$(word 1, $(subst $(comma), ,$1)) -o /tmp/test-merge.dtb $(addprefix $2,$(wordlist 2, 100, $(subst $(comma), ,$1)))
endef
test: all
$(foreach i,$(dtb-tests-arm),$(call GEN_MERGE_CMD,$(i),arch/arm/boot/dts/))
$(foreach i,$(dtb-tests-arm64),$(call GEN_MERGE_CMD,$(i),arch/arm64/boot/dts/))
@rm -f /tmp/test-merge.dtb