Hi. Le jeudi 30 mars 2023, 21:17:33 WEST Tony Dinh a écrit : > Hi Francis, > > On Thu, Mar 30, 2023 at 12:50 PM Francis Laniel > > <francis.lan...@amarulasolutions.com> wrote: > > This commit set CONFIG_HUSH_PARSER_2021 as the default to trigger the CI > > with this parser. > > > > Nonetheless, the keymile (i.e. VENDOR_KM) board family is not compatible > > with new 2021 hush parser. > > Indeed, This boards used set_local_var() to store some variables as local > > shell. They then used get_local_var() to retrieve the variables values. > > Sadly, this two functions do not exist with CONFIG_HUSH_PARSER_2021. > > A patch was proposed to use environment variables rather than local > > variables but it does not tackle the problem, so complementary work is > > needed to make this boards use CONFIG_HUSH_PARSER_2021 [1]. > > > > We also remove a #undef of CONFIG_FEATURE_SH_STANDALONE as it does not > > exist in U-Boot and causes troubles in the CI. > > > > We also set CONFIG_LTO for kirkwoord sheevaplug and phytec bk4r1, > > otherwise it hits its board size limit. > > By enabling this option, we also had to add assembly for > > __gnu_thumb1_case_si. It was taken from upstream gcc and adapted as width > > suffix was removed for the add [2]. > > Thanks for adding __gnu_thumb1_case_si ! It will help not just the > Sheevaplug board, but also a few other boards too. I'll give this a > try.
You are welcome! I nonetheless cannot ensure the modifications I brought to the code are correct as I do not have the board to test them. So, if you can test it on a board it will be really welcomed and in case you find any problem I will add your suggested changes to the commit! > > All the best, > Tony > > > Signed-off-by: Francis Laniel <francis.lan...@amarulasolutions.com> > > [1] https://marc.info/?l=u-boot&m=165541917618725&w=2 > > [2] > > https://github.com/gcc-mirror/gcc/blob/4f181f9c7ee3efc509d185fdfda33be901 > > 8f1611/libgcc/config/arm/lib1funcs.S#L2156 --- > > > > arch/arm/lib/lib1funcs.S | 17 +++++++++++++++++ > > cmd/Kconfig | 3 ++- > > common/cli_hush_upstream.c | 1 - > > configs/bk4r1_defconfig | 1 + > > configs/sheevaplug_defconfig | 1 + > > 5 files changed, 21 insertions(+), 2 deletions(-) > > > > diff --git a/arch/arm/lib/lib1funcs.S b/arch/arm/lib/lib1funcs.S > > index de15d09e36..a1f44d9454 100644 > > --- a/arch/arm/lib/lib1funcs.S > > +++ b/arch/arm/lib/lib1funcs.S > > @@ -419,4 +419,21 @@ ENTRY(__gnu_thumb1_case_uhi) > > > > ret lr > > > > ENDPROC(__gnu_thumb1_case_uhi) > > .popsection > > > > + > > +/* Taken and adapted from: > > https://github.com/gcc-mirror/gcc/blob/4f181f9c7ee3efc509d185fdfda33be901 > > 8f1611/libgcc/config/arm/lib1funcs.S#L2156 */ +.pushsection > > .text.__gnu_thumb1_case_si, "ax" > > +ENTRY(__gnu_thumb1_case_si) > > + push {r0, r1} > > + mov r1, lr > > + adds r1, r1, #2 /* Align to word. */ > > + lsrs r1, r1, #2 > > + lsls r0, r0, #2 > > + lsls r1, r1, #2 > > + ldr r0, [r1, r0] > > + adds r0, r0, r1 > > + mov lr, r0 > > + pop {r0, r1} > > + mov pc, lr /* We know we were called from thumb code. > > */ +ENDPROC(__gnu_thumb1_case_si) > > +.popsection > > > > #endif > > > > diff --git a/cmd/Kconfig b/cmd/Kconfig > > index 1b9d04680d..d4809fcfa4 100644 > > --- a/cmd/Kconfig > > +++ b/cmd/Kconfig > > @@ -28,7 +28,7 @@ menu "Hush flavor to use" > > > > config HUSH_OLD_PARSER > > > > bool "Use hush old parser" > > > > - default y > > + default y if VENDOR_KM > > > > help > > > > This option enables the old flavor of hush based on hush > > Busybox from > > 2005. > > > > @@ -37,6 +37,7 @@ menu "Hush flavor to use" > > > > config HUSH_2021_PARSER > > > > bool "Use hush 2021 parser" > > > > + default y if !VENDOR_KM > > > > help > > > > This option enables the new flavor of hush based on hush > > Busybox from > > 2021. > > > > diff --git a/common/cli_hush_upstream.c b/common/cli_hush_upstream.c > > index 93796e87c5..78a13eeb62 100644 > > --- a/common/cli_hush_upstream.c > > +++ b/common/cli_hush_upstream.c > > @@ -427,7 +427,6 @@ > > > > #include "NUM_APPLETS.h" > > #if NUM_APPLETS == 1 > > /* STANDALONE does not make sense, and won't compile */ > > > > -# undef CONFIG_FEATURE_SH_STANDALONE > > > > # undef ENABLE_FEATURE_SH_STANDALONE > > # undef IF_FEATURE_SH_STANDALONE > > # undef IF_NOT_FEATURE_SH_STANDALONE > > > > diff --git a/configs/bk4r1_defconfig b/configs/bk4r1_defconfig > > index 66adeac725..95f0c30cde 100644 > > --- a/configs/bk4r1_defconfig > > +++ b/configs/bk4r1_defconfig > > @@ -18,6 +18,7 @@ CONFIG_TARGET_BK4R1=y > > > > CONFIG_SYS_LOAD_ADDR=0x82000000 > > CONFIG_SYS_MEMTEST_START=0x80010000 > > CONFIG_SYS_MEMTEST_END=0x87c00000 > > > > +CONFIG_LTO=y > > > > CONFIG_HAS_BOARD_SIZE_LIMIT=y > > CONFIG_BOARD_SIZE_LIMIT=520192 > > CONFIG_FIT=y > > > > diff --git a/configs/sheevaplug_defconfig b/configs/sheevaplug_defconfig > > index 2e4901b840..365f779cc8 100644 > > --- a/configs/sheevaplug_defconfig > > +++ b/configs/sheevaplug_defconfig > > @@ -16,6 +16,7 @@ CONFIG_ENV_OFFSET=0x80000 > > > > CONFIG_DEFAULT_DEVICE_TREE="kirkwood-sheevaplug" > > CONFIG_IDENT_STRING="\nMarvell-Sheevaplug" > > CONFIG_SYS_LOAD_ADDR=0x800000 > > > > +CONFIG_LTO=y > > > > CONFIG_HAS_BOARD_SIZE_LIMIT=y > > CONFIG_BOARD_SIZE_LIMIT=524288 > > CONFIG_BOOTDELAY=3 > > > > -- > > 2.34.1 Best regards.