aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--external/pflash/pflash.c4
-rw-r--r--libflash/libflash.c6
-rw-r--r--libflash/libflash.h3
-rw-r--r--libflash/test/test-flash.c2
-rw-r--r--platforms/astbmc/pnor.c2
-rw-r--r--platforms/rhesus/rhesus.c2
6 files changed, 12 insertions, 7 deletions
diff --git a/external/pflash/pflash.c b/external/pflash/pflash.c
index 0d2d669..5c10037 100644
--- a/external/pflash/pflash.c
+++ b/external/pflash/pflash.c
@@ -434,7 +434,7 @@ static void flash_access_setup_bmc(bool use_lpc, bool need_write)
}
/* Open flash chip */
- rc = flash_init(fl_ctrl, &bl);
+ rc = flash_init(fl_ctrl, &bl, NULL);
if (rc) {
fprintf(stderr, "Failed to open flash chip\n");
exit(1);
@@ -493,7 +493,7 @@ static void flash_access_setup_pnor(bool use_lpc, bool use_sfc, bool need_write)
#endif
/* Open flash chip */
- rc = flash_init(fl_ctrl, &bl);
+ rc = flash_init(fl_ctrl, &bl, NULL);
if (rc) {
fprintf(stderr, "Failed to open flash chip\n");
exit(1);
diff --git a/libflash/libflash.c b/libflash/libflash.c
index 90ae653..831bdd4 100644
--- a/libflash/libflash.c
+++ b/libflash/libflash.c
@@ -798,7 +798,8 @@ static int flash_get_info(struct blocklevel_device *bl, const char **name,
return 0;
}
-int flash_init(struct spi_flash_ctrl *ctrl, struct blocklevel_device **bl)
+int flash_init(struct spi_flash_ctrl *ctrl, struct blocklevel_device **bl,
+ struct flash_chip **flash_chip)
{
struct flash_chip *c;
int rc;
@@ -842,6 +843,9 @@ bail:
c->bl.flags = WRITE_NEED_ERASE;
*bl = &(c->bl);
+ if (flash_chip)
+ *flash_chip = c;
+
return 0;
}
diff --git a/libflash/libflash.h b/libflash/libflash.h
index f3973ab..fa5143a 100644
--- a/libflash/libflash.h
+++ b/libflash/libflash.h
@@ -45,7 +45,8 @@ extern bool libflash_debug;
struct flash_chip;
struct spi_flash_ctrl;
-int flash_init(struct spi_flash_ctrl *ctrl, struct blocklevel_device **bl);
+int flash_init(struct spi_flash_ctrl *ctrl, struct blocklevel_device **bl,
+ struct flash_chip **flash_chip);
void flash_exit(struct blocklevel_device *bl);
/* libflash sets the 4b mode automatically based on the flash
diff --git a/libflash/test/test-flash.c b/libflash/test/test-flash.c
index cf2b3a5..c93aef5 100644
--- a/libflash/test/test-flash.c
+++ b/libflash/test/test-flash.c
@@ -378,7 +378,7 @@ int main(void)
memset(sim_image, 0xff, sim_image_sz);
test = malloc(0x10000 * 2);
- rc = flash_init(&sim_ctrl, &bl);
+ rc = flash_init(&sim_ctrl, &bl, NULL);
if (rc) {
ERR("flash_init failed with err %d\n", rc);
exit(1);
diff --git a/platforms/astbmc/pnor.c b/platforms/astbmc/pnor.c
index 2cd57c6..74353ea 100644
--- a/platforms/astbmc/pnor.c
+++ b/platforms/astbmc/pnor.c
@@ -46,7 +46,7 @@ int pnor_init(void)
goto fail;
}
- rc = flash_init(pnor_ctrl, &bl);
+ rc = flash_init(pnor_ctrl, &bl, NULL);
if (rc) {
prerror("PLAT: Failed to open init PNOR driver\n");
goto fail;
diff --git a/platforms/rhesus/rhesus.c b/platforms/rhesus/rhesus.c
index b597ba0..2131ec0 100644
--- a/platforms/rhesus/rhesus.c
+++ b/platforms/rhesus/rhesus.c
@@ -129,7 +129,7 @@ static int rhesus_pnor_init(void)
prerror("PLAT: Failed to open PNOR flash controller\n");
goto fail;
}
- rc = flash_init(pnor_ctrl, &bl);
+ rc = flash_init(pnor_ctrl, &bl, NULL);
if (rc) {
prerror("PLAT: Failed to open init PNOR driver\n");
goto fail;