diff --git a/cpu/cc2538/cc2538.lds b/cpu/cc2538/cc2538.lds index 189968717..ef465409e 100644 --- a/cpu/cc2538/cc2538.lds +++ b/cpu/cc2538/cc2538.lds @@ -35,8 +35,7 @@ */ MEMORY { - FLASH_FW (rx) : ORIGIN = COFFEE_START + COFFEE_SIZE, - LENGTH = FLASH_CCA_ADDR - (COFFEE_START + COFFEE_SIZE) + FLASH_FW (rx) : ORIGIN = FLASH_FW_ADDR, LENGTH = FLASH_FW_SIZE FLASH_CCA (RX) : ORIGIN = FLASH_CCA_ADDR, LENGTH = FLASH_CCA_SIZE /* diff --git a/cpu/cc2538/dev/flash.h b/cpu/cc2538/dev/flash.h index 6af19723e..49db85b20 100644 --- a/cpu/cc2538/dev/flash.h +++ b/cpu/cc2538/dev/flash.h @@ -48,6 +48,7 @@ #define FLASH_H_ #include "dev/cc2538-dev.h" +#include "cfs-coffee-arch.h" #include /*---------------------------------------------------------------------------*/ @@ -90,6 +91,23 @@ #define FLASH_CCA_LOCK_DEBUG_BIT 7 /**< Debug lock bit position in the corresponding lock byte */ /** @} */ /*---------------------------------------------------------------------------*/ +/** \name Firmware location in flash memory + * @{ + */ +#ifdef FLASH_CONF_FW_ADDR +#define FLASH_FW_ADDR FLASH_CONF_FW_ADDR +#elif !defined(COFFEE_CONF_CUSTOM_PORT) +#define FLASH_FW_ADDR (COFFEE_START + COFFEE_SIZE) +#else +#define FLASH_FW_ADDR CC2538_DEV_FLASH_ADDR +#endif +#ifdef FLASH_CONF_FW_SIZE +#define FLASH_FW_SIZE FLASH_CONF_FW_SIZE +#else +#define FLASH_FW_SIZE (FLASH_CCA_ADDR - FLASH_FW_ADDR) +#endif +/** @} */ +/*---------------------------------------------------------------------------*/ /** \name Flash lock bit page and CCA layout * @{ */