Files
OpenCellular/include/config_std_internal_flash.h
Shawn Nematbakhsh 854d5a6e7f cleanup: Remove CONFIG_FW_IMAGE_SIZE
Since CONFIG_RO_SIZE and CONFIG_RW_SIZE now exist (which may
theoretically be different sizes), it is no longer useful to globally
define the size of an image.

BUG=chromium:535027
BRANCH=None
TEST=`make buildall -j`. Also, verify glados / glados_pd continue to
function as expected.

Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Change-Id: Ie29959923bc5d02b4d7d6d507ff2191bcb7d24c8
Reviewed-on: https://chromium-review.googlesource.com/301743
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2015-09-24 18:07:01 -07:00

79 lines
2.9 KiB
C

/* Copyright 2015 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef __CROS_EC_CONFIG_STD_INTERNAL_FLASH_H
#define __CROS_EC_CONFIG_STD_INTERNAL_FLASH_H
/*
* Standard memory-mapped flash layout:
* - RO image starts at the beginning of flash.
* - PSTATE immediately follows the RO image.
* - RW image starts at the second half of flash.
* - Protected region consists of the first half of flash (RO image + PSTATE).
* - Unprotected region consists of second half of flash (RW image).
*
* PSTATE
* |
* v
* |<-----Protected Region------>|<------Unprotected Region----->|
* |<--------RO image--------->| |<----------RW image----------->|
* 0 N/2 N
*
* This layout is used by several supported chips. Chips which do not use
* this layout MUST NOT include this header file, and must instead define
* the configs below in a chip-level header file (config_flash_layout.h).
*
* See the following page for additional image geometry discussion:
*
* https://www.chromium.org/chromium-os/ec-development/ec-image-geometry-spec
*
* TODO(crosbug.com/p/23796): Finish implementing the spec.
*/
/*
* Size of one firmware image in flash - half for RO, half for RW.
* This is NOT a globally defined config, and is only used in this file
* for convenience.
*/
#define _IMAGE_SIZE ((CONFIG_FLASH_SIZE - \
CONFIG_SHAREDLIB_SIZE) / 2)
/*
* The EC uses the one bank of flash to emulate a SPI-like write protect
* register with persistent state.
*/
#define CONFIG_FLASH_PSTATE
#define CONFIG_FW_PSTATE_SIZE CONFIG_FLASH_BANK_SIZE
#define CONFIG_FW_PSTATE_OFF (_IMAGE_SIZE - CONFIG_FW_PSTATE_SIZE)
/*
* By default, there is no shared objects library. However, if configured, the
* shared objects library will be placed after the RO image.
*/
#define CONFIG_SHAREDLIB_MEM_OFF (CONFIG_RO_MEM_OFF + \
_IMAGE_SIZE)
#define CONFIG_SHAREDLIB_STORAGE_OFF (CONFIG_RO_STORAGE_OFF + \
_IMAGE_SIZE)
#define CONFIG_SHAREDLIB_SIZE 0
#define CONFIG_RO_MEM_OFF 0
#define CONFIG_RO_STORAGE_OFF 0
#define CONFIG_RO_SIZE (_IMAGE_SIZE - CONFIG_FW_PSTATE_SIZE)
#define CONFIG_RW_MEM_OFF (CONFIG_SHAREDLIB_MEM_OFF + \
CONFIG_SHAREDLIB_SIZE)
#define CONFIG_RW_STORAGE_OFF 0
#define CONFIG_RW_SIZE _IMAGE_SIZE
#define CONFIG_EC_PROTECTED_STORAGE_OFF 0
#define CONFIG_EC_PROTECTED_STORAGE_SIZE CONFIG_RW_MEM_OFF
#define CONFIG_EC_WRITABLE_STORAGE_OFF CONFIG_RW_MEM_OFF
#define CONFIG_EC_WRITABLE_STORAGE_SIZE (CONFIG_FLASH_SIZE - \
CONFIG_EC_WRITABLE_STORAGE_OFF)
#define CONFIG_WP_STORAGE_OFF CONFIG_EC_PROTECTED_STORAGE_OFF
#define CONFIG_WP_STORAGE_SIZE CONFIG_EC_PROTECTED_STORAGE_SIZE
#endif /* __CROS_EC_CONFIG_STD_INTERNAL_FLASH_H */