|
|
b1660c |
commit cb16e55a234b91fd42112904cff15094fbae680d
|
|
|
b1660c |
Author: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
|
|
|
b1660c |
Date: Tue Apr 3 23:08:41 2018 +0530
|
|
|
b1660c |
|
|
|
b1660c |
opal-prd: Insert powernv_flash module
|
|
|
b1660c |
|
|
|
b1660c |
Explictly load powernv_flash module on BMC based system so that we are sure
|
|
|
b1660c |
that flash device is created before starting opal-prd daemon.
|
|
|
b1660c |
|
|
|
b1660c |
Note that I have replaced pnor_available() check with is_fsp_system(). As we
|
|
|
b1660c |
want to load module on BMC system only. Also pnor_init has enough logic to
|
|
|
b1660c |
detect flash device. Hence pnor_available() becomes redundant check.
|
|
|
b1660c |
|
|
|
b1660c |
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
|
|
|
b1660c |
CC: Jeremy Kerr <jeremy.kerr@au1.ibm.com>
|
|
|
b1660c |
CC: Stewart Smith <stewart@linux.vnet.ibm.com>
|
|
|
b1660c |
Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
|
|
|
b1660c |
|
|
|
b1660c |
diff --git a/external/opal-prd/opal-prd.c b/external/opal-prd/opal-prd.c
|
|
|
b1660c |
index 5a15f1d2..bc092d18 100644
|
|
|
b1660c |
--- a/external/opal-prd/opal-prd.c
|
|
|
b1660c |
+++ b/external/opal-prd/opal-prd.c
|
|
|
b1660c |
@@ -547,6 +547,11 @@ int hservice_wakeup(u32 core, u32 mode)
|
|
|
b1660c |
return 0;
|
|
|
b1660c |
}
|
|
|
b1660c |
|
|
|
b1660c |
+static void pnor_load_module(struct opal_prd_ctx *ctx)
|
|
|
b1660c |
+{
|
|
|
b1660c |
+ insert_module("powernv_flash");
|
|
|
b1660c |
+}
|
|
|
b1660c |
+
|
|
|
b1660c |
static void ipmi_init(struct opal_prd_ctx *ctx)
|
|
|
b1660c |
{
|
|
|
b1660c |
insert_module("ipmi_devintf");
|
|
|
b1660c |
@@ -2177,7 +2182,9 @@ static int run_prd_daemon(struct opal_prd_ctx *ctx)
|
|
|
b1660c |
|
|
|
b1660c |
fixup_hinterface_table();
|
|
|
b1660c |
|
|
|
b1660c |
- if (pnor_available(&ctx->pnor)) {
|
|
|
b1660c |
+ if (!is_fsp_system()) {
|
|
|
b1660c |
+ pnor_load_module(ctx);
|
|
|
b1660c |
+
|
|
|
b1660c |
rc = pnor_init(&ctx->pnor);
|
|
|
b1660c |
if (rc) {
|
|
|
b1660c |
pr_log(LOG_ERR, "PNOR: Failed to open pnor: %m");
|