quark_se: Add restore info shared memory to linker
A new shared memory has been added to the qmsi bootloader in order to handle the restore flow and jump to the restore trap where context is restored. Add the new entry to the QUARK SE C1000 linker file and new kconfig options: - CONFIG_BSP_SHARED_RAM_ADDR to set the address of the shared memory. - CONFIG_BSP_SHARED_RAM_SIZE to set the size of the shared memory. This is only enabled with CONFIG_SYS_POWER_DEEP_SLEEP. Jira: ZEP-1046 Change-Id: I35d924a100c5583025aa36a9741428ab51809c57 Signed-off-by: Julien Delayen <julien.delayen@intel.com>
This commit is contained in:
parent
ee04a3f6d8
commit
5e87553079
2 changed files with 27 additions and 2 deletions
|
@ -85,4 +85,20 @@ config QUARK_SE_IPM_CONSOLE_RING_BUF_SIZE32
|
|||
endif
|
||||
endif
|
||||
|
||||
config BSP_SHARED_RAM_ADDR
|
||||
hex "Address of the shared RAM with the QMSI Bootloader"
|
||||
depends on SYS_POWER_DEEP_SLEEP
|
||||
default 0xA8013FFC
|
||||
help
|
||||
Address of the memory shared between the BSP and the Bootloader in order
|
||||
to store restore information.
|
||||
|
||||
config BSP_SHARED_RAM_SIZE
|
||||
hex "Size of the shared RAM with the QMSI Bootloader"
|
||||
depends on SYS_POWER_DEEP_SLEEP
|
||||
default 0x4
|
||||
help
|
||||
Size of the memory shared between the BSP and the Bootloader in order
|
||||
to store restore information.
|
||||
|
||||
endif #SOC_QUARK_SE_C1000_X86
|
||||
|
|
|
@ -33,15 +33,24 @@
|
|||
#define PHYS_LOAD_ADDR CONFIG_PHYS_RAM_ADDR
|
||||
#endif /* CONFIG_XIP */
|
||||
|
||||
#ifdef CONFIG_SYS_POWER_DEEP_SLEEP
|
||||
#define PHYS_RAM_SIZE CONFIG_RAM_SIZE*1K - CONFIG_BSP_SHARED_RAM_SIZE
|
||||
#else /* !CONFIG_SYS_POWER_DEEP_SLEEP */
|
||||
#define PHYS_RAM_SIZE CONFIG_RAM_SIZE*1K
|
||||
#endif
|
||||
|
||||
MEMORY
|
||||
{
|
||||
#ifdef CONFIG_XIP
|
||||
ROM (rx) : ORIGIN = PHYS_LOAD_ADDR, LENGTH = CONFIG_ROM_SIZE*1K
|
||||
RAM (wx) : ORIGIN = PHYS_RAM_ADDR, LENGTH = CONFIG_RAM_SIZE*1K
|
||||
RAM (wx) : ORIGIN = PHYS_RAM_ADDR, LENGTH = PHYS_RAM_SIZE
|
||||
#else /* !CONFIG_XIP */
|
||||
RAM (wx) : ORIGIN = PHYS_LOAD_ADDR, LENGTH = CONFIG_RAM_SIZE*1K
|
||||
RAM (wx) : ORIGIN = PHYS_LOAD_ADDR, LENGTH = PHYS_RAM_SIZE
|
||||
#endif /* CONFIG_XIP */
|
||||
#ifdef CONFIG_SYS_POWER_DEEP_SLEEP
|
||||
BSP_SHARED_RAM (rw) : ORIGIN = CONFIG_BSP_SHARED_RAM_ADDR,
|
||||
LENGTH = CONFIG_BSP_SHARED_RAM_SIZE
|
||||
#endif /* CONFIG_SYS_POWER_DEEP_SLEEP */
|
||||
|
||||
/*
|
||||
* It doesn't matter where this region goes as it is stripped from the
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue