[Skiboot] [PATCH 2/3] flash: Use blocklevel to do ECC reads

Cyril Bur cyrilbur at gmail.com
Tue Jul 5 14:31:03 AEST 2016


On Mon,  4 Jul 2016 17:46:41 +1000
Michael Neuling <mikey at neuling.org> wrote:

> From: Alistair Popple <alistair at popple.id.au>
> 
> 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 at popple.id.au>
> Signed-off-by: Michael Neuling <mikey at neuling.org>

My only concern would be that the blocklevel abstraction introduces a slowdown.
It wasn't written to be quick, simply to provide that abstraction. Mikey says
it performs fine.

Reviewed-by: Cyril Bur <cyrilbur at gmail.com>

> ---
>  core/flash.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/core/flash.c b/core/flash.c
> index 5036707..81bb59b 100644
> --- a/core/flash.c
> +++ b/core/flash.c
> @@ -573,7 +573,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;
> @@ -623,7 +623,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\n", name);
>  		goto out_free_ffs;



More information about the Skiboot mailing list