aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/hack-5.4/400-block-fit-partition-parser.patch
diff options
context:
space:
mode:
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.patch176
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;