Dear Gerd Hoffman,
If my advanced_bootmenu new patch ( [*] link below ) is not upstream-able ( for what reasons? ), I will be happy if your alternative solution gets merged - at least because it is better than what's currently in SeaBIOS master. However, I just tested your patches and noticed some issues which did not exist at my original version [*] - https://mail.coreboot.org/hyperkitty/list/seabios@seabios.org/thread/CKWLNTZ... . I hope that you could review my feedback and address at least some of them :
1) It is not possible to choose the boot entry by a single key press of a fullsize keyboard. We have so many keyboard keys, why are we limited to 1234567890 ? Seems inefficient. The alternative way, which I followed, is to continue with qwertyuiop etc. - to utilize 4 rows of keyboard keys - and make a single key press selection possible.
2) If there are >10 menu entries and you accidentally press '0' instead of '1', there is no way to backspace/delete this wrong character. Although, if there is an ability to remove the wrong characters, then a confirmation of a correct input (e.g. by pressing the Enter key) is also needed - to confirm that your last character wasn't wrong. I implemented this mini console interface in my version - but only for a numpad; for keyboard it wasn't needed because it is a single key boot there.
3) If there are >20 menu entries, the first menu entries may not fit on a screen. (That's why I had to add 2 pages support.) Perhaps you think it's unlikely that anyone would need >20 menu entries: however, if you are a floppy-based OS developer who is debugging something that could be reproduced only at bare metal (so no QEMU) - you may want to add a lot of different versions of your floppy to your coreboot build - to reduce the amount of BIOS chip reflashes and just for your convenience. I stopped at 35 max simply because ran out of keyboard letter keys (could have gone double-letter but wanted to preserve a single key boot).
4) Although a few USB numpads do have an Escape key (e.g. Motospeed K23), the majority of them do not - so it is impossible for them to open a boot menu by pressing Escape - simply because no such key. (That's why I added "/" character to the menukeys - every USB numpad has this key.) Also, in your patch version it's not possible to access TPM from a numpad because no t or m keys on it - so I had to add '-' character to the menukeys.
To summarize, perhaps the only advantage of your current patch version is that it is 3 times smaller, so 3 times more likely to be merged. However it doesn't necessarily mean that my original patch is inefficient or bloated: I optimized it as best as I could, and quite sure that if you'd have tried to implement the features mentioned above - as well as some others I may have forgot to mention - then your patch linecount would've jumped too.
P.S. If there are any issues with my patch, which have persuaded you to create your own version (aside from the size issue) - I am open to suggestions and could try to address them when I will have enough free time.
Best regards, Mike Banon