Jetson Nano doesn't boot from QSPI

Hello,

Got a Jetson Nano (699-13448-0003-400 D.0).

After some i2cdetect runs device was left idling, then, after power cycle it doesn’t boot anymore at all.

EEPROM CRC is incorrect, but bigger problem is that board doesn’t see QSPI chip anymore.

Powering board up in a normal mode gives no output on UART at all
Powering up in recovery and running(added BCFFILE,BOARD,FAB,SKU to a conf file)
sudo ./flash.sh -r jetson-nano-devkit mmcblk0p1

gives

[0006.067] Welcome to L4T Cboot
[0006.070] 
[0006.071] Cboot Version: 00.00.2018.01-t210-c952b4e6
[0006.076] calling constructors
[0006.079] initializing heap
[0006.081] initializing threads
[0006.084] initializing timers
[0006.087] creating bootstrap completion thread
[0006.092] top of bootstrap2()
[0006.095] CPU: ARM Cortex A57
[0006.097] CPU: MIDR: 0x411FD071, MPIDR: 0x80000000
[0006.102] initializing platform
**[0006.110] Manufacturer: MF = 0x0, ID MSB = 0x0**
**[0006.114] ID LSB = 0x0, ID-CFI len = 0 bytes**
**[0006.118] Spansion QSPI chip present**
[0006.122] SPI device register
[0006.125] init boot device
[0006.127] allocating memory for boot device(SPI)
[0006.132] registering boot device
**[0011.164] spi_write_enable: spiflash write is *NOT* enabled**
[0011.169] 
[0011.172] sdmmc node status = okay
[0011.175] sdcard instance = 0
[0011.178] sdmmc cd-inverted
[0011.180] sdcard gpio handle 0x5a
[0011.184] sdcard gpio pin 0xc9
[0011.187] sdcard gpio flags 0x0

In other words - it doesn’t detect QSPI chip.

So kinda desparate situation, i can’t fix eeprom checksum, cause i need to boot somehow, and cant boot, cause qspi is absent.

I’ve desoldered qspi chip and checked it on a programmer - detects and reads properly, contents seems to be ok.

Can you suggest anything on this matter? Maybe i should pick some other board/sku/fab, rather than the actual? I’ve tried some combinations, but no luck

HI,

Are you able to share the full log and what you’ve done in all those conf files?

jetson-nano-devkit.conf:

BOARDID="3448"; 
FAB="400"; 
BOARDSKU="0003" ;

p3448-0000.conf.common:
BCFFILE="bootloader/${target_board}/cfg/board_config_p3448.xml";

Did the above,because otherwise I’m getting EEPROM CRC error.

