/*
 * Copyright (c) 2019 The Fuchsia Authors
 *
 * SPDX-License-Identifier:	BSD-3-Clause
 */

#include <common.h>
#include <mmc.h>
#include <zircon_uboot/partition_internal.h>

// Does not include 1 LBA for protective MBR for primary GPT copy.
#define GPT_SIZE_LBA 33

const char *zircon_abr_partition_name = "durable_boot";

const zircon_partition_data_t zircon_partition_map[] = {
	{
		.name = "bootloader",
		.type = ZIRCON_PART_TYPE_BOOTLOADER,
		.prioritize_over_gpt = true,
		.fastboot_locked_access = ZIRCON_PARTITION_ACCESS_FLAG_WRITE,

		// Only for reading
		.hw_part = MMC_PART_BOOT0,
		.lba_offset = 1, // skip boot_info
	},
	{
		.name = "bootloader_0",
		.type = ZIRCON_PART_TYPE_RAW_EMMC,
		.prioritize_over_gpt = true,
		.hw_part = MMC_PART_BOOT0,
		.lba_offset = 1, // skip boot_info
	},
	{
		.name = "bootloader_1",
		.type = ZIRCON_PART_TYPE_RAW_EMMC,
		.prioritize_over_gpt = true,
		.hw_part = MMC_PART_BOOT1,
		.lba_offset = 1, // skip boot_info
	},
	{
		.name = "boot_info_0",
		.type = ZIRCON_PART_TYPE_RAW_EMMC,
		.prioritize_over_gpt = true,
		.hw_part = MMC_PART_BOOT0,
		.lba_offset = 0,
		.lba_size = 1,
	},
	{
		.name = "boot_info_1",
		.type = ZIRCON_PART_TYPE_RAW_EMMC,
		.prioritize_over_gpt = true,
		.hw_part = MMC_PART_BOOT1,
		.lba_offset = 0,
		.lba_size = 1,
	},
	{
		.name = "boot0",
		.type = ZIRCON_PART_TYPE_RAW_EMMC,
		.prioritize_over_gpt = true,
		.hw_part = MMC_PART_BOOT0,
	},
	{
		.name = "boot1",
		.type = ZIRCON_PART_TYPE_RAW_EMMC,
		.prioritize_over_gpt = true,
		.hw_part = MMC_PART_BOOT1,
	},
	{
		.name = "gpt",
		.type = ZIRCON_PART_TYPE_GPT,
		.prioritize_over_gpt = true,

		// Only for reading / erasing
		.hw_part = MMC_PART_USER,
		.lba_offset = 0,
		.lba_size = GPT_SIZE_LBA + 1, // includes protective MBR
	},
	{
		.name = "gpt_primary",
		.type = ZIRCON_PART_TYPE_RAW_EMMC,
		.prioritize_over_gpt = true,
		.hw_part = MMC_PART_USER,
		.lba_offset = 0,
		.lba_size = GPT_SIZE_LBA + 1, // includes protective MBR
	},
	{
		.name = "gpt_backup",
		.type = ZIRCON_PART_TYPE_RAW_EMMC,
		.prioritize_over_gpt = true,
		.hw_part = MMC_PART_USER,
		.lba_offset = -GPT_SIZE_LBA,
		.lba_size = GPT_SIZE_LBA,
	},
	// We'll use the GPT info for these partitions, just defined here to
	// indicate write-while-locked is OK.
	{
		// Only erase for durable_boot to reset A/B/R metadata. Changing
		// state otherwise should use calls like `set_active` instead of direct
		// writes.
		.name = "durable_boot",
		.fastboot_locked_access = ZIRCON_PARTITION_ACCESS_FLAG_ERASE,
	},
	{
		.name = "bootloader_a",
		.fastboot_locked_access = ZIRCON_PARTITION_ACCESS_FLAG_WRITE,
	},
	{
		.name = "bootloader_b",
		.fastboot_locked_access = ZIRCON_PARTITION_ACCESS_FLAG_WRITE,
	},
	{
		.name = "bootloader_r",
		.fastboot_locked_access = ZIRCON_PARTITION_ACCESS_FLAG_WRITE,
	},
	{
		.name = "zircon_a",
		.fastboot_locked_access = ZIRCON_PARTITION_ACCESS_FLAG_WRITE,
	},
	{
		.name = "zircon_b",
		.fastboot_locked_access = ZIRCON_PARTITION_ACCESS_FLAG_WRITE,
	},
	{
		.name = "zircon_r",
		.fastboot_locked_access = ZIRCON_PARTITION_ACCESS_FLAG_WRITE,
	},
	{
		.name = "vbmeta_a",
		.fastboot_locked_access = ZIRCON_PARTITION_ACCESS_FLAG_WRITE,
	},
	{
		.name = "vbmeta_b",
		.fastboot_locked_access = ZIRCON_PARTITION_ACCESS_FLAG_WRITE,
	},
	{
		.name = "vbmeta_r",
		.fastboot_locked_access = ZIRCON_PARTITION_ACCESS_FLAG_WRITE,
	},
	{
		.name = "fvm",
		.fastboot_locked_access = ZIRCON_PARTITION_ACCESS_FLAG_WRITE,
	}
};

const size_t zircon_partition_map_count = ARRAY_SIZE(zircon_partition_map);
