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