[0015.500] 
[0015.501] Debug Init done
[0015.505] Marked DTB cacheable
[0015.508] Bootloader DTB loaded at 0x83000400
[0015.512] DeviceTree Init done
[0015.525] Pinmux applied successfully
[0015.529] gicd_base: 0x50041000
[0015.533] gicc_base: 0x50042000
[0015.536] Interrupts Init done
[0015.540] Using base:0x60005090 & irq:208 for tick-timer
[0015.545] Using base:0x60005098 for delay-timer
[0015.549] platform_init_timer: DONE
[0015.553] Timer(tick) Init done
[0015.557] osc freq = 38400 khz
[0015.560] 
[0015.562] Welcome to L4T Cboot
[0015.565] 
[0015.566] Cboot Version: 00.00.2018.01-t210-c952b4e6
[0015.571] calling constructors
[0015.574] initializing heap
[0015.576] initializing threads
[0015.579] initializing timers
[0015.582] creating bootstrap completion thread
[0015.586] top of bootstrap2()
[0015.589] CPU: ARM Cortex A57
[0015.592] CPU: MIDR: 0x411FD071, MPIDR: 0x80000000
[0015.597] initializing platform
[0015.604] Manufacturer: MF = 0x0, ID MSB = 0x0
[0015.609] ID LSB = 0x0, ID-CFI len = 0 bytes
[0015.613] Spansion QSPI chip present
[0015.616] SPI device register
[0015.619] init boot device
[0015.622] allocating memory for boot device(SPI)
[0015.627] registering boot device
[0020.659] spi_write_enable: spiflash write is *NOT* enabled
[0020.664] 
[0020.666] sdmmc node status = okay
[0020.670] sdcard instance = 0
[0020.672] sdmmc cd-inverted
[0020.675] sdcard gpio handle 0x5a
[0020.678] sdcard gpio pin 0xc9
[0020.681] sdcard gpio flags 0x0
[0020.684] vmmc-supply 0x9a
[0020.687] Instance: 0
[0020.689] Allocating memory for context
[0020.693] enabling clock
[0020.695] sd card init
[0020.698] Check card present and stable
[0020.701] Send command 0
[0020.750] Send command 3
[0020.754] Set RCA for the card
[0020.757] Query card specific data by command 9
[0020.764] Parse CSD data
[0020.766] Send command 7
[0020.776] Calling sd device register
[0020.780] Init sdcard
[0020.782] Allocating memory for boot device
[0020.786] Registering user device
[0020.799] of_register: registering tegra_udc to of_hal
[0020.804] of_register: registering inv20628-driver to of_hal
[0020.810] of_register: registering ads1015-driver to of_hal
[0020.816] of_register: registering lp8557-bl-driver to of_hal
[0020.821] of_register: registering bq2419x_charger to of_hal
[0020.827] of_register: registering bq27441_fuel_gauge to of_hal
[0020.838] gpio framework initialized
[0020.842] of_register: registering tca9539_gpio to of_hal
[0020.847] of_register: registering tca9539_gpio to of_hal
[0020.853] of_register: registering i2c_bus_driver to of_hal
[0020.858] of_register: registering i2c_bus_driver to of_hal
[0020.864] of_register: registering i2c_bus_driver to of_hal
[0020.869] pmic framework initialized
[0020.873] of_register: registering max77620_pmic to of_hal
[0020.878] regulator framework initialized
[0020.882] of_register: registering tps65132_bl_driver to of_hal
[0020.888] initializing target
[0020.894] gpio_driver_register: register 'tegra_gpio_driver' driver
[0020.902] board ID = D78, board SKU = 0
[0020.906] Skipping Z3!
[0020.911] fixed regulator driver initialized
[0020.929] initializing OF layer
[0020.933] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0020.949] I2C Bus Init done
[0020.952] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0020.962] I2C Bus Init done
[0020.965] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0020.975] I2C Bus Init done
[0020.978] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0020.988] I2C Bus Init done
[0020.991] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0021.001] I2C Bus Init done
[0021.004] of_children_init: Ops found for compatible string maxim,max77620
[0021.014] max77620_init using irq 118
[0021.019] register 'maxim,max77620' pmic
[0021.023] gpio_driver_register: register 'max77620-gpio' driver
[0021.030] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0021.040] I2C Bus Init done
[0021.044] Applying platform configs
[0021.050] platform-init is not present. Skipping
[0021.055] calling apps_init()
[0021.083] Found 1 GPT partitions in "sd0"
[0021.086] Proceeding to flashing Server
[0021.090] usbdcd_reinit Initialize driver to use already enumerated device
[0021.097] nv3p_priv_usbf_open USB configuration success
[0021.564] Writing GPT partition
[0021.571] Erasing Boot device
[0021.574] device_write_gpt: Erasing boot device spiflash0
[0026.608] spi_write_enable: spiflash write is *NOT* enabled
[0026.613] 
[0026.615] Erasing Storage Device
[0026.618] Writing protective mbr
[0026.629] Writing primary GPT
[0026.649] Writing secondary GPT
[0026.685] Found 1 GPT partitions in "sd0"
[0026.691] Writing PT partition
[0031.727] spi_write_enable: spiflash write is *NOT* enabled
[0031.733] 
[0036.763] spi_write_enable: spiflash write is *NOT* enabled
[0036.769] 
[0041.799] spi_write_enable: spiflash write is *NOT* enabled
[0041.804] 
[0046.835] spi_write_enable: spiflash write is *NOT* enabled
[0046.840] 
[0051.870] spi_write_enable: spiflash write is *NOT* enabled
[0051.876] 
[0056.906] spi_write_enable: spiflash write is *NOT* enabled
[0056.912] 
[0061.942] spi_write_enable: spiflash write is *NOT* enabled
[0061.947] 
[0066.978] spi_write_enable: spiflash write is *NOT* enabled
[0066.983] 
[0072.013] spi_write_enable: spiflash write is *NOT* enabled
[0072.019] 
[0077.049] spi_write_enable: spiflash write is *NOT* enabled
[0077.054] 
[0082.085] spi_write_enable: spiflash write is *NOT* enabled
[0082.090] 
[0086.742] partition PT write successful.
[0087.124] spi_write_enable: spiflash write is *NOT* enabled
[0087.129] 
[0087.642] Writing NVC partition
[0087.648] failed query for tboot size
[0088.345] failed query for tboot size
[0095.938] spi_write_enable: spiflash write is *NOT* enabled
[0095.993] 
[0098.343] spi_write_enable: spiflash write is *NOT* enabled
[0098.348] 
[0105.938] spi_write_enable: spiflash write is *NOT* enabled
[0105.993] 
[0108.343] spi_write_enable: spiflash write is *NOT* enabled
[0108.348] 
[0115.938] spi_write_enable: spiflash write is *NOT* enabled
[0115.993] 
[0118.343] spi_write_enable: spiflash write is *NOT* enabled
[0118.348] 
[0125.938] spi_write_enable: spiflash write is *NOT* enabled
[0125.993] 
[0128.343] spi_write_enable: spiflash write is *NOT* enabled
[0128.348] 
[0135.938] spi_write_enable: spiflash write is *NOT* enabled
[0135.993] 
[0138.343] spi_write_enable: spiflash write is *NOT* enabled
[0138.348] 
[0145.938] spi_write_enable: spiflash write is *NOT* enabled
[0145.993] 
[0148.343] spi_write_enable: spiflash write is *NOT* enabled
[0148.348] 
[0148.443] partition NVC write successful.
[0149.343] Writing NVC_R partition
[0149.349] device_query_partition_size: failed to open partition sd0:NVC_R !
[0149.356] Partition NVC_R not found
[0149.359] Partition not found with error 0x4
[0149.363] Write command failed for NVC_R partition
[0155.958] spi_write_enable: spiflash write is *NOT* enabled
[0156.014] 
[0158.368] spi_write_enable: spiflash write is *NOT* enabled

