Problems in enabling SPI and disabling GPIOB

Dear moderaters:
I met such a problem when I enabling SPI.
I am using a jetson nano 4GB with jetpack 4.6.3.
And got a solution for jetson-io bug, and enabled the spi in th jetson-io table.
After doing that, the registers dump is like below by sudo cat /sys/kernel/debug/tegra_pinctrl_reg | grep -i spi:

Bank: 1 Reg: 0x70003050 Val: 0x0000e044 → spi1_mosi_pc0
Bank: 1 Reg: 0x70003054 Val: 0x0000e044 → spi1_miso_pc1
Bank: 1 Reg: 0x70003058 Val: 0x0000e044 → spi1_sck_pc2
Bank: 1 Reg: 0x7000305c Val: 0x0000e048 → spi1_cs0_pc3
Bank: 1 Reg: 0x70003060 Val: 0x0000e048 → spi1_cs1_pc4
Bank: 1 Reg: 0x70003064 Val: 0x00006046 → spi2_mosi_pb4
Bank: 1 Reg: 0x70003068 Val: 0x00006046 → spi2_miso_pb5
Bank: 1 Reg: 0x7000306c Val: 0x00006046 → spi2_sck_pb6
Bank: 1 Reg: 0x70003070 Val: 0x00006046 → spi2_cs0_pb7
Bank: 1 Reg: 0x70003074 Val: 0x00006045 → spi2_cs1_pdd0
Bank: 1 Reg: 0x70003078 Val: 0x0000e015 → spi4_mosi_pc7
Bank: 1 Reg: 0x7000307c Val: 0x0000e015 → spi4_miso_pd0
Bank: 1 Reg: 0x70003080 Val: 0x0000e015 → spi4_sck_pc5
Bank: 1 Reg: 0x70003084 Val: 0x0000e015 → spi4_cs0_pc6
Bank: 1 Reg: 0x70003088 Val: 0x00002040 → qspi_sck_pee0
Bank: 1 Reg: 0x7000308c Val: 0x00002000 → qspi_cs_n_pee1
Bank: 1 Reg: 0x70003090 Val: 0x00002040 → qspi_io0_pee2
Bank: 1 Reg: 0x70003094 Val: 0x00002040 → qspi_io1_pee3
Bank: 1 Reg: 0x70003098 Val: 0x00002040 → qspi_io2_pee4
Bank: 1 Reg: 0x7000309c Val: 0x00002040 → qspi_io3_pee5
Bank: 0 Reg: 0x70000b70 Val: 0x00000001 → drive_qspi_comp_control
Bank: 0 Reg: 0x70000b78 Val: 0x00000001 → drive_qspi_lpbk_control
Bank: 0 Reg: 0x70000a78 Val: 0x00808000 → drive_qspi_comp

But using spi_test, there are no any result.
And try to find the problems,
Found that the pin set by sudo cat /sys/kernel/debug/tegra_gpio and the result appeard below:

Name:Bank:Port CNF OE OUT IN INT_STA INT_ENB INT_LVL
A: 0:0 64 40 40 04 00 00 000000
B: 0:1 f0 00 00 00 00 00 000000
C: 0:2 1f 00 00 18 00 00 000000
D: 0:3 00 00 00 00 00 00 000000
E: 1:0 40 00 00 00 00 00 000000
F: 1:1 00 00 00 00 00 00 000000
G: 1:2 0c 00 00 00 00 00 000000
H: 1:3 fd 99 00 60 00 00 000000
I: 2:0 07 07 03 02 00 00 000000
J: 2:1 f0 00 00 00 00 00 000000
K: 2:2 00 00 00 00 00 00 000000
L: 2:3 00 00 00 00 00 00 000000
M: 3:0 00 00 00 00 00 00 000000
N: 3:1 00 00 00 00 00 00 000000
O: 3:2 00 00 00 00 00 00 000000
P: 3:3 00 00 00 00 00 00 000000
Q: 4:0 00 00 00 00 00 00 000000
R: 4:1 00 00 00 00 00 00 000000
S: 4:2 a0 80 00 00 00 00 000000
T: 4:3 01 01 00 00 00 00 000000
U: 5:0 00 00 00 00 00 00 000000
V: 5:1 01 00 00 00 00 00 000000
W: 5:2 00 00 00 00 00 00 000000
X: 5:3 78 08 08 70 00 60 606000
Y: 6:0 06 00 00 02 00 00 000000
Z: 6:1 0f 08 08 04 00 06 020600
AA: 6:2 00 00 00 00 00 00 000000
BB: 6:3 01 00 00 00 00 00 000000
CC: 7:0 92 80 80 10 00 12 121200
DD: 7:1 01 00 00 00 00 00 000000
EE: 7:2 00 00 00 00 00 00 000000
FF: 7:3 00 00 00 00 00 00 000000

