aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Warren2012-10-08 03:14:40 -0500
committerTom Rini2012-10-17 09:59:11 -0500
commite2e9b37898c4d9f7330ce256d95a37da5064e0cf (patch)
tree447fc7b40fc843d920ea42e5336f638ab7c27d3b /disk/part_dos.c
parent304b57113041bdbef00ef79b963a569abbc787f9 (diff)
downloadu-boot-e2e9b37898c4d9f7330ce256d95a37da5064e0cf.tar.gz
u-boot-e2e9b37898c4d9f7330ce256d95a37da5064e0cf.tar.xz
u-boot-e2e9b37898c4d9f7330ce256d95a37da5064e0cf.zip
disk: part_dos: print partition UUID in partition list
This information may be useful to compare against command "part uuid", or if you want to manually paste the information into the kernel command-line. Signed-off-by: Stephen Warren <swarren@nvidia.com> [trini: print_one_part / print_part_dos output strings didn't quite match before the changes] Signed-off-by: Tom Rini <trini@ti.com>
Diffstat (limited to 'disk/part_dos.c')
-rw-r--r--disk/part_dos.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/disk/part_dos.c b/disk/part_dos.c
index 513a54a094..3fe901ba1b 100644
--- a/disk/part_dos.c
+++ b/disk/part_dos.c
@@ -66,13 +66,13 @@ static inline int is_bootable(dos_partition_t *p)
66} 66}
67 67
68static void print_one_part(dos_partition_t *p, int ext_part_sector, 68static void print_one_part(dos_partition_t *p, int ext_part_sector,
69 int part_num) 69 int part_num, unsigned int disksig)
70{ 70{
71 int lba_start = ext_part_sector + le32_to_int (p->start4); 71 int lba_start = ext_part_sector + le32_to_int (p->start4);
72 int lba_size = le32_to_int (p->size4); 72 int lba_size = le32_to_int (p->size4);
73 73
74 printf("%5d\t\t%10d\t%10d\t%2x%s%s\n", 74 printf("%3d\t%-10d\t%-10d\t%08x-%02x\t%02x%s%s\n",
75 part_num, lba_start, lba_size, p->sys_ind, 75 part_num, lba_start, lba_size, disksig, part_num, p->sys_ind,
76 (is_extended(p->sys_ind) ? " Extd" : ""), 76 (is_extended(p->sys_ind) ? " Extd" : ""),
77 (is_bootable(p) ? " Boot" : "")); 77 (is_bootable(p) ? " Boot" : ""));
78} 78}
@@ -108,7 +108,7 @@ int test_part_dos (block_dev_desc_t *dev_desc)
108 */ 108 */
109static void print_partition_extended(block_dev_desc_t *dev_desc, 109static void print_partition_extended(block_dev_desc_t *dev_desc,
110 int ext_part_sector, int relative, 110 int ext_part_sector, int relative,
111 int part_num) 111 int part_num, unsigned int disksig)
112{ 112{
113 ALLOC_CACHE_ALIGN_BUFFER(unsigned char, buffer, dev_desc->blksz); 113 ALLOC_CACHE_ALIGN_BUFFER(unsigned char, buffer, dev_desc->blksz);
114 dos_partition_t *pt; 114 dos_partition_t *pt;
@@ -127,6 +127,9 @@ static void print_partition_extended(block_dev_desc_t *dev_desc,
127 return; 127 return;
128 } 128 }
129 129
130 if (!ext_part_sector)
131 disksig = le32_to_int(&buffer[DOS_PART_DISKSIG_OFFSET]);
132
130 /* Print all primary/logical partitions */ 133 /* Print all primary/logical partitions */
131 pt = (dos_partition_t *) (buffer + DOS_PART_TBL_OFFSET); 134 pt = (dos_partition_t *) (buffer + DOS_PART_TBL_OFFSET);
132 for (i = 0; i < 4; i++, pt++) { 135 for (i = 0; i < 4; i++, pt++) {
@@ -137,7 +140,7 @@ static void print_partition_extended(block_dev_desc_t *dev_desc,
137 140
138 if ((pt->sys_ind != 0) && 141 if ((pt->sys_ind != 0) &&
139 (ext_part_sector == 0 || !is_extended (pt->sys_ind)) ) { 142 (ext_part_sector == 0 || !is_extended (pt->sys_ind)) ) {
140 print_one_part(pt, ext_part_sector, part_num); 143 print_one_part(pt, ext_part_sector, part_num, disksig);
141 } 144 }
142 145
143 /* Reverse engr the fdisk part# assignment rule! */ 146 /* Reverse engr the fdisk part# assignment rule! */
@@ -155,7 +158,7 @@ static void print_partition_extended(block_dev_desc_t *dev_desc,
155 158
156 print_partition_extended(dev_desc, lba_start, 159 print_partition_extended(dev_desc, lba_start,
157 ext_part_sector == 0 ? lba_start : relative, 160 ext_part_sector == 0 ? lba_start : relative,
158 part_num); 161 part_num, disksig);
159 } 162 }
160 } 163 }
161 164
@@ -262,8 +265,8 @@ static int get_partition_info_extended (block_dev_desc_t *dev_desc, int ext_part
262 265
263void print_part_dos (block_dev_desc_t *dev_desc) 266void print_part_dos (block_dev_desc_t *dev_desc)
264{ 267{
265 printf("Partition Start Sector Num Sectors Type\n"); 268 printf("Part\tStart Sector\tNum Sectors\tUUID\t\tType\n");
266 print_partition_extended(dev_desc, 0, 0, 1); 269 print_partition_extended(dev_desc, 0, 0, 1, 0);
267} 270}
268 271
269int get_partition_info_dos (block_dev_desc_t *dev_desc, int part, disk_partition_t * info) 272int get_partition_info_dos (block_dev_desc_t *dev_desc, int part, disk_partition_t * info)