diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2011-07-25 16:22:38 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2011-07-28 16:25:20 -0500 |
commit | d7e9478f1de907b1b3d4923b507964222cb224fe (patch) | |
tree | e33c23c92e29eec270a7738c6286c03983584f23 /src/include/usr/pnor | |
parent | 8d82f5f4dde24bb6f944607c59d314b9f5003ae9 (diff) | |
download | talos-hostboot-d7e9478f1de907b1b3d4923b507964222cb224fe.tar.gz talos-hostboot-d7e9478f1de907b1b3d4923b507964222cb224fe.zip |
PNOR Resource Provider (RTC:3387)
Change-Id: Ifa47ad581c7d403b927708497b565d858b31ee0f
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/213
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Tested-by: Jenkins Server
Diffstat (limited to 'src/include/usr/pnor')
-rw-r--r-- | src/include/usr/pnor/pnor_reasoncodes.H | 19 | ||||
-rw-r--r-- | src/include/usr/pnor/pnorif.H | 74 |
2 files changed, 93 insertions, 0 deletions
diff --git a/src/include/usr/pnor/pnor_reasoncodes.H b/src/include/usr/pnor/pnor_reasoncodes.H new file mode 100644 index 000000000..48ba21c00 --- /dev/null +++ b/src/include/usr/pnor/pnor_reasoncodes.H @@ -0,0 +1,19 @@ +#ifndef __PNOR_REASONCODES_H +#define __PNOR_REASONCODES_H + +#include <hbotcompid.H> + +namespace PNOR +{ + enum PNORModuleId + { + PNORRP_WAITFORMESSAGE = 0x01, + }; + + enum PNORReasonCode + { + INVALID_MESSAGE = PNOR_COMP_ID | 0x01, + }; +}; + +#endif diff --git a/src/include/usr/pnor/pnorif.H b/src/include/usr/pnor/pnorif.H new file mode 100644 index 000000000..1b551d8ee --- /dev/null +++ b/src/include/usr/pnor/pnorif.H @@ -0,0 +1,74 @@ +#ifndef __PNOR_PNORIF_H +#define __PNOR_PNORIF_H + +#include <stdint.h> +#include <builtins.h> + +namespace PNOR +{ + +/** + * PNOR Sections + */ +enum SectionId +{ + TOC, /**< Table of Contents */ + GLOBAL_DATA, /**< Global Data */ + SBE_IPL, /**< Self-Boot Enginer IPL image */ + HB_BASE_CODE, /**< Hostboot Base Image */ + HB_DATA, /**< Hostboot Data */ + HB_ERRLOGS, /**< Hostboot Error log Repository */ + HB_EXT_CODE, /**< Hostboot Extended Image */ + HB_RUNTIME, /**< Hostboot Runtime Image */ + PAYLOAD, /**< HAL/OPAL */ + PFW_LITE_CODE, /**< PFW-lite */ + OCC_CODE, /**< OCC Code Image */ + KVM_PART_INFO, /**< KVM Partition Information */ + CODE_UPDATE, /**< Code Update Overhead */ + NUM_SECTIONS, /**< Number of defined sections */ + + FIRST_SECTION = TOC, /**< First section (for looping) */ + LAST_SECTION = CODE_UPDATE, /**< Last section (for looping) */ + INVALID_SECTION = NUM_SECTIONS, /**< Used for error cases, initialization */ +}; + +/** + * Information about a section of PNOR + */ +struct SectionInfo_t +{ + SectionId id; /**< Identifier for this section */ + const char* name; /**< Name of the section */ + uint64_t vaddr; /**< Virtual address for the start of the section */ + uint64_t size; /**< Actual size of content in bytes */ + bool eccProtected; /**< Section is ECC protected */ +}; + +/** + * Select a side of flash to access + */ +enum SideSelect +{ + SIDE_A = 0xA, /**< A-side of flash */ + SIDE_B = 0xB, /**< B-side of flash */ + SIDELESS = 0xF, /**< Sideless data */ +}; + + + +/** + * @brief Return the size and address of a given section of PNOR data + * + * @param[in] i_section PNOR section + * @param[in] i_side Side select + * @param[out] o_info Location and size information + * + * @return size_t Offset of section in bytes + */ +void getSectionInfo( SectionId i_section, + SideSelect i_side, + SectionInfo_t& o_info ); + + +} +#endif |