cmd: mtdparts: Fix build with option ..._SHOW_NET_SIZES

That option is currently not used by any defconfig and could not be set
anymore since it became mandatory to used Kconfig when introducing new
options with U-Boot v2016.11 or commit eed921d923 ("Kconfig: Add a
whitelist of ad-hoc CONFIG options") and commit 371244cb19 ("Makefile:
Give a build error if ad-hoc CONFIG options are added").

It was also not considered when fixing build warnings in
commit 39ac34473f ("cmd_mtdparts: use 64 bits for flash size,
partition size & offset") and could probably not be compiled anyway
after commit dfe64e2c89 ("mtd: resync with Linux-3.7.1"), which
renamed some members of struct mtd_info … so it was probably broken
since then, which was U-Boot v2013.07-rc1.

However it still seems to work, see example output below:

U-Boot 2019.10-00035-g06a9b259ca-dirty (Oct 30 2019 - 14:03:44 +0100)

CPU: SAMA5D27 1G bits DDR2 SDRAM
Crystal frequency:       24 MHz
CPU clock        :      492 MHz
Master clock     :      164 MHz
Model: ***
DRAM:  128 MiB
NAND:  256 MiB
Loading Environment from NAND... OK
In:    serial@f8020000
Out:   serial@f8020000
Err:   serial@f8020000
Net:   eth0: ethernet@f8008000
Hit keys 'tt' to stop autoboot (3 seconds).
U-Boot> mtdparts

device nand0 <atmel_nand>, # parts = 8
 #: name                size            net size        offset          mask_flags
 0: bootstrap           0x00040000      0x00040000      0x00000000      1
 1: uboot               0x000c0000      0x000c0000      0x00040000      1
 2: env1                0x00040000      0x00040000      0x00100000      0
 3: env2                0x00040000      0x00040000      0x00140000      0
 4: fpga_led            0x00040000      0x00040000      0x00180000      1
 5: reserved            0x00040000      0x00040000      0x001c0000      1
 6: rootfs_rec          0x03200000      0x03200000      0x00200000      1
 7: filesystem          0x0cc00000      0x0cb80000 (!)  0x03400000      0

active partition: nand0,0 - (bootstrap) 0x00040000 @ 0x00000000

defaults:
mtdids  : nand0=atmel_nand
mtdparts: mtdparts=atmel_nand:256k(bootstrap)ro,768k(uboot)ro,256k(env1),256k(env2),256k(fpga_led)ro,256k(reserved)ro,50M(rootfs_rec)ro,-(filesystem)

Signed-off-by: Alexander Dahl <ada@thorsis.com>
This commit is contained in:
Alexander Dahl 2019-10-30 16:53:55 +01:00 committed by Tom Rini
parent 20841c52bb
commit 672c57057f
2 changed files with 11 additions and 3 deletions

View file

@ -1986,6 +1986,14 @@ config CMD_MTDPARTS_SPREAD
at least as large as the size specified in the mtdparts variable and at least as large as the size specified in the mtdparts variable and
2) each partition starts on a good block. 2) each partition starts on a good block.
config CMD_MTDPARTS_SHOW_NET_SIZES
bool "Show net size (w/o bad blocks) of partitions"
depends on CMD_MTDPARTS
help
Adds two columns to the printed partition table showing the
effective usable size of a partition, if bad blocks are taken
into account.
config CMD_REISER config CMD_REISER
bool "reiser - Access to reiserfs filesystems" bool "reiser - Access to reiserfs filesystems"
help help

View file

@ -1233,11 +1233,11 @@ static uint64_t net_part_size(struct mtd_info *mtd, struct part_info *part)
{ {
uint64_t i, net_size = 0; uint64_t i, net_size = 0;
if (!mtd->block_isbad) if (!mtd->_block_isbad)
return part->size; return part->size;
for (i = 0; i < part->size; i += mtd->erasesize) { for (i = 0; i < part->size; i += mtd->erasesize) {
if (!mtd->block_isbad(mtd, part->offset + i)) if (!mtd->_block_isbad(mtd, part->offset + i))
net_size += mtd->erasesize; net_size += mtd->erasesize;
} }
@ -1274,7 +1274,7 @@ static void print_partition_table(void)
part = list_entry(pentry, struct part_info, link); part = list_entry(pentry, struct part_info, link);
net_size = net_part_size(mtd, part); net_size = net_part_size(mtd, part);
size_note = part->size == net_size ? " " : " (!)"; size_note = part->size == net_size ? " " : " (!)";
printf("%2d: %-20s0x%08x\t0x%08x%s\t0x%08x\t%d\n", printf("%2d: %-20s0x%08llx\t0x%08x%s\t0x%08llx\t%d\n",
part_num, part->name, part->size, part_num, part->name, part->size,
net_size, size_note, part->offset, net_size, size_note, part->offset,
part->mask_flags); part->mask_flags);