[coreboot] #107: flashrom: Display test status in -L chip listing

Uwe Hermann uwe at hermann-uwe.de
Sat Dec 6 00:02:38 CET 2008


On Fri, Dec 05, 2008 at 04:19:49AM -0000, coreboot wrote:
> #107: flashrom: Display test status in -L chip listing
> ----------------------------------+-----------------------------------------
>    Reporter:  stuge               |          Owner:  stuge        
>        Type:  enhancement         |         Status:  assigned     
>    Priority:  minor               |      Milestone:  flashrom v1.0
>   Component:  flashrom            |        Version:               
>    Keywords:  testing             |   Dependencies:               
> Patchstatus:  patch needs review  |  
> ----------------------------------+-----------------------------------------
> Changes (by stuge):
> 
>   * owner:  somebody => stuge
>   * status:  new => assigned
>   * patchstatus:  there is no patch => patch needs review



> flashrom: Display test status in -L chip listing
> 
> Looks like this:
> 
> Supported flash chips:          Tested OK operations:   Known BAD operations:
> 
> AMD Am29F002(N)BB                                       
> AMD Am29F002(N)BT               PROBE READ ERASE WRITE  
> AMD Am29F016D                                           
> AMD Am29F040B                   PROBE READ ERASE WRITE  
> AMD Am29LV040B                                          
> Atmel AT45CS1282                                        READ 
> 
> 
> Signed-off-by: Peter Stuge <peter at stuge.se>

With the small change below this is

Acked-by: Uwe Hermann <uwe at hermann-uwe.de>


The output looks nice, patch compiles and works fine.

Please post patches to the list though, trac doesn't automatically
forward them to the list -> harder and more annoying to review, IMO.

 
> Index: flashrom.c
> ===================================================================
> --- flashrom.c	(revision 3797)
> +++ flashrom.c	(working copy)
> @@ -205,14 +205,61 @@
>  	return 0;
>  }
>  
> +#define MAX(a,b) ((a)>(b)?(a):(b))
                ^       ^^  ^^  ^^
             lots of missing spaces here


> +#define POS_PRINT(x) do { pos += strlen(x); printf(x); } while (0)
> +
>  void print_supported_chips(void)
>  {
> -	int i;
> +	int okcol = 0, pos = 0;
> +	struct flashchip *f;
>  
> -	printf("Supported ROM chips:\n\n");
> +	for (f = flashchips; f->name != NULL; f++) {
> +		if (GENERIC_DEVICE_ID == f->model_id)
> +			continue;
> +		okcol = MAX(okcol, strlen(f->vendor) + 1 + strlen(f->name));
> +	}
> +	okcol = (okcol + 7) & ~7;
>  
> -	for (i = 0; flashchips[i].name != NULL; i++)
> -		printf("%s %s\n", flashchips[i].vendor, flashchips[i].name);
> +	POS_PRINT("Supported flash chips:");
> +	while (pos < okcol) {
> +		printf("\t");
> +		pos += 8 - (pos % 8);
> +	}
> +	printf("Tested OK operations:\tKnown BAD operations:\n\n");
> +
> +	for (f = flashchips; f->name != NULL; f++) {
> +		printf("%s %s", f->vendor, f->name);
> +		pos = strlen(f->vendor) + 1 + strlen(f->name);
> +		while (pos < okcol) {
> +			printf("\t");
> +			pos += 8 - (pos % 8);
> +		}
> +		if ((f->tested & TEST_OK_MASK)) {
> +			if ((f->tested & TEST_OK_PROBE))
> +				POS_PRINT("PROBE ");
> +			if ((f->tested & TEST_OK_READ))
> +				POS_PRINT("READ ");
> +			if ((f->tested & TEST_OK_ERASE))
> +				POS_PRINT("ERASE ");
> +			if ((f->tested & TEST_OK_WRITE))
> +				POS_PRINT("WRITE");
> +		}
> +		while (pos < okcol + 24) {
> +			printf("\t");
> +			pos += 8 - (pos % 8);
> +		}
> +		if ((f->tested & TEST_BAD_MASK)) {
> +			if ((f->tested & TEST_BAD_PROBE))
> +				POS_PRINT("PROBE ");
> +			if ((f->tested & TEST_BAD_READ))
> +				POS_PRINT("READ ");
> +			if ((f->tested & TEST_BAD_ERASE))
> +				POS_PRINT("ERASE ");
> +			if ((f->tested & TEST_BAD_WRITE))
> +				POS_PRINT("WRITE");
> +		}
> +		printf("\n");
> +	}
>  }
>  
>  void usage(const char *name)


Uwe.
-- 
http://www.hermann-uwe.de  | http://www.holsham-traders.de
http://www.crazy-hacks.org | http://www.unmaintained-free-software.org




More information about the coreboot mailing list