summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorChristophe Lombard <clombard@linux.vnet.ibm.com>2017-06-13 14:21:21 +0200
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-06-19 14:49:29 +1000
commite50764d4f2b11fc9e9fe0b2fd0a4617b32593bfa (patch)
treef4e524e82083ea0693312b768a966b1115ecabe1 /include
parent37ea3cfdc8523cb5fbbde6e364eaed3c1c67f8bb (diff)
downloadblackbird-skiboot-e50764d4f2b11fc9e9fe0b2fd0a4617b32593bfa.tar.gz
blackbird-skiboot-e50764d4f2b11fc9e9fe0b2fd0a4617b32593bfa.zip
capi: Load capp microcode
CAPP microcode flash download and CAPP upload for PHB4. A new file 'capp.c' is created to receive common capp code for PHB3 and PHB4. Signed-off-by: Christophe Lombard <clombard@linux.vnet.ibm.com> Reviewed-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'include')
-rw-r--r--include/capp.h21
-rw-r--r--include/skiboot.h3
2 files changed, 19 insertions, 5 deletions
diff --git a/include/capp.h b/include/capp.h
index d0c28c9f..587cc3af 100644
--- a/include/capp.h
+++ b/include/capp.h
@@ -17,8 +17,12 @@
#ifndef __CAPP_H
#define __CAPP_H
+/*
+ * eyecatcher PHB3: 'CAPPLIDH' in ASCII
+ * eyecatcher PHB4: 'CAPPPSLL' in ASCII
+ */
struct capp_lid_hdr {
- be64 eyecatcher; /* 'CAPPLIDH' in ASCII */
+ be64 eyecatcher;
be64 version;
be64 lid_no;
be64 pad;
@@ -27,7 +31,7 @@ struct capp_lid_hdr {
};
struct capp_ucode_data_hdr {
- be64 eyecatcher; /* 'CAPPUCOD' in ASCII */
+ be64 eyecatcher; /* 'CAPPUCOD' in ASCII */
u8 version;
u8 reg;
u8 reserved[2];
@@ -47,7 +51,6 @@ struct capp_ucode_lid {
struct capp_ucode_data data; /* This repeats */
};
-
enum capp_reg {
apc_master_cresp = 0x1,
apc_master_uop_table = 0x2,
@@ -62,4 +65,16 @@ enum capp_reg {
apc_master_powerbus_ctrl = 0xB
};
+struct proc_chip;
+extern struct lock capi_lock;
+extern bool capp_ucode_loaded(struct proc_chip *chip, unsigned int index);
+
+extern int64_t capp_load_ucode(unsigned int chip_id, uint32_t opal_id,
+ unsigned int index, u64 lid_eyecatcher,
+ uint32_t reg_offset,
+ uint64_t apc_master_addr,
+ uint64_t apc_master_write,
+ uint64_t snp_array_addr,
+ uint64_t snp_array_write);
+
#endif /* __CAPP_H */
diff --git a/include/skiboot.h b/include/skiboot.h
index 5790f7ec..83e2c25a 100644
--- a/include/skiboot.h
+++ b/include/skiboot.h
@@ -214,9 +214,8 @@ extern void setup_reset_vector(void);
extern void probe_p7ioc(void);
extern void probe_phb3(void);
extern void probe_phb4(void);
-extern int phb3_preload_capp_ucode(void);
extern void phb3_preload_vpd(void);
-extern int phb4_preload_capp_ucode(void);
+extern int preload_capp_ucode(void);
extern void phb4_preload_vpd(void);
extern void probe_npu(void);
extern void probe_npu2(void);
OpenPOWER on IntegriCloud