u-boot and syslinux boot problem (SOLVED)

Hello, In my tegra configuration I’m trying to disable the boot wait time and start the kernel automatically. I manage to do this on u-boot by setting the bootdelay to 0. But nevertheless in the syslinux menu I’m still having a timeout that is bothering me.
The problem comes when trying to boot with device that is constantly streaming data connected to the RS232. Since this timeout exists, the board hangs on this menu waiting for the user to select the kernel and stays there forever.
I tried different options in the syslinux.conf file, but nothing seems to work.
TOTALTIMEOUT not recognized as a command.
TIMEOUT with a number less than 10 disables the timeout.
PROMPT 0 does nothing.
NOESCAPE not recognized as a command.

I really don’t want to recompile the hole TK1 image and reinstall u-boot, and I’m running out of ideas.
Any help will be much appreciated,
Thank you.

To clarify, it sounds like the serial port has sent data and the u-boot boot loader is halted or delayed by this. Is this correct?

I believe u-boot has two places it can be delayed or interrupted. The first stage is to get to the environment for manual intervention (command line environment), prior to reading extlinux.conf. The second is the extlinux.conf menu itself for selecting kernels. I’m not sure what the timeout setting rules are for the second stage, but is this the stage of concern?

Yes you are correct. That’s exactly the problem. In the first stage I managed to solve it by putting the “bootdelay” variable to 0. But in the second stage the commands like TOTALTIMEOUT in /boot/extlinux/extlinux.conf, won’t work and don’t know how to force the board to boot even thought its interrupted. Or avoid being interrupted at all.

Thank you for your response.

The most direct way (which is probably not something you want) would simply be to not have data sent over the serial console…having u-boot halt when a key stroke is detected is behaving as it was designed (I’m reminded of that terrible old joke where the guy goes to the doctor and says “it hurts when I do this”, so the doctor says “well don’t do that”). So I’m guessing there is a reason data is going over the serial console interface and why you still want that interface…knowing a bit about the goals might help.

That said, u-boot itself reaches that second stage and reads extlinux.conf for options. Removing serial console from the kernel command line would not help, as the kernel has not yet taken over, and so you are kind of stuck with u-boot stage 2 behavior. I’m not positive what the syntax truly is for extlinux.conf, but to deal with stage 2 timers outside of changing source code probably requires something in the extlinux.conf file. Unfortunately, I do not believe the “TIMEOUT” variable I see has any meaning. My own attempts at increasing timeout via this are ignored.

Typically, if you want no options to be selectable at boot, you’d use fastboot instead. So can you describe exactly what your goals are, e.g., you want serial console but no boot options, versus not wanting serial console at all, and where the data comes from which interrupts u-boot at stage 2?

Well, I couldn’t stop the device from sending any data cause is not controlled by me.
fastboot seems to be a realy good option but I have no idea how to do that (maybe for next time), so what I ended up doing is deleting this lines from the extlinux.conf:


So syslinux only sees one label. From What I read on the syslinux documentation what this does is leave the extlinux with no other option than my kernel, and because of this, disables the selection menu.

For now it seems to work and on booting time it goes directly to the kernel without asking for any option. Don’t know if this is the best option but works for me.

linuxdev I appreciate a lot your help and I’ll look up the fastboot option just to see how it works.
Thank you :)

Just remember that when fastboot is used, a partition number has to be named to hold the kernel (instead of /boot). In the original R19.x it was “-k 6”, but I don’t know if that still works.