forked from Ivasoft/openwrt
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 <hacks@slashdirt.org>
This commit is contained in:
committed by
Felix Fietkau
parent
53c862705d
commit
f6a52bf337
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user