Print total size of large chips in Megabytes.
Signed-off-by: Boris Baykov <dev(a)borisbaykov.com>
---
Index: cli_common.c
===================================================================
--- cli_common.c (revision 1869)
+++ cli_common.c (working copy)
@@ -55,10 +55,23 @@
ret[strlen(ret) - 2] = '\0';
ret = realloc(ret, strlen(ret) + 1);
return ret;
}
+char *flashsize_to_text(unsigned int chip_size)
+{
+ char *ret = malloc(100);
+ if(chip_size < 1024) {
+ sprintf(ret, "%d kB", chip_size);
+ } else if(chip_size % 1024 == 0){
+ sprintf(ret, "%d MB", chip_size / 1024);
+ } else {
+ sprintf(ret, "%1.1f MB", (double)chip_size / 1024);
+ }
+ ret = realloc(ret, strlen(ret) + 1);
+ return ret;
+}
void print_chip_support_status(const struct flashchip *chip)
{
if (chip->feature_bits & FEATURE_OTP) {
msg_cdbg("This chip may contain one-time programmable memory. flashrom cannot read\n"
Index: flash.h
===================================================================
--- flash.h (revision 1869)
+++ flash.h (working copy)
@@ -295,10 +295,11 @@
*/
#define ERROR_FLASHROM_LIMIT -201
/* cli_common.c */
char *flashbuses_to_text(enum chipbustype bustype);
+char *flashsize_to_text(unsigned int chip_size);
void print_chip_support_status(const struct flashchip *chip);
/* cli_output.c */
extern int verbose_screen;
extern int verbose_logfile;
Index: flashrom.c
===================================================================
--- flashrom.c (revision 1869)
+++ flashrom.c (working copy)
@@ -1121,18 +1121,21 @@
int probe_flash(struct registered_master *mst, int startchip, struct flashctx *flash, int force)
{
const struct flashchip *chip;
enum chipbustype buses_common;
char *tmp;
+ char *tmp2;
for (chip = flashchips + startchip; chip && chip->name; chip++) {
if (chip_to_probe && strcmp(chip->name, chip_to_probe) != 0)
continue;
buses_common = mst->buses_supported & chip->bustype;
if (!buses_common)
continue;
- msg_gdbg("Probing for %s %s, %d kB: ", chip->vendor, chip->name, chip->total_size);
+ tmp2 = flashsize_to_text(chip->total_size);
+ msg_gdbg("Probing for %s %s, %s: ", chip->vendor, chip->name, tmp2);
+ free(tmp2);
if (!chip->probe && !force) {
msg_gdbg("failed! flashrom has no probe function for this flash chip.\n");
continue;
}
@@ -1202,14 +1205,16 @@
if (!flash->chip)
return -1;
+ tmp2 = flashsize_to_text(flash->chip->total_size);
tmp = flashbuses_to_text(flash->chip->bustype);
- msg_cinfo("%s %s flash chip \"%s\" (%d kB, %s) ", force ? "Assuming" : "Found",
- flash->chip->vendor, flash->chip->name, flash->chip->total_size, tmp);
+ msg_cinfo("%s %s flash chip \"%s\" (%s, %s) ", force ? "Assuming" : "Found",
+ flash->chip->vendor, flash->chip->name, tmp2, tmp);
free(tmp);
+ free(tmp2);
#if CONFIG_INTERNAL == 1
if (programmer_table[programmer].map_flash_region == physmap)
msg_cinfo("mapped at physical address 0x%0*" PRIxPTR ".\n",
PRIxPTR_WIDTH, flash->physical_memory);
else