aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
blob: 76d5a887a03dc6aa4076a8ef1e23e3733b8418c4 (plain)
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
.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

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 \
	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-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