aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2015-02-19 06:34:53 +0800
committerStewart Smith <stewart@linux.vnet.ibm.com>2015-02-19 10:40:50 +1100
commite7d1f60eb49bfd81e1fe153cece899de2542f83e (patch)
treec530c6442149dafcbc0d1e4205eeb0a1d5e8886e /include
parent10a7817fce7416a44d3683d381af1066fad315cd (diff)
downloadskiboot-e7d1f60eb49bfd81e1fe153cece899de2542f83e.zip
skiboot-e7d1f60eb49bfd81e1fe153cece899de2542f83e.tar.gz
skiboot-e7d1f60eb49bfd81e1fe153cece899de2542f83e.tar.bz2
core/flash: Add flash API
We'd like to enable access to the system PNOR, on platforms where its present. This change introduces an API for global flash operations: opal_flash_read opal_flash_erase opal_flash_write - plus device-tree bindings to expose the flash details. Since there are other components of the system that use the PNOR (NVRAM and pnor_load_resource), upcoming changes will port this these over to use the new interface. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Reviewed-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'include')
-rw-r--r--include/opal.h5
-rw-r--r--include/skiboot.h6
2 files changed, 9 insertions, 2 deletions
diff --git a/include/opal.h b/include/opal.h
index 0a57bd0..bdb0cc5 100644
--- a/include/opal.h
+++ b/include/opal.h
@@ -161,7 +161,10 @@
#define OPAL_IPMI_SEND 107
#define OPAL_IPMI_RECV 108
#define OPAL_I2C_REQUEST 109
-#define OPAL_LAST 109
+#define OPAL_FLASH_READ 110
+#define OPAL_FLASH_WRITE 111
+#define OPAL_FLASH_ERASE 112
+#define OPAL_LAST 112
/* Device tree flags */
diff --git a/include/skiboot.h b/include/skiboot.h
index 1b55638..dbc2057 100644
--- a/include/skiboot.h
+++ b/include/skiboot.h
@@ -196,12 +196,16 @@ extern void occ_pstates_init(void);
extern void slw_init(void);
extern void occ_fsp_init(void);
+/* flash support */
+struct flash_chip;
+extern int flash_register(struct flash_chip *chip, bool is_system_flash);
+extern bool flash_load_resource(enum resource_id id, void *buf, size_t *len);
+
/* NVRAM support */
extern void nvram_init(void);
extern void nvram_read_complete(bool success);
/* NVRAM on flash helper */
-struct flash_chip;
extern int flash_nvram_init(struct flash_chip *chip, uint32_t start,
uint32_t size);
/* UART stuff */