It was told that the GPIOB is working and is recovering the SPI function.

try to solve the problem by modifying the device tree, But I didn’t know how to modify. Viewed by dmesg | grep -i kernel(the result is below), it seems the device is using tegra210-p3448-0000-p3449-0000-b00.dts.
[ 0.349695] alternatives: patching kernel code
[ 0.448752] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-p3448-0000-p3449-0000-b00.dts
[ 0.000000] Kernel command line: tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,4 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=0x1000@0xff780000 core_edp_mv=1125 core_edp_ma=4000 gpt tegra_fbmem=0x800000@0x92ca9000 is_hdmi_initialised=1 earlycon=uart8250,mmio32,0x70006000 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 nv-auto-config
[ 0.000000] Memory: 3562212K/4159488K available (15230K kernel code, 2926K rwdata, 6620K rodata, 8576K init, 609K bss, 122140K reserved, 475136K cma-reserved)
[ 0.000000] Virtual kernel memory layout:
[ 0.022518] kmemleak: Kernel memory leak detector disabled
[ 0.236623] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-p3448-0000-p3449-0000-b00.dts
[ 0.349695] alternatives: patching kernel code
[ 0.448752] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-p3448-0000-p3449-0000-b00.dts
[ 0.591556] eventlib_kernel: keventlib is initialized, test id: 0
[ 4.345874] KERNEL: PMC reset status reg: 0x0
[ 5.733868] Freeing unused kernel memory: 8576K

And the gpioB is like:
gpio@6000d000 {
compatible = “nvidia,tegra210-gpio”, “nvidia,tegra124-gpio”, “nvidia,tegra30-gpio”;
reg = <0x0 0x6000d000 0x0 0x1000>;
interrupts = <0x0 0x20 0x4 0x0 0x21 0x4 0x0 0x22 0x4 0x0 0x23 0x4 0x0 0x37 0x4 0x0 0x57 0x4 0x0 0x59 0x4 0x0 0x7d 0x4>;
#gpio-cells = <0x2>;
gpio-controller;
#interrupt-cells = <0x2>;
interrupt-controller;
gpio-ranges = <0x40 0x0 0x0 0xf6>;
status = “okay”;
gpio-init-names = “default”;
gpio-init-0 = <0x41>;
gpio-line-names = [00 00 00 00 00 00 00 00 00 00 00 00 53 50 49 31 5f 4d 4f 53 49 00 53 50 49 31 5f 4d 49 53 4f 00 53 50 49 31 5f 53 43 4b 00 53 50 49 31 5f 43 53 30 00 53 50 49 30 5f 4d 4f 53 49 00 53 50 49 30 5f 4d 49 53 4f 00 53 50 49 30 5f 53 43 4b 00 53 50 49 30 5f 43 53 30 00 53 50 49 30 5f 43 53 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 47 50 49 4f 31 33 00 00 00 00 00 00 00 00 00 00 00 00 55 41 52 54 31 5f 52 54 53 00 55 41 52 54 31 5f 43 54 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 49 32 53 30 5f 46 53 00 49 32 53 30 5f 44 49 4e 00 49 32 53 30 5f 44 4f 55 54 00 49 32 53 30 5f 53 43 4c 4b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 47 50 49 4f 30 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 47 50 49 4f 30 37 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 47 50 49 4f 31 32 00 00 00 00 00 00 47 50 49 4f 31 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 47 50 49 4f 30 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 50 49 31 5f 43 53 31 00 00 00 00 00 00 00 00];
linux,phandle = <0x5b>;
phandle = <0x5b>;

	e2614-rt5658-audio {
		gpio-hog;
		function;
		gpios = <0x4c 0x0 0x4d 0x0 0x4e 0x0 0x4f 0x0 0xd8 0x0 0x95 0x0>;
		label = "I2S4_LRCLK", "I2S4_SDIN", "I2S4_SDOUT", "I2S4_CLK", "AUDIO_MCLK", "AUD_RST";
		status = "disabled";
		linux,phandle = <0xc4>;
		phandle = <0xc4>;
	};

	system-suspend-gpio {
		status = "okay";
		gpio-hog;
		output-high;
		gpio-suspend;
		suspend-output-low;
		gpios = <0x6 0x0>;
		linux,phandle = <0xb4>;
		phandle = <0xb4>;
	};

	camera-control-output-low {
		gpio-hog;
		output-low;
		gpios = <0x97 0x0 0x98 0x0>;
		label = "cam1-pwdn", "cam2-pwdn";
	};

	default {
		gpio-input = <0x5 0xbc 0xbd 0xbe 0xc1 0xa9 0xca 0x3a 0x3d 0x3e 0x41 0xe4>;
		gpio-output-low = <0x97 0x98 0xcb 0x38 0x3b 0x3c 0x3f 0x40 0x42>;
		gpio-output-high = <0x6 0xbb 0xe7>;
		linux,phandle = <0x41>;
		phandle = <0x41>;
	};

};

