From f6a52bf3374682475e92c1960c19df8e6c1ea9b2 Mon Sep 17 00:00:00 2001 From: Thibaut VARENE Date: Wed, 15 Feb 2017 11:40:06 +0100 Subject: ar71xx: Enable mtdsplit support for RB SPI NOR devices This patch enables mtdsplit for the MikroTik subtarget. It converts mach-rbspi.c to use a single "firmware" partition. Finally, it converts the SPI NOR profile to metadata images: the original combined-image format is gone, the images are now "standard" sysupgrade images with metadata appended. Note: kernel2minor apparently pads the kernel container to erase-block boundary, but this is undocumented behaviour, so we do not rely on it and call pad-to anyway. Note: in platform.sh, the boards are tested last in platform_check_image() as this should eventually become the "*)" default case when more devices switch to metadata images. Signed-off-by: Thibaut VARENE --- target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) (limited to 'target/linux/ar71xx/files/arch') diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c index b6b3338845..aeeeca6243 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c @@ -60,7 +60,6 @@ #define RB_ROUTERBOOT_OFFSET 0x0000 #define RB_BIOS_SIZE 0x1000 #define RB_SOFT_CFG_SIZE 0x1000 -#define RB_KERNEL_SIZE (2 * 1024 * 1024) /* 2MB kernel */ /* Flash partitions indexes */ enum { @@ -69,8 +68,7 @@ enum { RBSPI_PART_BIOS, RBSPI_PART_RBOOT2, RBSPI_PART_SCONF, - RBSPI_PART_KERN, - RBSPI_PART_ROOT, + RBSPI_PART_FIRMW, RBSPI_PARTS }; @@ -79,8 +77,6 @@ static struct mtd_partition rbspi_spi_partitions[RBSPI_PARTS]; /* * Setup the SPI flash partition table based on initial parsing. * The kernel can be at any aligned position and have any size. - * The size of the kernel partition is the desired RB_KERNEL_SIZE - * minus the size of the preceding partitions (128KB). */ static void __init rbspi_init_partitions(const struct rb_info *info) { @@ -114,16 +110,10 @@ static void __init rbspi_init_partitions(const struct rb_info *info) parts[RBSPI_PART_SCONF].offset = info->soft_cfg_offs; parts[RBSPI_PART_SCONF].size = RB_SOFT_CFG_SIZE; - parts[RBSPI_PART_KERN].name = "kernel"; - parts[RBSPI_PART_KERN].offset = parts[RBSPI_PART_SCONF].offset + parts[RBSPI_PART_FIRMW].name = "firmware"; + parts[RBSPI_PART_FIRMW].offset = parts[RBSPI_PART_SCONF].offset + parts[RBSPI_PART_SCONF].size; - parts[RBSPI_PART_KERN].size = RB_KERNEL_SIZE - - parts[RBSPI_PART_KERN].offset; - - parts[RBSPI_PART_ROOT].name = "rootfs"; - parts[RBSPI_PART_ROOT].offset = parts[RBSPI_PART_KERN].offset - + parts[RBSPI_PART_KERN].size; - parts[RBSPI_PART_ROOT].size = MTDPART_SIZ_FULL; + parts[RBSPI_PART_FIRMW].size = MTDPART_SIZ_FULL; } static struct flash_platform_data rbspi_spi_flash_data = { -- cgit v1.2.3