Re: [PATCH v2 0/8] spl: binman: Fixes for BINMAN_SYMBOLS
Am 18.06.22 um 14:13 schrieb Alper Nebi Yasak: > There's some trouble with an i.MX8M series [1] trying to use binman > symbols. The crux of it is the 'u_boot_any' symbols BINMAN_SYMBOLS > configs declare, and the boards creating partial binman images including > an SPL without a U-Boot the symbol is referring to. > > Normally this should be easy to resolve by disabling BINMAN_SYMBOLS > configs, but that causes a build error. Apparently some parts of the SPL > code (RAW_IMAGE_SUPPORT, RAM_DEVICE) use the symbols directly without > guarding them by BINMAN_SYMBOLS, implicitly requiring it. > > The first patch fixes the issue above, the rest are related things I > tinkered with while trying to understand the issue and the i.MX8M use > case. Part of this is splitting binman symbols support from enabling > binman and from the u-boot-any symbols declarations. Another is to add a > new macro people can use to check if they can use binman symbols safely. > > These apply onto u-boot/next. I have also triggered an Azure CI run [2] > via a Github pull request. I tested this series together with the v7 of Peng's set "arm64: binman: use binman symbols for imx" with kontron-sl-mx8mm. Tested-by: Frieder Schrempf #Kontron SL/BL i.MX8MM
Re: [PATCH v2 0/8] spl: binman: Fixes for BINMAN_SYMBOLS
On 23/06/2022 06:00, Peng Fan (OSS) wrote: > Hi Alper, > > 在 2022/6/18 20:13, Alper Nebi Yasak 写道: >> There's some trouble with an i.MX8M series [1] trying to use binman >> symbols. The crux of it is the 'u_boot_any' symbols BINMAN_SYMBOLS >> configs declare, and the boards creating partial binman images including >> an SPL without a U-Boot the symbol is referring to. >> >> Normally this should be easy to resolve by disabling BINMAN_SYMBOLS >> configs, but that causes a build error. Apparently some parts of the SPL >> code (RAW_IMAGE_SUPPORT, RAM_DEVICE) use the symbols directly without >> guarding them by BINMAN_SYMBOLS, implicitly requiring it. >> >> The first patch fixes the issue above, the rest are related things I >> tinkered with while trying to understand the issue and the i.MX8M use >> case. Part of this is splitting binman symbols support from enabling >> binman and from the u-boot-any symbols declarations. Another is to add a >> new macro people can use to check if they can use binman symbols safely. >> >> These apply onto u-boot/next. I have also triggered an Azure CI run [2] >> via a Github pull request. > > I have tested your patchset with branch : imx-ddr-binman-symbols > > Tested-by: Peng Fan #i.MX8MP-EVK > > Would you send out the i.MX patches? or you need me to send a V7 version > based on your patchset? It would be better if you sent those. Thanks.
Re: [PATCH v2 0/8] spl: binman: Fixes for BINMAN_SYMBOLS
Hi Alper, 在 2022/6/18 20:13, Alper Nebi Yasak 写道: There's some trouble with an i.MX8M series [1] trying to use binman symbols. The crux of it is the 'u_boot_any' symbols BINMAN_SYMBOLS configs declare, and the boards creating partial binman images including an SPL without a U-Boot the symbol is referring to. Normally this should be easy to resolve by disabling BINMAN_SYMBOLS configs, but that causes a build error. Apparently some parts of the SPL code (RAW_IMAGE_SUPPORT, RAM_DEVICE) use the symbols directly without guarding them by BINMAN_SYMBOLS, implicitly requiring it. The first patch fixes the issue above, the rest are related things I tinkered with while trying to understand the issue and the i.MX8M use case. Part of this is splitting binman symbols support from enabling binman and from the u-boot-any symbols declarations. Another is to add a new macro people can use to check if they can use binman symbols safely. These apply onto u-boot/next. I have also triggered an Azure CI run [2] via a Github pull request. I have tested your patchset with branch : imx-ddr-binman-symbols Tested-by: Peng Fan #i.MX8MP-EVK Would you send out the i.MX patches? or you need me to send a V7 version based on your patchset? Thanks, Peng. [1] arm64: binman: use binman symbols for imx https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Fu-boot%2F20220603071715.15212-1-peng.fan%40oss.nxp.com%2Fdata=05%7C01%7Cpeng.fan%40nxp.com%7C762c5e7536d8472a0eb308da51240074%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637911512361561438%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7Csdata=1swOCCJNBUj5kgGx2RsWLZqnXhtdV6V3xZ%2BfzDkESVU%3Dreserved=0 [2] #20220616.1 spl: binman: Fixes for BINMAN_SYMBOLS https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdev.azure.com%2Fu-boot%2Fu-boot%2F_build%2Fresults%3FbuildId%3D4490%26view%3Dresultsdata=05%7C01%7Cpeng.fan%40nxp.com%7C762c5e7536d8472a0eb308da51240074%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637911512361561438%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7Csdata=ipiBvgKIx8nNIvZFgSZKzRxuyWFD0EZzHHJnPrzbqMA%3Dreserved=0 Changes in v2: - Split binman symbols support from enabling binman - Move U-Boot phase symbol declarations to BINMAN_UBOOT_SYMBOLS configs - Merge in Peng's patch for binman_sym.h changes - Update VPL configs for the new BINMAN_UBOOT_SYMBOLS - Add new patch to check binman symbols at runtime - Add new patch to disable u_boot_any symbols for i.MX8M boards - Pick Peng's __image_copy_start fix Alper Nebi Yasak (7): spl: binman: Fix use of undeclared u_boot_any symbols spl: binman: Make TPL_BINMAN_SYMBOLS depend on TPL_FRAMEWORK spl: binman: Declare extern symbols for VPL as well spl: binman: Split binman symbols support from enabling binman spl: binman: Add config options for binman symbols in VPL spl: binman: Check at runtime if binman symbols were filled in spl: binman: Disable u_boot_any symbols for i.MX8M boards Peng Fan (1): armv8: u-boot-spl.lds: mark __image_copy_start as symbol arch/arm/cpu/armv8/u-boot-spl.lds | 2 +- common/spl/Kconfig | 23 -- common/spl/Kconfig.tpl | 27 --- common/spl/Kconfig.vpl | 25 ++ common/spl/spl.c| 16 +-- common/spl/spl_ram.c| 2 +- include/binman_sym.h| 51 +++-- include/spl.h | 2 + tools/binman/elf.py | 12 +++-- tools/binman/elf_test.py| 12 +++-- tools/binman/ftest.py | 33 ++--- tools/binman/test/021_image_pad.dts | 2 +- tools/binman/test/024_sorted.dts| 2 +- tools/binman/test/028_pack_4gb_outside.dts | 2 +- tools/binman/test/029_x86_rom.dts | 6 +-- tools/binman/test/053_symbols.dts | 2 +- tools/binman/test/149_symbols_tpl.dts | 4 +- tools/binman/test/155_symbols_tpl_x86.dts | 4 +- tools/binman/test/187_symbols_sub.dts | 2 +- tools/binman/test/Makefile | 2 +- tools/binman/test/generated/autoconf.h | 3 ++ tools/binman/test/u_boot_binman_syms.c | 6 ++- tools/binman/test/u_boot_binman_syms_size.c | 6 ++- 23 files changed, 183 insertions(+), 63 deletions(-) create mode 100644 tools/binman/test/generated/autoconf.h
[PATCH v2 0/8] spl: binman: Fixes for BINMAN_SYMBOLS
There's some trouble with an i.MX8M series [1] trying to use binman symbols. The crux of it is the 'u_boot_any' symbols BINMAN_SYMBOLS configs declare, and the boards creating partial binman images including an SPL without a U-Boot the symbol is referring to. Normally this should be easy to resolve by disabling BINMAN_SYMBOLS configs, but that causes a build error. Apparently some parts of the SPL code (RAW_IMAGE_SUPPORT, RAM_DEVICE) use the symbols directly without guarding them by BINMAN_SYMBOLS, implicitly requiring it. The first patch fixes the issue above, the rest are related things I tinkered with while trying to understand the issue and the i.MX8M use case. Part of this is splitting binman symbols support from enabling binman and from the u-boot-any symbols declarations. Another is to add a new macro people can use to check if they can use binman symbols safely. These apply onto u-boot/next. I have also triggered an Azure CI run [2] via a Github pull request. [1] arm64: binman: use binman symbols for imx https://lore.kernel.org/u-boot/20220603071715.15212-1-peng@oss.nxp.com/ [2] #20220616.1 spl: binman: Fixes for BINMAN_SYMBOLS https://dev.azure.com/u-boot/u-boot/_build/results?buildId=4490=results Changes in v2: - Split binman symbols support from enabling binman - Move U-Boot phase symbol declarations to BINMAN_UBOOT_SYMBOLS configs - Merge in Peng's patch for binman_sym.h changes - Update VPL configs for the new BINMAN_UBOOT_SYMBOLS - Add new patch to check binman symbols at runtime - Add new patch to disable u_boot_any symbols for i.MX8M boards - Pick Peng's __image_copy_start fix Alper Nebi Yasak (7): spl: binman: Fix use of undeclared u_boot_any symbols spl: binman: Make TPL_BINMAN_SYMBOLS depend on TPL_FRAMEWORK spl: binman: Declare extern symbols for VPL as well spl: binman: Split binman symbols support from enabling binman spl: binman: Add config options for binman symbols in VPL spl: binman: Check at runtime if binman symbols were filled in spl: binman: Disable u_boot_any symbols for i.MX8M boards Peng Fan (1): armv8: u-boot-spl.lds: mark __image_copy_start as symbol arch/arm/cpu/armv8/u-boot-spl.lds | 2 +- common/spl/Kconfig | 23 -- common/spl/Kconfig.tpl | 27 --- common/spl/Kconfig.vpl | 25 ++ common/spl/spl.c| 16 +-- common/spl/spl_ram.c| 2 +- include/binman_sym.h| 51 +++-- include/spl.h | 2 + tools/binman/elf.py | 12 +++-- tools/binman/elf_test.py| 12 +++-- tools/binman/ftest.py | 33 ++--- tools/binman/test/021_image_pad.dts | 2 +- tools/binman/test/024_sorted.dts| 2 +- tools/binman/test/028_pack_4gb_outside.dts | 2 +- tools/binman/test/029_x86_rom.dts | 6 +-- tools/binman/test/053_symbols.dts | 2 +- tools/binman/test/149_symbols_tpl.dts | 4 +- tools/binman/test/155_symbols_tpl_x86.dts | 4 +- tools/binman/test/187_symbols_sub.dts | 2 +- tools/binman/test/Makefile | 2 +- tools/binman/test/generated/autoconf.h | 3 ++ tools/binman/test/u_boot_binman_syms.c | 6 ++- tools/binman/test/u_boot_binman_syms_size.c | 6 ++- 23 files changed, 183 insertions(+), 63 deletions(-) create mode 100644 tools/binman/test/generated/autoconf.h -- 2.36.1