aboutsummaryrefslogtreecommitdiff
path: root/core/flash.c
diff options
context:
space:
mode:
authorAlistair Popple <alistair@popple.id.au>2016-07-26 13:49:35 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2016-10-11 14:44:18 +1100
commitd4a75dc289f268002339cab75a6f4a1d11fcc466 (patch)
tree29cc758819aa83f4fbec6517483999d9cb46f38a /core/flash.c
parentadebaf3e0e621240c2041ed8f1ce91f70795cfa9 (diff)
downloadskiboot-d4a75dc289f268002339cab75a6f4a1d11fcc466.zip
skiboot-d4a75dc289f268002339cab75a6f4a1d11fcc466.tar.gz
skiboot-d4a75dc289f268002339cab75a6f4a1d11fcc466.tar.bz2
flash: Use blocklevel to do ECC reads
flash_read_corrected() assumes the passed blocklevel device is an actual flash device. However the blocklevel flash abstraction supports automatically reading ECC protected data so use that instead. Signed-off-by: Alistair Popple <alistair@popple.id.au> [Cyril added true to last param to ffs_init() in flash_register()] [Cyril rebased onto 46c006f core/console: use char literals instead of numeric] Signed-off-by: Cyril Bur <cyril.bur@au1.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'core/flash.c')
-rw-r--r--core/flash.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/core/flash.c b/core/flash.c
index de7895c..2f81aff 100644
--- a/core/flash.c
+++ b/core/flash.c
@@ -302,7 +302,7 @@ int flash_register(struct blocklevel_device *bl)
list_add(&flashes, &flash->list);
- rc = ffs_init(0, flash->size, bl, &ffs, 0);
+ rc = ffs_init(0, flash->size, bl, &ffs, 1);
if (rc) {
/**
* @fwts-label NoFFS
@@ -553,7 +553,7 @@ static int flash_load_resource(enum resource_id id, uint32_t subid,
goto out_unlock;
}
- rc = ffs_init(0, flash->size, flash->bl, &ffs, 0);
+ rc = ffs_init(0, flash->size, flash->bl, &ffs, 1);
if (rc) {
prerror("FLASH: Can't open ffs handle\n");
goto out_unlock;
@@ -603,7 +603,7 @@ static int flash_load_resource(enum resource_id id, uint32_t subid,
goto out_free_ffs;
}
- rc = flash_read_corrected(flash->bl, part_start, buf, size, ecc);
+ rc = blocklevel_read(flash->bl, part_start, buf, size);
if (rc) {
prerror("FLASH: failed to read %s partition, rc %d\n", name, rc);
goto out_free_ffs;