nvidia's u-boot doesn't honor DEFAULT boot menu label?

I have two boot labels defined in my /boot/extlinux/extlinux.conf file:

TIMEOUT 5
DEFAULT primary

MENU TITLE p2771-0000 eMMC boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 modprobe.blacklist=bcmdhd

LABEL orig
      MENU LABEL original 28.1 kernel
      LINUX /boot/Image.orig
      APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4

However, u-boot (installed by JetPack 3.1 L4T 28.1 release) doesn’t boot into DEFAULT label after TIMEOUT seconds. It just sits in the boot menu selection waiting for input. If I select label manually, it boots it. My expectation is that after 5 seconds and no input it should continue to boot “primary” label which is defined as DEFAULT? What am I missing here?

-albertr

I had it working with R28.1. Try removing spaces in your labels:

LABEL primary_x
      MENU LABEL primary_x

Yes, non-printing (“invisible”) characters could cause a mismatch…good catch (I used to write printer drivers and ran into this all the time…I spent more time in vi with “:set list” looking at PostScript files it was amazing at how much grief a single space character or tab instead of space or space instead of tab could cause).

I’ve played with it more and I think I was able to narrow it down… On my TX2 any values of TIMEOUT parameter less than 10 (i.e. 5 or 9) result in u-boot stuck in boot menu and require input of menu label number in order to continue booting sequence. TIMEOUT values starting from 10 up don’t exhibit this problem. I’ve downloaded the latest u-boot source and re-compiled it, but it still has the same problem. I hope someone from Nvidia is reading and can chime in…

-albertr

I haven’t experimented much with that TIMEOUT…I could see the possibility of seemingly trivial changes to this which might be an issue…even an extra space on that line too might be a problem. The default though on R28.1 is 30, and this seems to be ignored, so I’m not sure what parts of this are broken and what works.

hello albertr,

according to the TIMEOUT settings, that’s in ‘deciseconds’. for example, TIMEOUT 30 = 3 seconds.
since settings less than 10 result in a TIMEOUT of 0, or an infinite delay.
please configure the minimum values as 10 for your extlinux.conf file.

if you would like to reduce booting delay.
you can reduce 2 seconds delay in u-Boot for waiting user inputs as below.

setenv bootdelay 0
saveenv