I follow these instructions to build the kernel and dtb. I skip the patch part, since the imx477 is part of the distribution. I have adapter jetpack 4.6
The resulting Image and dtb file are copied to /boot and boot/dtb on target
Adapting the /boot/extlinux/extlinux.conf file to
TIMEOUT 30
DEFAULT primary
MENU TITLE L4T boot options
LABEL primary
MENU LABEL primary kernel
LINUX /boot/Image
INITRD /boot/initrd
FDT /boot/dtb/tegra194-p3668-all-p3509-0000.dtb
APPEND ${cbootargs} quiet root=PARTUUID=78592c69-7480-44eb-abf1-e5bd3cf1$
# When testing a custom kernel, it is recommended that you create a backup of
# the original kernel and add a new entry to this file so that the device can
# fallback to the original kernel. To do this:
#
# 1, Make a backup of the original kernel
# sudo cp /boot/Image /boot/Image.backup
#
# 2, Copy your custom kernel into /boot/Image
#
# 3, Uncomment below menu setting lines for the original kernel
#
# 4, Reboot
# LABEL backup
# MENU LABEL backup kernel
# LINUX /boot/Image.backup
# INITRD /boot/initrd
# APPEND ${cbootargs}
LABEL JetsonIO
MENU LABEL Custom Header Config: <CSI Camera IMX477 Dual>
LINUX /boot/Image
# FDT /boot/kernel_tegra194-p3668-all-p3509-0000-user-custom.dtb
INITRD /boot/initrd
APPEND ${cbootargs} quiet root=PARTUUID=78592c69-7480-44eb-abf1-e5bd3c$