From 39439f69094225380af1714e52a5ff145612e70e Mon Sep 17 00:00:00 2001 From: Aidan MacDonald Date: Sat, 3 Dec 2022 15:55:41 +0000 Subject: Add INIT_ATTR to system_init() On single-core targets, system_init() is only called from init() in main.c, which is also INIT_ATTR, so this is safe. Multi-core targets additionally call system_init() from cop_main(), which isn't marked INIT_ATTR. I'm fairly certain that it would be safe to add INIT_ATTR to cop_main() with a bit of refactoring, but I don't have a way of testing it. So for now, leave INIT_ATTR off for multi-core targets. Change-Id: I8fe4358f975880ca317d46bda01d7d9db529d3e3 --- firmware/export/system.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'firmware/export') diff --git a/firmware/export/system.h b/firmware/export/system.h index def3122205..172fe05b6e 100644 --- a/firmware/export/system.h +++ b/firmware/export/system.h @@ -31,7 +31,13 @@ extern void system_reboot (void); /* Called from any UIE handler and panicf - wait for a key and return * to reboot system. */ extern void system_exception_wait(void); + +#if NUM_CORES == 1 +extern void system_init(void) INIT_ATTR; +#else +/* TODO: probably safe to use INIT_ATTR on multicore but this needs checking */ extern void system_init(void); +#endif extern long cpu_frequency; -- cgit v1.2.3