JetPack 4.5 Production Release with L4T 32.5

I agree. To much hassle with this. Comparing how raspberry made easy transition from SD to USB boot. At the moment it has just put me off doing that, eventhough I had bought SSDs just for that.

@DicksonChow, IMX477 kernel drivers are built into the kernel. But you will need to create a payload for JP 4.5 by followig the instrucitons inside https://developer.nvidia.com/rpi-imx477-support-nano-2gb and follow the instrucitons on enabling IMX477.
With JP 4.4 we released the pre-built payload. We will be doing the same for JP 4.5 in next few days. But in the meantime, you can follow the inturctions in the readme to generate the payload.

1 Like

@mdegans , IMX477 kernel drivers are built into the kernel. But you will need to create a payload for JP 4.5 by followig the instrucitons inside https://developer.nvidia.com/rpi-imx477-support-nano-2gb and follow the instrucitons on enabling IMX477.
With JP 4.4 we released the pre-built payload. We will be doing the same for JP 4.5 in next few days. But in the meantime, you can follow the inturctions in the readme to generate the payload.

1 Like

Welcome, dragoslav!

Yes, in R32.5, we’ve made some changes to the Nano names/directories. We’ve dropped ā€˜porg’ completely, so the board files are under board/nvidia/p3450-0000, the defconfig is p3450-0000_defconfig, the DTB is now tegra210-p3450-0000.dts, the U-Boot prompt is now #Tegra210 (P3450-0000), etc.

This is to better align w/the upstream (Denx) U-Boot Nano changes. We’ve also updated/rebased to the v2020.04 upstream U-Boot build in R32.5, so we’ve picked up NVMe support, EFI boot, etc. But basic Nano (and TX1, TX2) functionality should remain the same.

Tom

Thanks @suhash

Is that only for 2GB model? My client needs IMX477 for 4Gb model and NX (for arducam IMX477).

Right now we’re generating a system image withs some scripts to apply RidgeRun’s patches, build the rootfs, kernel, and run jetson-disk-image-creator.sh. It works great, but is a lot of maintanince to follow every JetPack release.

Any ETA for IMX477 support to ā€œjust workā€ out of the box for all models?

@mdegans , yes its only for 2GB. We are looking into for JP 4.6 to support IMX477 on other Jetsons.

Thanks for the update, @suhash !

@ronzelver, yes thats right it needs a ā€œ/ā€ behind ā€œtmp_systemā€. Thanks and we will be correcting it soon.
And you are right that all the instructions need to be executed on the host.

nano(with emmc) Model P3448 A02 how to select conf file when it is flashed? jetson-nano-emmc or jetson-nano-devkit-emmc.conf.
I get a error when clone system.img
Error: Return value 8
by this command
sudo ./flash.sh -r -k APP -G ./bootloader/system.img jetson-nano-emmc mmcblk0p1

Thank you @TWarren!

I managed to change ā€œtegra-pinmux-scriptsā€ (change p3450-porg with p3450-0000) and to finish the process of image creation (UBoot and kernel compile). I hope the test will pass with the newly generated image. :)

@suhash, I followed all the steps (including the missing ā€˜/’) and created the USB boot device, but still the Nano wouldn’t boot from it. When I remove the SD card, the Nano shows the boot screen with the ā€˜SD card missing’ icon on the upper right so I assume that the right firmware is loaded on the Nano?! Is there anything else I could check?

Strange! for me USB-Boot works only when I unplug keyboard and mouse during boot…

@ronzelver , may i ask if you are using a Nano is 2GB or 4GB and if 4GB, whether it is A02 or B01 rev. Also may i ask how you are powering the board, whether through microUSB or barrell jack.
We will get back to you on this.

I’m using the original A02 development kit, powered by a 4A barrel power supply.

Update:
I have connected a terminal to the debug console (J44) and apparently it cannot detect my Samsung T5 SSD as storage device?!?

/*** start debug logging ***/
Model: NVIDIA Jetson Nano Developer Kit
Board: NVIDIA P3450-0000
DRAM: 4 GiB
MMC: sdhci@700b0000: 1, sdhci@700b0600: 0
Loading Environment from SPI Flash… SF: Detected mx25u3235f with page size 256 Bytes, erase size 4 KiB, total 4 MiB
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
Net: No ethernet found.
Hit any key to stop autoboot: 0
MMC: no card present
Card did not respond to voltage select!
starting USB…
Bus usb@7d000000: tegrausb: Invalid dr_mode 2 for host mode
probe failed, error -1
Bus xusb@70090000:
Firmware size 124416
Firmware timestamp: 0x5da88fc3, Version: 50.25 release

Register HCSParams1: 9000124 NbrPorts: 9
Starting the controller
USB XHCI 1.00
scanning bus xusb@70090000 for devices… 4 USB Device(s) found
scanning usb for storage devices… 0 Storage Device(s) found

Device 0: unknown device

Device 0: unknown device

Warning: eth_rtl8169 using MAC address from ROM
BOOTP broadcast 1
BOOTP broadcast 2

/*** end debug logging ***/

