I tried to add another boot option to allow starting with a modified .dtb file.
But on the serial console, I just see the regular output rushing past my face, I am not presented with any boot options, even though there is a timeout of 30sec (was already in the file).
The file I figured should be the active one, as my L4T based linux image is installed on emmc, is:
/boot/extlinux/jetson-tk1_extlinux.conf.emmc
Which now looks like below.
I copied the first “label” block which was in there, and modified only the FDT line to point to my modified dtb, and the label/display names.
Yet, I’m not presented with any boot options.
What could be wrong?
Serial console is the correct way to do this, but the opportunity to interrupt is very short (perhaps 1 second).
Any keystroke during the U-Boot stage will drop to U-Boot console; if you interrupt too soon, just type “boot” to continue, but if you interrupt too late, then you’ll just have to reboot and try again. You’ll see a boot scroll something like this log from R21.5:
U-Boot SPL 2014.10-rc2-g3127911 (Jun 07 2016 - 21:00:01)
U-Boot 2014.10-rc2-g3127911 (Jun 07 2016 - 21:00:01)
TEGRA124
Board: NVIDIA Jetson TK1
I2C: ready
DRAM: 2 GiB
MMC: Tegra SD/MMC: 0, Tegra SD/MMC: 1
*** Warning - bad CRC, using default environment
tegra-pcie: PCI regions:
tegra-pcie: I/O: 0x12000000-0x12010000
tegra-pcie: non-prefetchable memory: 0x13000000-0x20000000
tegra-pcie: prefetchable memory: 0x20000000-0x40000000
tegra-pcie: 2x1, 1x1 configuration
tegra-pcie: probing port 0, using 2 lanes
tegra-pcie: probing port 1, using 1 lanes
In: serial
Out: serial
Err: serial
Net: RTL8169#0
Warning: RTL8169#0 using MAC address from net device
, RTL8169#1
Warning: RTL8169#1 using MAC address from net device
Hit any key to stop autoboot: 0
MMC: no card present
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
827 bytes read in 263 ms (2.9 KiB/s)
Jetson-TK1 eMMC boot options
1: primary kernel
Enter choice: 1: primary kernel
Retrieving file: /boot/zImage
6227528 bytes read in 192 ms (30.9 MiB/s)
append: console=ttyS0,115200n8 console=tty1 no_console_suspend=1 lp0_vec=2064@0xf46ff000 mem=2015M@2048M memtype=255 ddr_die=2048M@2048M section=256M pmuboard=0x0177:0x0000:0x02:0x43:0x00 tsec=32M@3913M otf_key=c75e5bb91eb3bd947560357b64422f85 usbcore.old_scheme_first=1 core_edp_mv=1150 core_edp_ma=4000 tegraid=40.1.1.0.0 debug_uartport=lsport,3 power_supply=Adapter audio_codec=rt5640 modem_id=0 android.kerneltype=normal fbcon=map:1 commchip_id=0 usb_port_owner_info=0 lane_owner_info=6 emc_max_dvfs=0 touch_id=0@0 board_info=0x0177:0x0000:0x02:0x43:0x00 net.ifnames=0 root=/dev/mmcblk0p1 rw rootwait tegraboot=sdmmc gpt
Retrieving file: /boot/tegra124-jetson_tk1-pm375-000-c00-00.dtb
59661 bytes read in 261 ms (222.7 KiB/s)
Kernel image @ 0x81000000 [ 0x000000 - 0x5f0648 ]
## Flattened Device Tree blob at 82000000
Booting using the fdt blob at 0x82000000
Using Device Tree in place at 82000000, end 8201190c
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
In particular, watch for “Hit any key to stop autoboot:” (it’ll offer a second or two). This drops to command line, and you could type “boot” to continue booting, or something like “help” to see commands available (you don’t really need to be in the command prompt, but it is interesting).
After this part of U-Boot there will be a very brief moment when you see something like this:
Enter choice: 1: primary kernel
Only if you hit the “2” key, then choice 2 will be used instead.