I couldn’t find the same circumstance on all the Internet. Could any body solve this problem?
And by the way, I meet a problem when I flash the dtb by sudo ./flash.sh -k kernel-dtb jetson-nano-devkit mmcblk0p1.
The bug was look like:
[ 4.6025 ] Writing partition kernel-dtb with /home/xcf/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/signed/kernel_tegra210-p3448-0000-p3449-0000-b00.dtb.encrypt
[ 4.6035 ] 00000004: Partition not found
[ 4.6546 ]
Error: Return value 4
Command tegradevflash --write kernel-dtb /home/xcf/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/signed/kernel_tegra210-p3448-0000-p3449-0000-b00.dtb.encrypt
Failed to flash/read t210ref.

Please help me! Thank you so much!

Hi xcf1169119875,

Are you using the devkit or custom board for Jetson Nano?

Please refer to the following thread step-by-step to verify SPI with loopback test.
Jetson Nano SPI Bus Not Working - #10 by KevinFFF

I have seen this text before.
But I don’t know what the text below mean.
diff --git a/kernel-dts/porg-platforms/tegra210-porg-gpio-p3448-0000-b00.dtsi b/kernel-dts/porg-platforms/tegra210-porg-gpio-p3448-0000-b00.dtsi
index 1ea952f…49d4196 100644
— a/kernel-dts/porg-platforms/tegra210-porg-gpio-p3448-0000-b00.dtsi
+++ b/kernel-dts/porg-platforms/tegra210-porg-gpio-p3448-0000-b00.dtsi
@@ -27,11 +27,6 @@
gpio_default: default {
gpio-input = <
TEGRA_GPIO(BB, 0)

  •                           TEGRA_GPIO(B, 4)
    
  •                           TEGRA_GPIO(B, 5)
    
  •                           TEGRA_GPIO(B, 6)
    
  •                           TEGRA_GPIO(B, 7)
    
  •                           TEGRA_GPIO(DD, 0)
                              TEGRA_GPIO(E, 6)
                              TEGRA_GPIO(S, 5)
                              TEGRA_GPIO(A, 5)
    

@@ -49,11 +44,6 @@
TEGRA_GPIO(J, 7)
TEGRA_GPIO(G, 2)
TEGRA_GPIO(G, 3)

  •                           TEGRA_GPIO(C, 0)
    
  •                           TEGRA_GPIO(C, 1)
    
  •                           TEGRA_GPIO(C, 2)
    
  •                           TEGRA_GPIO(C, 3)
    
  •                           TEGRA_GPIO(C, 4)
                              TEGRA_GPIO(H, 2)
                              TEGRA_GPIO(H, 5)
                              TEGRA_GPIO(H, 6)
    

what’s the meaning of the ‘diff --git’? Is that a command?
And what’s the meaning of the ‘—, +++’?And are those commands too?
Could you please explain those for me? Thank you.
And should the step2 (modifying the device tree) be completed in upper computer or just recover the dtb file in jetson nano system?

This is the diff to let user know what should they modify for.
In here, you should modify tegra210-porg-gpio-p3448-0000-b00.dtsi, and the remove the GPIO usage for SPI. In that example, 5 pins are removed.

-                               TEGRA_GPIO(B, 4)
-                               TEGRA_GPIO(B, 5)
-                               TEGRA_GPIO(B, 6)
-                               TEGRA_GPIO(B, 7)
-                               TEGRA_GPIO(DD, 0)

For Step2, you should modify the .dtsi and re-compile for dtb. After you replace the dtb of BSP package on your host PC, you can re-flash the whole board to apply it.

Could you please tell the details about replacing the dtb of BSP package on the host PC, and re-flash the whole board to apply it?

And I used to download the L4T sources from the official and decompress the public_sources.tbz2 and kernel_src.tbz2. But there is no tegra210-p3448-0000-p3449-0000-b00.dtb or dts dtsi, and there is either no tegra210-0000-b00.dtsi or dtb. Where can I find them?

From your flash log, you could find which dtb is used to be flashed to your board.
Please replace that dtb in your BSP packages.

Could you help to share the result of the following command on your host PC?

$cd <Linux_for_Tegra>
$ls -l kernel/dtb/

There is no kernel/dtb/ file directory in <Linux_for_Tegra>, only one flolder in the directory named source. And I found the /kernel folder in /source, but no ./dtb folder. Is this because the version fault? I downloaded the L4T source from this website: Jetson Linux R32.7.1 Release Page | NVIDIA Developer

It seems you didn’t download BSP package correctly.

You could download BSP package in the R32.7.3 release page.

Please also refer to the following instruction set it up.
NVIDIA Jetson Linux Developer Guide : Quick Start | NVIDIA Docs

Hello, when I try to follow the commands to create the .config files, I meet this bug.
the commands:
$ cd <kernel_source>

$ mkdir -p $TEGRA_KERNEL_OUT

$ make ARCH=arm64 O=$TEGRA_KERNEL_OUT tegra_defconfig

and the error is :
mkdir -p $TEGRA_KERNEL_OUT
mkdir: missing operand
Try ‘mkdir --help’ for more information.

Do you export the local environment for TEGRA_KERNEL_OUT before running this command?

When I execute the commands to make the config files, there are the errors:
root@ubuntu:/home/xcf/Documents/Linux_for_Tegra/kernel/linux-headers-4.9.299-tegra-linux_x86_64/kernel-4.9# sudo make ARCH=arm64 O=$TEGRA_KERNEL_OUT tegra_defconfig
drivers/net/ethernet/nvidia/Kconfig:30: can’t open file “drivers/net/ethernet/nvidia/eqos/Kconfig”
scripts/kconfig/Makefile:113: recipe for target ‘tegra_defconfig’ failed
make[1]: *** [tegra_defconfig] Error 1
Makefile:575: recipe for target ‘tegra_defconfig’ failed
make: *** [tegra_defconfig] Error 2

what’s wrong with it?

Please check if drivers/net/ethernet/nvidia/eqos/Kconfig exists.

For step2, you could also dissemble the dtb under Linux_for_Tegra/kernel/dtb/ to dts and assemble it back to dtb after you modify it.

drivers/net/ethernet/nvidia/eqos/Kconfig doesn’t exist. how to solve it?

How did you sync the kernel source?

I sync the kernel source by the follow commands:
$ sudo apt install git-core
$ ./source_sync.sh
and the tag name is tegra-l4t-32.7.3

And I have tried again by manually downloaded the kernel sources.
I download the BSP driver and BSP driver soursces. Compressed them.
And compressed the GCC files.
And set the environment variables:
$ TEGRA_KERNEL_OUT=
$ export CROSS_COMPILE=<cross_prefix>
$ export LOCALVERSION=-tegra
and when I execute the follow command in the file: kernel-4.9
$ make ARCH=arm64 O=$TEGRA_KERNEL_OUT tegra_defconfig
It appeared the errors:
@ubuntu:~/nanoSource/Linux_for_Tegra/kernel/kernel-4.9$ make ARCH=arm64 O=$TEGRA_KERNEL_OUT tegra_defconfig
make[1]: Entering directory ‘/home/xcf/nanoSource/Linux_for_Tegra/kernel/kernel-4.9’
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
init/Kconfig:2055: symbol ‘MODULES’ redefines option ‘modules’ already defined by symbol ‘MODULES’
init/Kconfig:2055: symbol ‘MODULES’ redefines option ‘modules’ already defined by symbol ‘MODULES’
init/Kconfig:2055: symbol ‘MODULES’ redefines option ‘modules’ already defined by symbol ‘MODULES’
Kconfig:6: syntax error
Kconfig:5: invalid statement
init/Kconfig:2055: symbol ‘MODULES’ redefines option ‘modules’ already defined by symbol ‘MODULES’
init/Kconfig:2055: symbol ‘MODULES’ redefines option ‘modules’ already defined by symbol ‘MODULES’
init/Kconfig:2055: symbol ‘MODULES’ redefines option ‘modules’ already defined by symbol ‘MODULES’
init/Kconfig:2055: symbol ‘MODULES’ redefines option ‘modules’ already defined by symbol ‘MODULES’
/home/xcf/nanoSource/Linux_for_Tegra/kernel/kernel-4.9/scripts/kconfig/Makefile:113: recipe for target ‘tegra_defconfig’ failed
make[2]: *** [tegra_defconfig] Error 1
/home/xcf/nanoSource/Linux_for_Tegra/kernel/kernel-4.9/Makefile:575: recipe for target ‘tegra_defconfig’ failed
make[1]: *** [tegra_defconfig] Error 2
make[1]: Leaving directory ‘/home/xcf/nanoSource/Linux_for_Tegra/kernel/kernel-4.9’
Makefile:171: recipe for target ‘sub-make’ failed
make: *** [sub-make] Error 2
Could you please help me to solve this problem?
Really thank you

Hi, Kevin, I’m sorry that I am new in Jetson and asked some low question, for give me and give me a reply please?
And the achivement now is:
I have built the kernel successfully, But when I flash the board and it stayed at this stage:
@ubuntu:~/nanoSource/Linux_for_Tegra$ sudo ./flash.sh jetson-nano-emmc mmcblk0p1
[sudo] password for xcf:
###############################################################################

L4T BSP Information:

R32 , REVISION: 7.3

###############################################################################

Target Board Information:

Name: jetson-nano-emmc, Board Family: t210ref, SoC: Tegra 210,

OpMode: production, Boot Authentication: ,

Disk encryption: disabled ,

###############################################################################
./tegraflash.py --chip 0x21 --applet “/home/xcf/nanoSource/Linux_for_Tegra/bootloader/nvtboot_recovery.bin” --skipuid --cmd “dump eeprom boardinfo cvm.bin”
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands

[ 0.0009 ] Generating RCM messages
[ 0.0030 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm /home/xcf/nanoSource/Linux_for_Tegra/bootloader/nvtboot_recovery.bin 0 0
[ 0.0034 ] RCM 0 is saved as rcm_0.rcm
[ 0.0043 ] RCM 1 is saved as rcm_1.rcm
[ 0.0043 ] List of rcm files are saved in rcm_list.xml
[ 0.0044 ]
[ 0.0044 ] Signing RCM messages
[ 0.0070 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0074 ] Assuming zero filled SBK key
[ 0.0119 ]
[ 0.0119 ] Copying signature to RCM mesages
[ 0.0136 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[ 0.0144 ]
[ 0.0144 ] Boot Rom communication
[ 0.0161 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml --skipuid
[ 0.0166 ] RCM version 0X210001
[ 0.0637 ] Boot Rom communication completed
[ 1.0825 ]
[ 1.0826 ] dump EEPROM info
[ 1.0849 ] tegrarcm --oem platformdetails eeprom /home/xcf/nanoSource/Linux_for_Tegra/bootloader/cvm.bin
[ 1.0856 ] Applet version 00.01.0000
[ 1.1271 ] Saved platform info in /home/xcf/nanoSource/Linux_for_Tegra/bootloader/cvm.bin
[ 1.2403 ]
[ 1.2426 ] tegrarcm --reboot recovery
[ 1.2432 ] Applet version 00.01.0000
[ 1.3027 ]
Board ID(3448) version(402)
copying bctfile(/home/xcf/nanoSource/Linux_for_Tegra/bootloader/t210ref/BCT/P3448_A00_lpddr4_204Mhz_P987.cfg)… done.
copying bootloader(/home/xcf/nanoSource/Linux_for_Tegra/bootloader/t210ref/cboot.bin)… done.
copying initrd(/home/xcf/nanoSource/Linux_for_Tegra/bootloader/l4t_initrd.img)… done.
Making Boot image… done.
Existing sosfile(/home/xcf/nanoSource/Linux_for_Tegra/bootloader/nvtboot_recovery.bin) reused.
copying tegraboot(/home/xcf/nanoSource/Linux_for_Tegra/bootloader/t210ref/nvtboot.bin)… done.
copying cpu_bootloader(/home/xcf/nanoSource/Linux_for_Tegra/bootloader/t210ref/cboot.bin)… done.
copying bpffile(/home/xcf/nanoSource/Linux_for_Tegra/bootloader/t210ref/sc7entry-firmware.bin)… done.
copying wb0boot(/home/xcf/nanoSource/Linux_for_Tegra/bootloader/t210ref/warmboot.bin)… done.
Existing tosfile(/home/xcf/nanoSource/Linux_for_Tegra/bootloader/tos-mon-only.img) reused.
Existing eksfile(/home/xcf/nanoSource/Linux_for_Tegra/bootloader/eks.img) reused.
copying dtbfile(/home/xcf/nanoSource/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-b00.dtb)… done.
Copying nv_boot_control.conf to rootfs
populating kernel to rootfs… done.
populating initrd to rootfs… done.
populating kernel_tegra210-p3448-0000-p3449-0000-b00.dtb to rootfs… done.
Making system.img…
populating rootfs from /home/xcf/nanoSource/Linux_for_Tegra/rootfs … populating /boot/extlinux/extlinux.conf … done.
Sync’ing system.img … done.
Converting RAW image to Sparse image… done.
system.img built successfully.
Existing tbcfile(/home/xcf/nanoSource/Linux_for_Tegra/bootloader/nvtboot_cpu.bin) reused.
copying tbcdtbfile(/home/xcf/nanoSource/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-b00.dtb)… done.
copying cfgfile(/home/xcf/nanoSource/Linux_for_Tegra/bootloader/t210ref/cfg/flash_l4t_t210_emmc_p3448.xml) to flash.xml… done.
copying flasher(/home/xcf/nanoSource/Linux_for_Tegra/bootloader/t210ref/cboot.bin)… done.
Existing flashapp(/home/xcf/nanoSource/Linux_for_Tegra/bootloader/tegraflash.py) reused.
./tegraflash.py --bl cboot.bin --bct P3448_A00_lpddr4_204Mhz_P987.cfg --odmdata 0xa4000 --bldtb kernel_tegra210-p3448-0000-p3449-0000-b00.dtb --applet nvtboot_recovery.bin --cmd “flash; reboot” --cfg flash.xml --chip 0x21 --bins “EBT cboot.bin; DTB tegra210-p3448-0000-p3449-0000-b00.dtb”
saving flash command in /home/xcf/nanoSource/Linux_for_Tegra/bootloader/flashcmd.txt
saving Windows flash command to /home/xcf/nanoSource/Linux_for_Tegra/bootloader/flash_win.bat
assign_value: crc-flash.xml.bin 1 131056 1
printf ‘\x1’ | dd of=crc-flash.xml.bin bs=1 seek=131056 count=1 conv=notrunc
1+0 records in
1+0 records out
1 byte copied, 1.7333e-05 s, 57.7 kB/s
assign_value: crc-flash.xml.bin 0 131057 1
printf ‘\x0’ | dd of=crc-flash.xml.bin bs=1 seek=131057 count=1 conv=notrunc
1+0 records in
1+0 records out
1 byte copied, 2.1684e-05 s, 46.1 kB/s
assign_string: crc-flash.xml.bin PTHD 131064 4
echo PTHD | dd of=crc-flash.xml.bin bs=1 seek=131064 count=4 conv=notrunc
4+0 records in
4+0 records out
4 bytes copied, 1.9037e-05 s, 210 kB/s
*** Flashing target device started. ***
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands

[ 0.0030 ] tegrasign --getmode mode.txt --key None
[ 0.0034 ] Assuming zero filled SBK key
[ 0.0057 ]
[ 0.0057 ] Generating RCM messages
[ 0.0089 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm nvtboot_recovery.bin 0 0
[ 0.0094 ] RCM 0 is saved as rcm_0.rcm
[ 0.0114 ] RCM 1 is saved as rcm_1.rcm
[ 0.0114 ] List of rcm files are saved in rcm_list.xml
[ 0.0121 ]
[ 0.0121 ] Signing RCM messages
[ 0.0129 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0133 ] Assuming zero filled SBK key
[ 0.0158 ]
[ 0.0158 ] Copying signature to RCM mesages
[ 0.0179 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[ 0.0188 ]
[ 0.0188 ] Parsing partition layout
[ 0.0204 ] tegraparser --pt flash.xml.tmp
[ 0.0210 ]
[ 0.0211 ] Using default ramcode: 0
[ 0.0211 ] Disable BPMP dtb trim, using default dtb
[ 0.0211 ]
[ 0.0211 ] Creating list of images to be signed
[ 0.0228 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --list images_list.xml
[ 0.0301 ]
[ 0.0301 ] Generating signatures
[ 0.0321 ] tegrasign --key None --list images_list.xml --pubkeyhash pub_key.key
[ 0.0326 ] Assuming zero filled SBK key
[ 0.0824 ]
[ 0.0825 ] Generating br-bct
[ 0.0852 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.cfg --chip 0x21 0
[ 0.0891 ]
[ 0.0891 ] Updating boot device parameters
[ 0.0911 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatedevparam flash.xml.bin
[ 0.0916 ] Warning: No sdram params
[ 0.0917 ]
[ 0.0917 ] Updating bl info
[ 0.0937 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updateblinfo flash.xml.bin --updatesig images_list_signed.xml
[ 0.0945 ]
[ 0.0945 ] Updating secondary storage information into bct
[ 0.0962 ] tegraparser --pt flash.xml.bin --chip 0x21 0 --updatecustinfo P3448_A00_lpddr4_204Mhz_P987.bct
[ 0.0967 ]
[ 0.0968 ] Updating Odmdata
[ 0.0982 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatefields Odmdata =0xa4000
[ 0.0986 ] Warning: No sdram params
[ 0.0987 ]
[ 0.0988 ] Get Signed section of bct
[ 0.1002 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --listbct bct_list.xml
[ 0.1006 ]
[ 0.1006 ] Signing BCT
[ 0.1038 ] tegrasign --key None --list bct_list.xml --pubkeyhash pub_key.key
[ 0.1042 ] Assuming zero filled SBK key
[ 0.1044 ]
[ 0.1044 ] Updating BCT with signature
[ 0.1063 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatesig bct_list_signed.xml
[ 0.1068 ]
[ 0.1069 ] Copying signatures
[ 0.1084 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --updatesig images_list_signed.xml
[ 0.1133 ]
[ 0.1134 ] Updating BFS information on BCT
[ 0.1155 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatebfsinfo flash.xml.bin
[ 0.1159 ] BFS:
[ 0.1166 ] 0: [PT ] crc-flash.xml.bin (size=131072/131072)
[ 0.1168 ] 1: [TBC] nvtboot_cpu.bin.encrypt (size=65760/196608)
[ 0.1170 ] 2: [RP1] kernel_tegra210-p3448-0000-p3449-0000-b00.dtb.encrypt (size=238384/1048576)
[ 0.1173 ] 3: [EBT] cboot.bin.encrypt (size=484464/655360)
[ 0.1175 ] 4: [WB0] warmboot.bin.encrypt (size=3952/131072)
[ 0.1176 ] 5: [BPF] sc7entry-firmware.bin.encrypt (size=3376/262144)
[ 0.1179 ] BFS0: 131072 @ 2560 SUM d327dd0d over 2883584 bytes
[ 0.1180 ] BFS:
[ 0.1181 ] 0: [PT-1] crc-flash.xml.bin (size=131072/131072)
[ 0.1182 ] 1: [TBC-1] nvtboot_cpu.bin.encrypt (size=65760/196608)
[ 0.1185 ] 2: [RP1-1] kernel_tegra210-p3448-0000-p3449-0000-b00.dtb.encrypt (size=238384/1048576)
[ 0.1187 ] 3: [EBT-1] cboot.bin.encrypt (size=484464/655360)
[ 0.1189 ] 4: [WB0-1] warmboot.bin.encrypt (size=3952/131072)
[ 0.1190 ] 5: [BPF-1] sc7entry-firmware.bin.encrypt (size=3376/262144)
[ 0.1191 ] 8: [VER_b] emmc_bootblob_ver.txt (size=102/32768)
[ 0.1193 ] 9: [VER] emmc_bootblob_ver.txt (size=102/32768)
[ 0.1194 ] BFS1: 131072 @ 8704 SUM d327dd0d over 2981888 bytes
[ 0.1195 ] KFS:
[ 0.1411 ] 0: [DTB] kernel_tegra210-p3448-0000-p3449-0000-b00.dtb.encrypt (size=238384/1048576)
[ 0.1414 ] 1: [TOS] tos-mon-only.img.encrypt (size=54208/6291456)
[ 0.1419 ] 2: [EKS] eks.img (size=1028/81920)
[ 0.1423 ] 3: [LNX] boot.img.encrypt (size=667648/67092480)
[ 0.1428 ] KFS0: 1048576 @ 29376546 SUM ead2a770 over 8089600 bytes
[ 0.1437 ] KFS:
[ 0.1633 ] 0: [DTB-1] kernel_tegra210-p3448-0000-p3449-0000-b00.dtb.encrypt (size=238384/1048576)
[ 0.1638 ] 1: [TOS-1] tos-mon-only.img.encrypt (size=54208/6291456)
[ 0.1643 ] 2: [EKS-1] eks.img (size=1028/81920)
[ 0.1647 ] 3: [LNX-1] boot.img.encrypt (size=667648/67092480)
[ 0.1651 ] KFS1: 1048576 @ 29522082 SUM ead2a770 over 8089600 bytes
[ 0.1655 ]
[ 0.1655 ] Boot Rom communication
[ 0.1676 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml
[ 0.1681 ] BR_CID: 0x32101001642c53051c00000012fd0540
[ 0.1690 ] RCM version 0X210001
[ 0.1713 ] Boot Rom communication completed
[ 1.1918 ]
[ 1.1919 ] Sending BCTs
[ 1.1940 ] tegrarcm --download bct P3448_A00_lpddr4_204Mhz_P987.bct
[ 1.1947 ] Applet version 00.01.0000
[ 1.2339 ] Sending bct
[ 1.2341 ] […] 100%
[ 1.4932 ]
[ 1.4955 ] tegrahost --chip 0x21 --align cboot.bin
[ 1.4962 ]
[ 1.4984 ] tegrahost --magicid EBT --appendsigheader cboot.bin cboot.bin_blheader
[ 1.5006 ]
[ 1.5029 ] tegrasign --key None --list cboot.bin_list.xml
[ 1.5036 ] Assuming zero filled SBK key
[ 1.5119 ]
[ 1.5143 ] tegrahost --updatesigheader cboot.bin_blheader.encrypt cboot.bin_blheader.hash zerosbk
[ 1.5160 ]
[ 1.5196 ] tegrahost --chip 0x21 --align tegra210-p3448-0000-p3449-0000-b00.dtb
[ 1.5205 ]
[ 1.5227 ] tegrahost --magicid DTB --appendsigheader tegra210-p3448-0000-p3449-0000-b00.dtb tegra210-p3448-0000-p3449-0000-b00.dtb_blheader
[ 1.5244 ]
[ 1.5267 ] tegrasign --key None --list tegra210-p3448-0000-p3449-0000-b00.dtb_list.xml
[ 1.5274 ] Assuming zero filled SBK key
[ 1.5315 ]
[ 1.5340 ] tegrahost --updatesigheader tegra210-p3448-0000-p3449-0000-b00.dtb_blheader.encrypt tegra210-p3448-0000-p3449-0000-b00.dtb_blheader.hash zerosbk
[ 1.5354 ]
[ 1.5357 ] Sending bootloader and pre-requisite binaries
[ 1.5380 ] tegrarcm --download ebt cboot.bin.encrypt 0 0 --download rp1 tegra210-p3448-0000-p3449-0000-b00.dtb.encrypt 0
[ 1.5387 ] Applet version 00.01.0000
[ 1.5813 ] Sending ebt
[ 1.5815 ] […] 100%
[ 1.7317 ] Sending rp1
[ 1.7506 ] […] 100%
[ 1.8533 ]
[ 1.8555 ] tegrarcm --boot recovery
[ 1.8562 ] Applet version 00.01.0000
[ 1.9312 ]
[ 1.9313 ] Retrieving storage infomation
[ 1.9335 ] tegrarcm --oem platformdetails storage storage_info.bin
[ 1.9342 ] Applet is not running on device. Continue with Bootloader
[ 2.5264 ]
[ 2.5313 ] tegradevflash --oem platformdetails storage storage_info.bin
[ 2.5320 ] Cboot version 00.01.0000
[ 2.5754 ] Saved platform info in storage_info.bin

no continuing any more, could you please tell me why…

One more question, which file should I recover by the file that I re-compile by the tegra210-porg-gpio-p3448-0000-b00.dtsi?

Could you flash the board before you build the new kernel image? (i.e. could you flash the board with default BSP package?)

Yes, you should modify this file to disable GPIO usage for SPI pins.