Build dtbs
This commit is contained in:
1
dts/.gitignore
vendored
Normal file
1
dts/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*/*
|
||||
9
dts/BUILD.bazel
Normal file
9
dts/BUILD.bazel
Normal file
@@ -0,0 +1,9 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
load("//build/kernel/kleaf:kernel.bzl", "kernel_dtstree")
|
||||
|
||||
kernel_dtstree(
|
||||
name = "tegra_dts",
|
||||
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
119
dts/Makefile
Normal file
119
dts/Makefile
Normal file
@@ -0,0 +1,119 @@
|
||||
# SPDX-FileCopyrightText: Copyright (c) 2022-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
ifneq ($(TEGRA_TOP),)
|
||||
SOURCE_TOP := $(TEGRA_TOP)
|
||||
else ifneq ($(TOP),)
|
||||
SOURCE_TOP := $(TOP)
|
||||
else ifneq ($(ROOT_DIR),)
|
||||
SOURCE_TOP := $(ROOT_DIR)
|
||||
else
|
||||
$(error TEGRA_TOP or TOP is not defined)
|
||||
endif
|
||||
|
||||
tegra-dtstree := $(SOURCE_TOP)/vendor/nvidia/tegra/dts
|
||||
|
||||
null :=
|
||||
space :=$(null) $(null)
|
||||
|
||||
DTC_INCLUDE :=
|
||||
# SOC independent common include
|
||||
DTC_INCLUDE += $(tegra-dtstree)/tegra/nv-public
|
||||
|
||||
ifeq ($(SRCARCH),arm64)
|
||||
ifeq ($(CONFIG_ARCH_TEGRA_234_SOC),y)
|
||||
# SOC T23X specific common include
|
||||
DTC_INCLUDE += $(tegra-dtstree)/t23x/nv-public/include/kernel
|
||||
DTC_INCLUDE += $(tegra-dtstree)/t23x/nv-public/include/nvidia-oot
|
||||
DTC_INCLUDE += $(tegra-dtstree)/t23x/nv-public/include/platforms
|
||||
DTC_INCLUDE += $(tegra-dtstree)/t23x/nv-public
|
||||
endif
|
||||
DTC_INCLUDE += $(srctree)/arch/arm64/boot/dts/nvidia
|
||||
else ifeq ($(SRCARCH),arm)
|
||||
DTC_INCLUDE += $(srctree)/arch/arm/boot/dts/nvidia
|
||||
endif
|
||||
|
||||
dtb-y :=
|
||||
dtbo-y :=
|
||||
fdts :=
|
||||
ifeq ($(CONFIG_ARCH_TEGRA_114_SOC),y)
|
||||
fdts += $(tegra-dtstree)/t114
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_TEGRA_124_SOC),y)
|
||||
fdts += $(tegra-dtstree)/t124
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_TEGRA_210_SOC),y)
|
||||
fdts += $(tegra-dtstree)/t21x
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_TEGRA_186_SOC),y)
|
||||
fdts += $(tegra-dtstree)/t18x
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_TEGRA_194_SOC),y)
|
||||
fdts += $(tegra-dtstree)/t19x
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_TEGRA_234_SOC),y)
|
||||
fdts += $(tegra-dtstree)/t23x
|
||||
endif
|
||||
|
||||
# Add internal SOCs to scan the DT makefiles
|
||||
ifneq ($(internal_soc_list),)
|
||||
fdts += $(addprefix $(tegra-dtstree)/,$(internal_soc_list))
|
||||
endif
|
||||
|
||||
# Remove the DTs from protected soc list
|
||||
ifneq ($(protected_soc_list),)
|
||||
kdts := $(foreach dt_path, $(fdts), $(if $(filter $(protected_soc_list),$(patsubst -,$(space),$(subst /, $(space),$(dt_path)))),,$(dt_path)))
|
||||
kdts := $(filter-out $(space)$(space),$(kdts))
|
||||
else
|
||||
kdts := $(fdts)
|
||||
endif
|
||||
|
||||
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)
|
||||
ifneq ($(dts-include),)
|
||||
DTC_INCLUDE += $(addprefix $(tegra-dtstree)/,$(dts-include))
|
||||
endif
|
||||
endif
|
||||
|
||||
# Add path of main Makefile to each dtb/dtbo list
|
||||
DTB_OBJS := $(addprefix $(obj)/,$(dtb-y))
|
||||
DTBO_OBJS := $(addprefix $(obj)/,$(dtbo-y))
|
||||
|
||||
define _define_dtb_rule
|
||||
$(obj)/$(1): $(tegra-dtstree)/$(patsubst %.dtb,%.dts,$(1)) FORCE
|
||||
endef
|
||||
|
||||
$(foreach _dtb, $(dtb-y), $(eval $(call _define_dtb_rule,$(_dtb))))
|
||||
|
||||
$(DTB_OBJS):
|
||||
$(call if_changed_dep,dtc)
|
||||
|
||||
define _define_dtbo_rule
|
||||
$(obj)/$(1): $(tegra-dtstree)/$(patsubst %.dtbo,%.dts,$(1)) FORCE
|
||||
endef
|
||||
|
||||
$(foreach _dtbo, $(dtbo-y), $(eval $(call _define_dtbo_rule,$(_dtbo))))
|
||||
|
||||
$(DTBO_OBJS):
|
||||
$(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
|
||||
|
||||
dtb-y += $(dtbo-y)
|
||||
|
||||
clean-files := *.dtb *.dtbo *.tmp
|
||||
Reference in New Issue
Block a user