extlinux boot options

Hello,

I read this thread:
https://devtalk.nvidia.com/default/topic/1016141/jetson-tx1/setting-the-i2c-speed/

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).

(Side note: I came from here: https://devtalk.nvidia.com/default/topic/820522/jetson-tk1/operating-i2c-at-100-khz/post/4491453/
But the bus_clk_rate file does not exist under any of the i2c devices - I reckon the 3rd party vendor who took your L4T sources hasn’t updated those since that feature was added)

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?

TIMEOUT 30
DEFAULT primary

MENU TITLE Jetson-TK1 eMMC boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/zImage
      FDT /boot/tegra124-jetson_tk1-pm375-000-c00-00.dtb
      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

LABEL i2cslow
      MENU LABEL i2c0 100kHz
      LINUX /boot/zImage
      FDT /boot/modified-tegra124.dtb
      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

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.