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 [*] -
. 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