it8xxx2: allow placing arithmetic functions in ILM

These functions are small and may be very hot depending on the workload,
so are usually a good choice to execute from RAM.

Signed-off-by: Peter Marheine <pmarheine@chromium.org>
This commit is contained in:
Peter Marheine 2022-09-05 14:01:57 +10:00 committed by Carles Cufí
parent d4549ed808
commit d37f496ee7
2 changed files with 8 additions and 1 deletions

View File

@ -10,8 +10,14 @@
* The workaround requires the nop instruction, please don't optimize it.
*/
#ifdef CONFIG_SOC_IT8XXX2_USE_ILM
#define SECTION .__ram_code.arithmetic.
#else
#define SECTION .text.it8xxx2.arithmetic.
#endif
.macro __int_arithmetic func opcode
.section .text
.section SECTION\func
.align 2
.globl \func
.type \func, @function

View File

@ -147,6 +147,7 @@ SECTIONS
__ilm_flash_start = .;
/* Specially-tagged functions in SoC sources */
KEEP(*(.__ram_code))
*(.__ram_code.*)
__ilm_flash_end = .;
/* ILM mapping is always a multiple of 4k size; ensure following
* sections won't incorrectly redirect to RAM. */