aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorAlexander Dahl <ada@thorsis.com>2019-10-30 16:53:55 +0100
committerTom Rini <trini@konsulko.com>2019-11-07 18:01:13 -0500
commit672c57057f4071ee786c5a3b94897ff6b6de39c4 (patch)
treeb247e4dcb9359993452f7a15c334d68b670d1c1a /cmd
parent20841c52bb79e17159352d1410203c8b673ed305 (diff)
downloadu-boot-672c57057f4071ee786c5a3b94897ff6b6de39c4.zip
u-boot-672c57057f4071ee786c5a3b94897ff6b6de39c4.tar.gz
u-boot-672c57057f4071ee786c5a3b94897ff6b6de39c4.tar.bz2
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 eed921d92348 ("Kconfig: Add a whitelist of ad-hoc CONFIG options") and commit 371244cb19f9 ("Makefile: Give a build error if ad-hoc CONFIG options are added"). It was also not considered when fixing build warnings in commit 39ac34473f3c ("cmd_mtdparts: use 64 bits for flash size, partition size & offset") and could probably not be compiled anyway after commit dfe64e2c8973 ("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>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/Kconfig8
-rw-r--r--cmd/mtdparts.c6
2 files changed, 11 insertions, 3 deletions
diff --git a/cmd/Kconfig b/cmd/Kconfig
index c414c5d..0eca0f7 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1986,6 +1986,14 @@ config CMD_MTDPARTS_SPREAD
at least as large as the size specified in the mtdparts variable and
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
bool "reiser - Access to reiserfs filesystems"
help
diff --git a/cmd/mtdparts.c b/cmd/mtdparts.c
index 46155ca..b40c2af 100644
--- a/cmd/mtdparts.c
+++ b/cmd/mtdparts.c
@@ -1233,11 +1233,11 @@ static uint64_t net_part_size(struct mtd_info *mtd, struct part_info *part)
{
uint64_t i, net_size = 0;
- if (!mtd->block_isbad)
+ if (!mtd->_block_isbad)
return part->size;
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;
}
@@ -1274,7 +1274,7 @@ static void print_partition_table(void)
part = list_entry(pentry, struct part_info, link);
net_size = net_part_size(mtd, part);
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,
net_size, size_note, part->offset,
part->mask_flags);