mirror of
git://nv-tegra.nvidia.com/linux/kernel-devicetree.git
synced 2025-12-22 09:11:28 +03:00
For generic-dts, LINUX_VERSION is hardcoded to be 5.15. This is used by kstable as well where kernel version is 6.0. Fix this by setting appropriate LINUX_VERSION based on kernel build options. Bug 3931063 Change-Id: I478ce03b40ff57b9839ae9d3168825b3c917196b Signed-off-by: Ashish Mhetre <amhetre@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2840518 Reviewed-by: Bitan Biswas <bbiswas@nvidia.com> Reviewed-by: Sachin Nikam <snikam@nvidia.com> GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
129 lines
3.7 KiB
Makefile
129 lines
3.7 KiB
Makefile
# SPDX-FileCopyrightText: Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
objtree = $(srctree)
|
|
|
|
# Redefine the fixdep command
|
|
cmd_and_fixdep = \
|
|
$(cmd); \
|
|
$(objtree)/scripts/basic/fixdep $(depfile) $@ '$(make-cmd)' > $(dot-target).cmd;\
|
|
rm -f $(depfile)
|
|
|
|
include $(oottree)/scripts/Makefile.lib
|
|
|
|
DTC_CPP_FLAGS += $(EXTRA_CPP_FLAGS)
|
|
|
|
ifneq ($(findstring oot,$(NV_BUILD_KERNEL_OPTIONS)),)
|
|
DTC_CPP_FLAGS += -DLINUX_VERSION=515 -DTEGRA_HOST1X_DT_VERSION=2
|
|
else
|
|
DTC_CPP_FLAGS += -DLINUX_VERSION=600 -DTEGRA_HOST1X_DT_VERSION=2
|
|
endif
|
|
|
|
ifneq ($(TEGRA_TOP),)
|
|
SOURCE_TOP := $(TEGRA_TOP)
|
|
else ifneq ($(TOP),)
|
|
SOURCE_TOP := $(TOP)
|
|
else
|
|
$(error TEGRA_TOP or TOP is not defined)
|
|
endif
|
|
|
|
tegra-dtstree := $(SOURCE_TOP)/hardware/nvidia
|
|
|
|
# Get relative path for tegra-dtstree from this makefile
|
|
null :=
|
|
space :=$(null) $(null)
|
|
obj-path := $(obj)
|
|
obj-path-from-top := $(subst $(SOURCE_TOP),,$(obj-path))
|
|
rel-top-path := $(subst /, $(space)/,$(obj-path-from-top))
|
|
rel-top-path := $(patsubst /%,../,$(rel-top-path))
|
|
rel-top-path := $(subst $(space),,$(rel-top-path))
|
|
tegra-rel-dtstree := $(rel-top-path)/hardware/nvidia
|
|
|
|
DTC_INCLUDE :=
|
|
# SOC independent common include
|
|
DTC_INCLUDE += $(tegra-dtstree)/soc/tegra/generic-dts/include
|
|
|
|
# SOC T23X specific common include
|
|
DTC_INCLUDE += $(tegra-dtstree)/soc/generic-dts/tegra/include/kernel
|
|
DTC_INCLUDE += $(tegra-dtstree)/soc/generic-dts/tegra/include/nvidia-oot
|
|
DTC_INCLUDE += $(tegra-dtstree)/soc/generic-dts/t23x/include
|
|
DTC_INCLUDE += $(tegra-dtstree)/soc/generic-dts/t23x/dts
|
|
|
|
dtb-y :=
|
|
dtbo-y :=
|
|
|
|
DTB_LIST := $(dtb-y)
|
|
DTBO_LIST := $(dtbo-y)
|
|
dtb-y :=
|
|
kdts := $(shell find $(tegra-dtstree)/platform -name generic-dts)
|
|
dts_makefile=$(foreach d,$(wildcard $1*), $(call dts_makefile,$(d)/,$(2)) $(if $(findstring Makefile,$(d)),$(d)))
|
|
dts_mfiles = $(call dts_makefile, $(kdts), Makefile)
|
|
|
|
ifneq ($(dts_mfiles),)
|
|
dts-include :=
|
|
include $(dts_mfiles)
|
|
dtb-y := $(addprefix $(tegra-rel-dtstree)/,$(dtb-y))
|
|
dtbo-y := $(addprefix $(tegra-rel-dtstree)/,$(dtbo-y))
|
|
ifneq ($(dts-include),)
|
|
DTC_INCLUDE += $(addprefix $(tegra-dtstree)/,$(dts-include))
|
|
endif
|
|
endif
|
|
|
|
DTB_LIST += $(dtb-y)
|
|
DTBO_LIST += $(dtbo-y)
|
|
DTB_NEW_RULE_LIST := $(dtb-y)
|
|
DTBO_NEW_RULE_LIST := $(dtbo-y)
|
|
|
|
# Now save DTB_LIST to dtb-y
|
|
dtb-y := $(DTB_LIST)
|
|
dtbo-y := $(DTBO_LIST)
|
|
|
|
# Add path of main Makefile to each dtb/dtbo list
|
|
DTB_OBJS := $(addprefix $(obj)/,$(DTB_LIST))
|
|
DTBO_OBJS := $(addprefix $(obj)/,$(DTBO_LIST))
|
|
|
|
###
|
|
# remove the ../
|
|
replace_ddot = $(subst ../,,$(1))
|
|
|
|
define _define_dtb_rule
|
|
$(obj)/$(call replace_ddot,$(1)): $(src)/$(patsubst %.dtb,%.dts,$(1)) FORCE
|
|
endef
|
|
|
|
$(foreach _dtb, $(DTB_NEW_RULE_LIST), $(eval $(call _define_dtb_rule,$(_dtb))))
|
|
|
|
DTB_OBJS := $(call replace_ddot,$(DTB_OBJS))
|
|
DTB_NEW_RULE_LIST := $(addprefix $(obj)/,$(DTB_NEW_RULE_LIST))
|
|
DTB_NEW_RULE_LIST := $(call replace_ddot,$(DTB_NEW_RULE_LIST))
|
|
|
|
$(DTB_NEW_RULE_LIST):
|
|
$(call if_changed_dep,dtc)
|
|
|
|
define _define_dtbo_rule
|
|
$(obj)/$(call replace_ddot,$(1)): $(src)/$(patsubst %.dtbo,%.dts,$(1)) FORCE
|
|
endef
|
|
|
|
$(foreach _dtbo, $(DTBO_NEW_RULE_LIST), $(eval $(call _define_dtbo_rule,$(_dtbo))))
|
|
|
|
DTBO_OBJS := $(call replace_ddot,$(DTBO_OBJS))
|
|
DTBO_NEW_RULE_LIST := $(addprefix $(obj)/,$(DTBO_NEW_RULE_LIST))
|
|
DTBO_NEW_RULE_LIST := $(call replace_ddot,$(DTBO_NEW_RULE_LIST))
|
|
|
|
$(DTBO_NEW_RULE_LIST):
|
|
$(call if_changed_dep,dtc)
|
|
|
|
DTBS_DTBOS := $(DTB_OBJS)$(DTBO_OBJS)
|
|
|
|
dtbs: $(DTB_OBJS) $(DTBO_OBJS) FORCE
|
|
if [ ! -d $(obj)/dtbs/ ] ; then \
|
|
mkdir -p $(obj)/dtbs/ ; \
|
|
fi
|
|
if [ ! -z "$(DTBS_DTBOS)" ] ; then \
|
|
cp -u $(DTB_OBJS) $(DTBO_OBJS) $(obj)/dtbs/ ; \
|
|
fi
|
|
if [ -d $(obj)/hardware/ ] ; then \
|
|
rm -rf $(obj)/hardware/ ; \
|
|
fi
|
|
|
|
clean-files := *.dtb *.dtbo *.tmp
|