diff options
author | Michael Neuling <mikey@neuling.org> | 2015-02-20 11:37:55 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2015-02-23 13:35:49 +1100 |
commit | b86e2ae93fe9fcaa72cdea4daa840fe08d6a4b4d (patch) | |
tree | 19112b141180a23ce3f32b36e37037f81c59422f | |
parent | 3a3aa0dc511b910529c582419cb23664df7edae8 (diff) | |
download | skiboot-b86e2ae93fe9fcaa72cdea4daa840fe08d6a4b4d.zip skiboot-b86e2ae93fe9fcaa72cdea4daa840fe08d6a4b4d.tar.gz skiboot-b86e2ae93fe9fcaa72cdea4daa840fe08d6a4b4d.tar.bz2 |
capi: Add CAPI microcode read to load_resource()
Add ability to read CAPI microcode to load_resource() implementations. We use
the cfam chipid as the subid.
FSP load_resource() contains a map of cfam chipid to lid numbers.
PNOR load_resource() doesn't change, but requires a properly formatted
partition with EC values in the TOC matching the appropriate cfam chipid.
Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r-- | core/flash.c | 1 | ||||
-rw-r--r-- | hw/fsp/fsp.c | 9 | ||||
-rw-r--r-- | include/platform.h | 1 |
3 files changed, 11 insertions, 0 deletions
diff --git a/core/flash.c b/core/flash.c index 51a66c9..6fe9250 100644 --- a/core/flash.c +++ b/core/flash.c @@ -334,6 +334,7 @@ static struct { } part_name_map[] = { { RESOURCE_ID_KERNEL, RESOURCE_SUBID_NONE, "KERNEL" }, { RESOURCE_ID_INITRAMFS,RESOURCE_SUBID_NONE, "ROOTFS" }, + { RESOURCE_ID_CAPP, RESOURCE_SUBID_SUPPORTED, "CAPP" }, }; /* This mimics the hostboot SBE format */ diff --git a/hw/fsp/fsp.c b/hw/fsp/fsp.c index 21926b6..62af924 100644 --- a/hw/fsp/fsp.c +++ b/hw/fsp/fsp.c @@ -2255,6 +2255,11 @@ int fsp_fetch_data_queue(uint8_t flags, uint16_t id, uint32_t sub_id, return OPAL_SUCCESS; } +#define CAPP_IDX_VENICE_DD10 0x100ea +#define CAPP_IDX_VENICE_DD20 0x200ea +#define CAPP_IDX_MURANO_DD20 0x200ef +#define CAPP_IDX_MURANO_DD21 0x201ef + static struct { enum resource_id id; uint32_t idx; @@ -2262,6 +2267,10 @@ static struct { } fsp_lid_map[] = { { RESOURCE_ID_KERNEL, RESOURCE_SUBID_NONE, KERNEL_LID_OPAL }, { RESOURCE_ID_INITRAMFS,RESOURCE_SUBID_NONE, INITRAMFS_LID_OPAL }, + { RESOURCE_ID_CAPP, CAPP_IDX_MURANO_DD20, 0x80a02002 }, + { RESOURCE_ID_CAPP, CAPP_IDX_MURANO_DD21, 0x80a02001 }, + { RESOURCE_ID_CAPP, CAPP_IDX_VENICE_DD10, 0x80a02003 }, + { RESOURCE_ID_CAPP, CAPP_IDX_VENICE_DD20, 0x80a02004 }, }; bool fsp_load_resource(enum resource_id id, uint32_t idx, diff --git a/include/platform.h b/include/platform.h index 690772e..9c40251 100644 --- a/include/platform.h +++ b/include/platform.h @@ -25,6 +25,7 @@ struct errorlog; enum resource_id { RESOURCE_ID_KERNEL, RESOURCE_ID_INITRAMFS, + RESOURCE_ID_CAPP, }; #define RESOURCE_SUBID_NONE 0 #define RESOURCE_SUBID_SUPPORTED 1 |