|
|
@@ -217,3 +217,39 @@
|
|
|
|
|
|
set_capacity(gd, ((u64)new->size * tr->blksize) >> 9);
|
|
|
|
|
|
+--- a/block/partitions/msdos.c
|
|
|
++++ b/block/partitions/msdos.c
|
|
|
+@@ -565,6 +565,15 @@ static void parse_minix(struct parsed_pa
|
|
|
+ #endif /* CONFIG_MINIX_SUBPARTITION */
|
|
|
+ }
|
|
|
+
|
|
|
++static void parse_fit_mbr(struct parsed_partitions *state,
|
|
|
++ sector_t offset, sector_t size, int origin)
|
|
|
++{
|
|
|
++#ifdef CONFIG_FIT_PARTITION
|
|
|
++ u32 extra_slot = 64;
|
|
|
++ (void) parse_fit_partitions(state, offset, size, &extra_slot, 1);
|
|
|
++#endif /* CONFIG_FIT_PARTITION */
|
|
|
++}
|
|
|
++
|
|
|
+ static struct {
|
|
|
+ unsigned char id;
|
|
|
+ void (*parse)(struct parsed_partitions *, sector_t, sector_t, int);
|
|
|
+@@ -576,6 +585,7 @@ static struct {
|
|
|
+ {UNIXWARE_PARTITION, parse_unixware},
|
|
|
+ {SOLARIS_X86_PARTITION, parse_solaris_x86},
|
|
|
+ {NEW_SOLARIS_X86_PARTITION, parse_solaris_x86},
|
|
|
++ {FIT_PARTITION, parse_fit_mbr},
|
|
|
+ {0, NULL},
|
|
|
+ };
|
|
|
+
|
|
|
+--- a/include/linux/msdos_partition.h
|
|
|
++++ b/include/linux/msdos_partition.h
|
|
|
+@@ -31,6 +31,7 @@ enum msdos_sys_ind {
|
|
|
+ LINUX_LVM_PARTITION = 0x8e,
|
|
|
+ LINUX_RAID_PARTITION = 0xfd, /* autodetect RAID partition */
|
|
|
+
|
|
|
++ FIT_PARTITION = 0x2e, /* U-Boot uImage.FIT */
|
|
|
+ SOLARIS_X86_PARTITION = 0x82, /* also Linux swap partitions */
|
|
|
+ NEW_SOLARIS_X86_PARTITION = 0xbf,
|
|
|
+
|