[coreboot] [PATCH] flashrom: use the read function for verifying

Harald Gutmann harald.gutmann at gmx.net
Tue Jan 22 16:10:14 CET 2008


Am Dienstag, 22. Januar 2008 15:59:28 schrieb Carl-Daniel Hailfinger:
> Flashrom did not use the read function for verifying, it used direct memory
> access instead. That fails if the flash chip is not mapped completely.
> If the read function is set in struct flashchip, use it for verification
> as well.
>
> This fixes verification of all SPI flash chips >512 kByte behind an
> IT8716F flash translation chip.
>
> Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
Acked-by: Harald Gutmann <harald.gutmann at gmx.net>

"MX25L8005 found at physical address 0xfff00000.
Flash part is MX25L8005 (1024 KB).
Flash image seems to be a legacy BIOS. Disabling checks.
Verifying flash... VERIFIED."

regards, harald
>
> Index: flashrom-big/flashrom.c
> ===================================================================
> --- flashrom-big/flashrom.c	(Revision 3069)
> +++ flashrom-big/flashrom.c	(Arbeitskopie)
> @@ -159,7 +159,11 @@
>  {
>  	int idx;
>  	int total_size = flash->total_size * 1024;
> -	volatile uint8_t *bios = flash->virtual_memory;
> +	uint8_t *buf2 = (uint8_t *) calloc(total_size, sizeof(char));
> +	if (flash->read == NULL)
> +		memcpy(buf2, (const char *)flash->virtual_memory, total_size);
> +	else
> +		flash->read(flash, buf2);
>
>  	printf("Verifying flash... ");
>
> @@ -170,7 +174,7 @@
>  		if (verbose && ((idx & 0xfff) == 0xfff))
>  			printf("0x%08x", idx);
>
> -		if (*(bios + idx) != *(buf + idx)) {
> +		if (*(buf2 + idx) != *(buf + idx)) {
>  			if (verbose) {
>  				printf("0x%08x ", idx);
>  			}






More information about the coreboot mailing list