On Sat, 14 Jan 2023 at 19:26, Heinrich Schuchardt <xypron.g...@gmx.de> wrote: > > On 1/14/23 11:06, Heinrich Schuchardt wrote: > > On 1/5/23 03:58, Masahisa Kojima wrote: > >> The current eficonfig menu does not support vertical scroll, > >> so it can not display the menu entries greater than > >> the console row size. > >> > >> This commit add the vertial scroll support. > >> The console size is retrieved by > >> SIMPLE_TEXT_OUTPUT_PROTOCOL.QueryMode() service, then > >> calculates the row size for menu entry by subtracting > >> menu header and description row size from the console row size. > >> "start" and "end" are added in the efimenu structure. > >> "start" keeps the menu entry index at the top, "end" keeps > >> the bottom menu entry index. item_data_print() menu function > >> only draws the menu entry between "start" and "end". > >> > >> Signed-off-by: Masahisa Kojima <masahisa.koj...@linaro.org> > > > > Hello Masahisa, > > > > unfortunately this does not work. > > > > I create a boot.scr script to create 100 boot options: > > > > #!/bin/bash > > a=0 > > while [ $a -lt 100 ]; do > > b="0000$a" > > c=${b: -4} > > echo "efidebug boot add -b $c label$c host 0:1 dtbdump.efi" >> boot.txt > > a=$(( $a + 1 )) > > done > > mkimage -T script -n foo -d boot.txt boot.scr > > rm boot.txt > > > > In sandbox_defconfig: > > > > host bind 0 ../sandbox.img > > host load 0:1 $kernel_addr_r boot.scr > > source $kernel_addr_r > > efidebug boot dump > > > > Now I have 100 boot options. > > > > I start 'eficonfig'. Whenever I push the up or down key this immediately > > leads to exiting the command and I am back at the console prompt. > > > > Best regards > > > > Heinrich > > > > The problem seems to be that the space for variables is exhausted. > The user should see an error message in this case.
I will check the error cases and add error messages. I will send a fix as a separate series. > > With CONFIG_EFI_VAR_BUF_SIZE=65536 the navigation works but I only see > entries label0000 - label0095. Where are the other entries? Current eficonfig menu can have at most 99 entries. I guess the following menu entries appears in your environment. - 96 entries (label0000 - label0095) - 2 entries ("host 0:1" and "host 0:2" - 1 entry ("Quit") The current maximum number of menu entries(99) is debatable, I think the menu should have a predefined maximum number. Thank you for your review and testing. Best Regards, Masahisa Kojima > > I have been adding CONFIG_LEGACY_IMAGE_FORMAT=y to read the boot.scr file. > > Best regards > > Heinrich