Page:
Development
15
Development
dchvs edited this page 2021-03-20 01:28:35 +00:00
Adding a submodule
Add submodule
# Make the submodule sync to a branch
git submodule add -b <branch name> <repository link>
# Update submodules branches after they got updated
git submodule update --remote
# Fetch and pull from submodules repositories
git submodule update --init --recursive --remote
Update submodule (when new tag's commit at the submodule master)
# Pull the submodule new commits at the correspondant submodule path, and at this repository top level will have:
git diff
modified: source/drivers/li-mt9m021 (new commits)
git add source/drivers/li-mt9m021
git commit -m "Update MT9M021 submodule to v0.n.0"
git push
Adding a Driver
Add Driver
In order to add a Driver you would follow this procedure, where you add the the dtbs Makefiles to the DTB_LIST and the Driver Makefile to the KERNEL_OVERLAY variable. Refer to the following example:
> vi kernel/kernel-4.9/arch/arm64/boot/dts/Makefile
[Add the following content before `DTB_LIST += $(dtb-y)`:]
######### Include RidgeRun #########
LI_MT9M021_PATH=$(tegra-rel-dtstree)/../../source/drivers/li-mt9m021/hardware/nvidia-spiri
LI_MT9M021_MAKEFILE_PATH=$(tegra-dtstree)/../../../drivers/li-mt9m021/hardware/nvidia-spiri/platform/
dtb-y :=
dts_makefile=$(foreach d,$(wildcard $1*), $(call dts_makefile,$(d)/,$(2)) $(if $(findstring Makefile,$(d)),$(d)))
dts_mfiles_d = $(call dts_makefile, $(LI_MT9M021_MAKEFILE_PATH), Makefile)
ifneq ($(dts_mfiles_d),)
dts-include :=
include $(dts_mfiles_d)
dtb-y := $(addprefix $(LI_MT9M021_PATH)/,$(dtb-y))
dtbo-y := $(addprefix $(LI_MT9M021_PATH)/,$(dtbo-y))
ifneq ($(dts-include),)
DTC_FLAGS += $(addprefix -i $(LI_MT9M021_PATH)/,$(dts-include))
DTCCPP_FLAGS += $(addprefix -I$(LI_MT9M021_PATH)/,$(dts-include))
DTC_FLAGS += -i $(LI_MT9M021_MAKEFILE_PATH)/../soc/t18x/kernel-include
DTC_FLAGS += -i $(LI_MT9M021_MAKEFILE_PATH)/../soc/t18x/kernel-dts
DTC_FLAGS += -i $(LI_MT9M021_MAKEFILE_PATH)/t18x/common/kernel-dts
DTC_FLAGS += -i $(LI_MT9M021_MAKEFILE_PATH)/t18x/quill/kernel-dts
DTCCPP_FLAGS += -I$(LI_MT9M021_MAKEFILE_PATH)/../soc/t18x/kernel-include
DTCCPP_FLAGS += -I$(LI_MT9M021_MAKEFILE_PATH)/../soc/t18x/kernel-dts
DTCCPP_FLAGS += -I$(LI_MT9M021_MAKEFILE_PATH)/t18x/common/kernel-dts
DTCCPP_FLAGS += -I$(LI_MT9M021_MAKEFILE_PATH)/t18x/quill/kernel-dts
endif
endif
DTB_LIST += $(dtb-y)
DTB_NEW_RULE_LIST += $(dtb-y)
DTBO_LIST += $(dtbo-y)
DTBO_NEW_RULE_LIST += $(dtbo-y)
> vi kernel/kernel-4.9/Makefile
[At the top of the Makefile append this content to the Kernel Overlays]
LI_MT9M021_KERNEL_PATH=./li-mt9m021/kernel/nvidia-spiri
KERNEL_OVERLAYS += $(CURDIR)/../../../drivers/$(LI_MT9M021_KERNEL_PATH)
LI_EG25G_KERNEL_PATH=./eg25-g/kernel/kernel-4.9-spiri
KERNEL_OVERLAYS += $(CURDIR)/../../../drivers/$(LI_EG25G_KERNEL_PATH)
> vi kernel/kernel-4.9/arch/arm64/configs/tegra_defconfig
CONFIG_VIDEO_I2C_SPIRI_CAM=y