
On Thu, Nov 28, 2019 at 11:52 AM Claudius Heine ch@denx.de wrote:
On 28/11/2019 10.27, Simon Goldschmidt wrote:
On Thu, Nov 28, 2019 at 9:57 AM Claudius Heine ch@denx.de wrote:
In case CONFIG_SYSRESET is set, do_reset from reset.c will not be available anywere, even if SYSRESET is disabled for SPL/TPL.
'do_reset' is called from SPL for instance from the panic handler and PANIC_HANG is not set
Signed-off-by: Claudius Heine ch@denx.de
arch/arm/lib/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile index 9de9a9acee..7bf2c077ba 100644 --- a/arch/arm/lib/Makefile +++ b/arch/arm/lib/Makefile @@ -56,7 +56,7 @@ obj-y += interrupts_64.o else obj-y += interrupts.o endif -ifndef CONFIG_SYSRESET +ifndef CONFIG_$(SPL_TPL_)SYSRESET
Would it work to do this: obj-$(CONFIG_$(SPL_TPL_)SYSRESET) += reset.o
that would be nicer than ifndef, I think.
Yes it would, but it didn't seem to work.
OK, thanks for trying. Given the results below, it's fine for me, so:
Reviewed-by: Simon Goldschmidt simon.k.r.goldschmidt@gmail.com
With:
diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile index 9416369aad..913bb21eaf 100644 --- a/arch/arm/lib/Makefile +++ b/arch/arm/lib/Makefile @@ -56,9 +56,7 @@ obj-y += interrupts_64.o else obj-y += interrupts.o endif -ifndef CONFIG_(SPL_TPL_)SYSRESET -obj-y += reset.o -endif +obj-$(CONFIG_$(SPL_TPL_)SYSRESET) += reset.o
obj-y += cache.o obj-$(CONFIG_SYS_ARM_CACHE_CP15) += cache-cp15.o
I get with CONFIG_SYSRESET:
arm-linux-gnu-ld.bfd: drivers/built-in.o: in function `do_reset': drivers/sysreset/sysreset-uclass.c:113: multiple definition of `do_reset'; arch/arm/lib/built-in.o:arch/arm/lib/reset.c:30: first defined here make: *** [Makefile:1667: u-boot] Error 1
And without CONFIG_SYSRESET:
arm-linux-gnu-ld.bfd: lib/built-in.o: in function `efi_reset_system_boottime': lib/efi_loader/efi_runtime.c:165: undefined reference to `do_reset' arm-linux-gnu-ld.bfd: lib/built-in.o: in function `panic_finish': lib/panic.c:26: undefined reference to `do_reset' arm-linux-gnu-ld.bfd: arch/arm/mach-imx/built-in.o: in function `do_boot_mode': arch/arm/mach-imx/cmd_bmode.c:76: undefined reference to `do_reset' arm-linux-gnu-ld.bfd: cmd/built-in.o:(.u_boot_list_2_cmd_2_reset+0xc): undefined reference to `do_reset' arm-linux-gnu-ld.bfd: common/built-in.o: in function `jumptable_init': common/exports.c:30: undefined reference to `do_reset' arm-linux-gnu-ld.bfd: common/built-in.o: in function `print_resetinfo': common/board_f.c:167: undefined reference to `sysreset_get_status' arm-linux-gnu-ld.bfd: common/built-in.o: in function `do_bootm_states': common/bootm.c:633: undefined reference to `do_reset' arm-linux-gnu-ld.bfd: common/built-in.o: in function `run_usb_dnl_gadget': common/dfu.c:90: undefined reference to `do_reset' make: *** [Makefile:1667: u-boot] Error 1