So I checked the /boot/extlinux/extlinux.conf file and it looks like below:
> TIMEOUT 30
> DEFAULT JetsonIO
>
> MENU TITLE L4T boot options
>
> LABEL primary
> MENU LABEL primary kernel
> LINUX /boot/Image
> INITRD /boot/initrd
> APPEND ${cbootargs} quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0
>
> # 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: <HDR40 User Custom [2023-04-12-102710]>
> LINUX /boot/Image
> FDT /boot/kernel_tegra210-p3448-0000-p3449-0000-b00-user-custom.dtb
> INITRD /boot/initrd
> APPEND ${cbootargs}
I even tried adding the FDT line to the primary Lablel too, but it made no difference. I then decompiled the .dtb file and saw that all the SPI pins seem to be correctly configured as seen below. For this particular test I only enabled SPI1 through jetson IO.
pinmux@700008d4 {
compatible = “nvidia,tegra210-pinmux”;
reg = <0x0 0x700008d4 0x0 0x2a5 0x0 0x70003000 0x0 0x294>;
#gpio-range-cells = <0x3>;
status = “okay”;
pinctrl-names = “default”;
pinctrl-0 = <0x131>;
pinctrl-1 = <0x3e>;
pinctrl-2 = <0x3f>;
linux,phandle = <0x40>;
phandle = <0x40>;
exp-header-pinmux {
phandle = <0x131>;
linux,phandle = <0x131>;
hdr40-pin37 {
nvidia,enable-input = <0x0>;
nvidia,tristate = <0x1>;
nvidia,pull = <0x1>;
nvidia,function = "rsvd3";
nvidia,pins = "spi2_mosi_pb4";
};
hdr40-pin26 {
nvidia,enable-input = <0x1>;
nvidia,tristate = <0x0>;
nvidia,pull = <0x2>;
nvidia,function = "spi1";
nvidia,pins = "spi1_cs1_pc4";
};
hdr40-pin24 {
nvidia,enable-input = <0x1>;
nvidia,tristate = <0x0>;
nvidia,pull = <0x2>;
nvidia,function = "spi1";
nvidia,pins = "spi1_cs0_pc3";
};
hdr40-pin23 {
nvidia,enable-input = <0x1>;
nvidia,tristate = <0x0>;
nvidia,pull = <0x1>;
nvidia,function = "spi1";
nvidia,pins = "spi1_sck_pc2";
};
hdr40-pin22 {
nvidia,enable-input = <0x0>;
nvidia,tristate = <0x1>;
nvidia,pull = <0x1>;
nvidia,function = "rsvd3";
nvidia,pins = "spi2_miso_pb5";
};
hdr40-pin21 {
nvidia,enable-input = <0x1>;
nvidia,tristate = <0x0>;
nvidia,pull = <0x1>;
nvidia,function = "spi1";
nvidia,pins = "spi1_miso_pc1";
};
hdr40-pin19 {
nvidia,enable-input = <0x1>;
nvidia,tristate = <0x0>;
nvidia,pull = <0x1>;
nvidia,function = "spi1";
nvidia,pins = "spi1_mosi_pc0";
};
hdr40-pin18 {
nvidia,enable-input = <0x0>;
nvidia,tristate = <0x1>;
nvidia,pull = <0x2>;
nvidia,function = "rsvd3";
nvidia,pins = "spi2_cs0_pb7";
};
hdr40-pin16 {
nvidia,enable-input = <0x0>;
nvidia,tristate = <0x1>;
nvidia,pull = <0x2>;
nvidia,function = "rsvd3";
nvidia,pins = "spi2_cs1_pdd0";
};
hdr40-pin13 {
nvidia,enable-input = <0x0>;
nvidia,tristate = <0x1>;
nvidia,pull = <0x1>;
nvidia,function = "rsvd3";
nvidia,pins = "spi2_sck_pb6";
};
From what I could tell from other sources this all seems correct, yet I still see no SPI output with any test I have done.