Then this error is repeating over and over again

Looks like you can RMA this module.

Do you have the flash log from uart when device is under flashing?

Thanks, but i doubt RMA is possible for me…

If there are any suggestions on a hardware matter, I’m ready to try them. Maybe anyone else had same issue?

(the log above was the flashing log, without flashing i get zero output)

I just checked your info again. Looks like the problem is not hardware.

Is it a nano 2gb device? Because that “jetson-nano-devkit” is for jetson 4GB but not 2GB.

Yes, it’s a 2GB device. I have also tried jetson-nano-qspi-sd profile

No, this is still wrong. There should be a 2gb conf file under your Linux _for_Tegra.

jetson-nano-2gb-devkit.conf  jetson-nano-devkit-emmc.conf  jetson-nano-qspi.conf     jetson-tx1.conf
jetson-nano-devkit.conf      jetson-nano-emmc.conf         jetson-nano-qspi-sd.conf  jetson-tx1-devkit.conf

jetson-nano-2gb-devkit then?

Yes, this is the only one file that could flash jetson nano 2gb.

I’ve tried that profile. Still it doesnt detect QSPI chip.

Should i be trying some specific BOARDID/SKU?

I’ve got the values by parsing cvm.bin, which i assume is eeprom dump

If even that cannot help after adding xml file to the board conf, then I can only suggest you RMA this module.

Is it possible to generate full SPI dump as file? so i could flash it with spi programmer

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.