diff options
author | Ting Shen <phoenixshen@google.com> | 2021-02-26 16:07:21 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-03-03 05:40:59 +0000 |
commit | 09b4da98b5bc1d83237033d8d683d21f6cb0d3f2 (patch) | |
tree | b9baa84458e80d2633d081708456092e711d5d02 /core | |
parent | 985116ae9a038e958792accfee864176432effd1 (diff) | |
download | chrome-ec-09b4da98b5bc1d83237033d8d683d21f6cb0d3f2.tar.gz |
core/riscv-rv32i: rearrange symbols in ILM
The symbol `current_image_data` must be located in a static place, so
EC-RO can always find the required information inside EC-RW.
Move the symbol to a lower offset to make it's location not affected
by future code change.
BUG=b:181203269
TEST=1) bootable on hayato
2) ec.RW.smap:
80080000 T __flash_dma_start
80080000 t __startup
80080004 t __irq
80080008 t __ec_intc
80080080 T eflash_sig
80080090 T current_image_data
80080090 T __image_data_offset
800800c0 T __entry_irq_0
...
800800fc T __entry_irq_15
80080100 T __entry_syscall
80080104 t __irq_isr
BRANCH=none
Signed-off-by: Ting Shen <phoenixshen@google.com>
Change-Id: Iaf05ed8f758d99981eec432afbe404ac2c469dec
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2722051
Reviewed-by: Dino Li <dino.li@ite.corp-partner.google.com>
Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
Tested-by: Ting Shen <phoenixshen@chromium.org>
Auto-Submit: Ting Shen <phoenixshen@chromium.org>
Commit-Queue: Ting Shen <phoenixshen@chromium.org>
Diffstat (limited to 'core')
-rw-r--r-- | core/riscv-rv32i/init.S | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/core/riscv-rv32i/init.S b/core/riscv-rv32i/init.S index f81890bd5e..5715478356 100644 --- a/core/riscv-rv32i/init.S +++ b/core/riscv-rv32i/init.S @@ -29,6 +29,26 @@ __startup: __irq: j __irq_isr /* interrupts / exceptions */ +.align 2 +__ec_intc: + vector irq_0 /* INT GROUP 0 */ + vector irq_1 /* INT GROUP 1 */ + vector irq_2 /* INT GROUP 2 */ + vector irq_3 /* INT GROUP 3 */ + vector irq_4 /* INT GROUP 4 */ + vector irq_5 /* INT GROUP 5 */ + vector irq_6 /* INT GROUP 6 */ + vector irq_7 /* INT GROUP 7 */ + vector irq_8 /* INT GROUP 8 */ + vector irq_9 /* INT GROUP 9 */ + vector irq_10 /* INT GROUP 10 */ + vector irq_11 /* INT GROUP 11 */ + vector irq_12 /* INT GROUP 12 */ + vector irq_13 /* INT GROUP 13 */ + vector irq_14 /* INT GROUP 14 */ + vector irq_15 /* INT GROUP 15 */ + vector syscall /* system call (emulate INT GROUP 16) */ + #ifdef CHIP_FAMILY_IT8XXX2 /* * E-flash signature used to enable specific function after power-on reset. @@ -65,27 +85,9 @@ eflash_sig: /* flags: internal oscillator + implicit location */ #endif /* CHIP_FAMILY_IT8XXX2 */ -.align 2 -__ec_intc: - vector irq_0 /* INT GROUP 0 */ - vector irq_1 /* INT GROUP 1 */ - vector irq_2 /* INT GROUP 2 */ - vector irq_3 /* INT GROUP 3 */ - vector irq_4 /* INT GROUP 4 */ - vector irq_5 /* INT GROUP 5 */ - vector irq_6 /* INT GROUP 6 */ - vector irq_7 /* INT GROUP 7 */ - vector irq_8 /* INT GROUP 8 */ - vector irq_9 /* INT GROUP 9 */ - vector irq_10 /* INT GROUP 10 */ - vector irq_11 /* INT GROUP 11 */ - vector irq_12 /* INT GROUP 12 */ - vector irq_13 /* INT GROUP 13 */ - vector irq_14 /* INT GROUP 14 */ - vector irq_15 /* INT GROUP 15 */ - vector syscall /* system call (emulate INT GROUP 16) */ .align 2 +.section .text.vectirq __irq_isr: /* save t2 to scratch register */ csrw mscratch, t2 |