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:
Julien Delayen 2016-10-18 14:25:07 +01:00 committed by Anas Nashif
commit 5e87553079
2 changed files with 27 additions and 2 deletions

View file

@ -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

View file

@ -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