diff options
Diffstat (limited to 'target/linux/generic/hack-5.4/400-block-fit-partition-parser.patch')
-rw-r--r-- | target/linux/generic/hack-5.4/400-block-fit-partition-parser.patch | 176 |
1 files changed, 0 insertions, 176 deletions
diff --git a/target/linux/generic/hack-5.4/400-block-fit-partition-parser.patch b/target/linux/generic/hack-5.4/400-block-fit-partition-parser.patch deleted file mode 100644 index 6b3267ef80..0000000000 --- a/target/linux/generic/hack-5.4/400-block-fit-partition-parser.patch +++ /dev/null @@ -1,176 +0,0 @@ ---- a/block/partitions/Kconfig -+++ b/block/partitions/Kconfig -@@ -101,6 +101,13 @@ config ATARI_PARTITION - Say Y here if you would like to use hard disks under Linux which - were partitioned under the Atari OS. - -+config FIT_PARTITION -+ bool "Flattened-Image-Tree (FIT) partition support" if PARTITION_ADVANCED -+ default n -+ help -+ Say Y here if your system needs to mount the filesystem part of -+ a Flattened-Image-Tree (FIT) image commonly used with Das U-Boot. -+ - config IBM_PARTITION - bool "IBM disk label and partition support" - depends on PARTITION_ADVANCED && S390 ---- a/block/partitions/Makefile -+++ b/block/partitions/Makefile -@@ -9,6 +9,7 @@ obj-$(CONFIG_ACORN_PARTITION) += acorn.o - obj-$(CONFIG_AMIGA_PARTITION) += amiga.o - obj-$(CONFIG_ATARI_PARTITION) += atari.o - obj-$(CONFIG_AIX_PARTITION) += aix.o -+obj-$(CONFIG_FIT_PARTITION) += fit.o - obj-$(CONFIG_CMDLINE_PARTITION) += cmdline.o - obj-$(CONFIG_MAC_PARTITION) += mac.o - obj-$(CONFIG_LDM_PARTITION) += ldm.o ---- a/drivers/mtd/ubi/block.c -+++ b/drivers/mtd/ubi/block.c -@@ -396,7 +396,7 @@ int ubiblock_create(struct ubi_volume_in - dev->leb_size = vi->usable_leb_size; - - /* Initialize the gendisk of this ubiblock device */ -- gd = alloc_disk(1); -+ gd = alloc_disk(0); - if (!gd) { - pr_err("UBI: block: alloc_disk failed\n"); - ret = -ENODEV; -@@ -413,6 +413,7 @@ int ubiblock_create(struct ubi_volume_in - goto out_put_disk; - } - gd->private_data = dev; -+ gd->flags |= GENHD_FL_EXT_DEVT; - sprintf(gd->disk_name, "ubiblock%d_%d", dev->ubi_num, dev->vol_id); - set_capacity(gd, disk_capacity); - dev->gd = gd; ---- a/block/partition-generic.c -+++ b/block/partition-generic.c -@@ -18,6 +18,10 @@ - #include <linux/ctype.h> - #include <linux/genhd.h> - #include <linux/blktrace_api.h> -+#ifdef CONFIG_FIT_PARTITION -+#include <linux/root_dev.h> -+#endif -+ - - #include "partitions/check.h" - -@@ -180,6 +184,18 @@ ssize_t part_fail_store(struct device *d - } - #endif - -+static ssize_t part_name_show(struct device *dev, -+ struct device_attribute *attr, char *buf) -+{ -+ struct hd_struct *p = dev_to_part(dev); -+ -+ if (p->info && p->info->volname) -+ return sprintf(buf, "%s\n", p->info->volname); -+ -+ buf[0] = '\0'; -+ return 0; -+} -+ - static DEVICE_ATTR(partition, 0444, part_partition_show, NULL); - static DEVICE_ATTR(start, 0444, part_start_show, NULL); - static DEVICE_ATTR(size, 0444, part_size_show, NULL); -@@ -188,6 +204,7 @@ static DEVICE_ATTR(alignment_offset, 044 - static DEVICE_ATTR(discard_alignment, 0444, part_discard_alignment_show, NULL); - static DEVICE_ATTR(stat, 0444, part_stat_show, NULL); - static DEVICE_ATTR(inflight, 0444, part_inflight_show, NULL); -+static DEVICE_ATTR(name, 0444, part_name_show, NULL); - #ifdef CONFIG_FAIL_MAKE_REQUEST - static struct device_attribute dev_attr_fail = - __ATTR(make-it-fail, 0644, part_fail_show, part_fail_store); -@@ -202,6 +219,7 @@ static struct attribute *part_attrs[] = - &dev_attr_discard_alignment.attr, - &dev_attr_stat.attr, - &dev_attr_inflight.attr, -+ &dev_attr_name.attr, - #ifdef CONFIG_FAIL_MAKE_REQUEST - &dev_attr_fail.attr, - #endif -@@ -634,6 +652,10 @@ rescan: - if (state->parts[p].flags & ADDPART_FLAG_RAID) - md_autodetect_dev(part_to_dev(part)->devt); - #endif -+#ifdef CONFIG_FIT_PARTITION -+ if ((state->parts[p].flags & ADDPART_FLAG_ROOTDEV) && ROOT_DEV == 0) -+ ROOT_DEV = part_to_dev(part)->devt; -+#endif - } - free_partitions(state); - return 0; ---- a/block/partitions/check.c -+++ b/block/partitions/check.c -@@ -33,6 +33,7 @@ - #include "ibm.h" - #include "ultrix.h" - #include "efi.h" -+#include "fit.h" - #include "karma.h" - #include "sysv68.h" - #include "cmdline.h" -@@ -73,6 +74,9 @@ static int (*check_part[])(struct parsed - #ifdef CONFIG_EFI_PARTITION - efi_partition, /* this must come before msdos */ - #endif -+#ifdef CONFIG_FIT_PARTITION -+ fit_partition, -+#endif - #ifdef CONFIG_SGI_PARTITION - sgi_partition, - #endif ---- a/include/linux/genhd.h -+++ b/include/linux/genhd.h -@@ -614,6 +614,7 @@ struct unixware_disklabel { - #define ADDPART_FLAG_NONE 0 - #define ADDPART_FLAG_RAID 1 - #define ADDPART_FLAG_WHOLEDISK 2 -+#define ADDPART_FLAG_ROOTDEV 4 - - extern int blk_alloc_devt(struct hd_struct *part, dev_t *devt); - extern void blk_free_devt(dev_t devt); ---- /dev/null -+++ b/block/partitions/fit.h -@@ -0,0 +1,3 @@ -+/* SPDX-License-Identifier: GPL-2.0-only */ -+int fit_partition(struct parsed_partitions *); -+int parse_fit_partitions(struct parsed_partitions *state, u64 start_sector, u64 nr_sectors, int *slot, int add_remain); ---- a/block/partitions/efi.c -+++ b/block/partitions/efi.c -@@ -681,6 +681,9 @@ int efi_partition(struct parsed_partitio - gpt_entry *ptes = NULL; - u32 i; - unsigned ssz = bdev_logical_block_size(state->bdev) / 512; -+#ifdef CONFIG_FIT_PARTITION -+ u32 extra_slot = 64; -+#endif - - if (!find_valid_gpt(state, &gpt, &ptes) || !gpt || !ptes) { - kfree(gpt); -@@ -722,6 +725,11 @@ int efi_partition(struct parsed_partitio - label_count++; - } - state->parts[i + 1].has_info = true; -+#ifdef CONFIG_FIT_PARTITION -+ /* If this is a U-Boot FIT volume it may have subpartitions */ -+ if (!efi_guidcmp(ptes[i].partition_type_guid, PARTITION_LINUX_FIT_GUID)) -+ (void) parse_fit_partitions(state, start * ssz, size * ssz, &extra_slot, 1); -+#endif - } - kfree(ptes); - kfree(gpt); ---- a/block/partitions/efi.h -+++ b/block/partitions/efi.h -@@ -52,6 +52,9 @@ - #define PARTITION_LINUX_LVM_GUID \ - EFI_GUID( 0xe6d6d379, 0xf507, 0x44c2, \ - 0xa2, 0x3c, 0x23, 0x8f, 0x2a, 0x3d, 0xf9, 0x28) -+#define PARTITION_LINUX_FIT_GUID \ -+ EFI_GUID( 0xcae9be83, 0xb15f, 0x49cc, \ -+ 0x86, 0x3f, 0x08, 0x1b, 0x74, 0x4a, 0x2d, 0x93) - - typedef struct _gpt_header { - __le64 signature; |