This Samsung SSD has previously worked just fine with JetPack 4.2 (with JetsonHacks method).

Update:
I’ve tried another USB Drive (WD 250GB HDD) and this one is also not recognised as storage device. When I plug in USB thumb drive it is being recognised as storage device?! Is this maybe related to USB power requirements/budget? However, this only something during the boot process, once the system is booted from SD-card, the USB drives are recognised and accessible.

/*** kernel log /
[ 89.121190] scsi 0:0:0:0: Direct-Access Samsung Portable SSD T5 0 PQ: 0 ANSI: 6
[ 89.164407] sd 0:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/466 GiB)
[ 89.173403] sd 0:0:0:0: [sda] Write Protect is off
[ 89.178942] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn’t support DPO or FUA
[ 89.199631] sd 0:0:0:0: [sda] Attached SCSI disk
/
end kernel log ***/

Good to hear. But I should have mentioned that in R32.5 U-Boot, we’ve also dropped the need for the pinmux config tables in all T210 builds (TX1, Nano, Nano2GB). Pinmuxing (and GPIO init) is now done completely by CBoot, based off of the DTB, so U-Boot doesn’t need to do it. You should note that the pinmux-config-*.h files are gone in board/nvidia/p2371-2180, etc. and the pinmux_init() function has been removed from the board files. So there’s no longer any need to generate a pinmux-config-*.h table using the pinmux scripts for R32.5 builds of U-Boot. They can still be used to re-gen the DTSI files for the kernel DTB, if needed.

Good luck,

Tom

Thanks for the update @TWarren!

Is there some new guide for this whole process, how it should be done for R32.5?

@ronzelver,

Can you stop in U-Boot (press any key on your console app during boot to get to the U-Boot prompt) and run some ā€˜usb’ commands for me? Capture the output to a log file for posting here:

pci enum
usb start
usb tree
usb storage

Also, please try the above commands with only the USB drive connected (no keyboard or mouse). And, if you have any handy, please connect a normal USB flash drive/stick to see if it gets detected as a storage device.

I’ve tested the Samsung T5 drive and it was working during R32.5 release testing, but I never booted it (it was detected just fine). And that was on a newer B00 Nano & Nano2GB and, IIRC, on a TX1. I’ll have to find it & format it for boot & retest with the R32.5 release. But I tested over 3 dozen various USB sticks, flash drives, and HDDs/SSDs and didn’t find one that couldn’t be detected, at least, and I booted over 2/3rds of them. If U-Boot can detect a USB storage device, and it has a ext filesystem and an extlinux.conf file, it should at least attempt to boot it.

Let’s look at your logs of the ā€˜usb’ commands in U-Boot and see if we can figure out what’s happening here.

Tom

@TWarren, here is the output from the commands:

/**** start ****/
In: serial
Out: serial
Err: serial
Net: No ethernet found.
Hit any key to stop autoboot: 0
Tegra210 (P3450-0000) # pci enum
Tegra210 (P3450-0000) # usb start
starting USB…
Bus usb@7d000000: tegrausb: Invalid dr_mode 2 for host mode
probe failed, error -1
Bus xusb@70090000:
Firmware size 124416
Firmware timestamp: 0x5da88fc3, Version: 50.25 release

Register HCSParams1: 9000124 NbrPorts: 9
Starting the controller
USB XHCI 1.00
scanning bus xusb@70090000 for devices… 5 USB Device(s) found
scanning usb for storage devices… 1 Storage Device(s) found
Tegra210 (P3450-0000) # usb tree
USB device tree:
1 Hub (5 Gb/s, 0mA)
| U-Boot XHCI Host Controller
|
±2 (12 Mb/s, 100mA)
|
±3 Hub (5 Gb/s, 0mA)
| Generic 4-Port USB 3.1 Hub
|
±4 Hub (480 Mb/s, 0mA)
| Generic 4-Port USB 2.1 Hub
|
±5 Mass Storage (480 Mb/s, 500mA)
Samsung Portable SSD T5 1234567D05F8

Tegra210 (P3450-0000) # usb storage
Device 0: Vendor: Samsung Rev: 0 Prod: Portable SSD T5
Type: Hard Disk
Capacity: 476940.0 MB = 465.7 GB (976773168 x 512)
Tegra210 (P3450-0000) #
/*** end ***/

Apparently it’s being detected here?!

Ron,

You’ll need both TX & RX hooked up for your UART adapter, obviously. But beyond that I don’t know why it wouldn’t respond to input from your comm program. I use minicom, 115200 8N1, and HW & SW flow control are off (ā€˜No’).

If you let it boot all the way to the kernel (from SD, etc.), can you interact via the comm program there? i.e. run kernel commands like ls, pwd, etc.?

Maybe someone else here can chime in w/comms help.

Tom

I’ll make a note for our support engineers to update the R32.5+ docs about removing the pinmux script info for U-Boot. But the update really is only that you don’t need to use the pinmux scripts & add a pinmux-config header file for U-Boot rebuild, nothing else has changed WRT the pinmux info.

1 Like