tizen: add new gpt version and add gpt version headers
authorInha Song <ideal.song@samsung.com>
Thu, 6 Nov 2014 02:37:36 +0000 (11:37 +0900)
committerJaehoon Chung <jh80.chung@samsung.com>
Fri, 8 Apr 2016 02:12:03 +0000 (11:12 +0900)
This patch adds new gpt version and moves gpt data into
separated headers.
In order to be able to gpt version switch, make gpt_vxx.h
files that has the partition information.

- include/samsung/gpt_v08.h
- include/samsung/gpt_v13.h

Change-Id: I33870a54703a07468f17b0f0d7cf43e563409e65
Signed-off-by: Inha Song <ideal.song@samsung.com>
tizen: config: enable platform command and platform setup

This patch enables "platform" command and adds multiple
platform setups to tizen environment.
At this stage - there are available three setups:
- trats2 pit v8
- trats2 pit v13 - chosen
- odroidu3 Tizen v2.x - chosen
- odroidu3 Tizen v3.0 - chosen

The chosen setup - is the default for each platform,
and is set as an active after first boot.
This should be changed manually if another setup is required.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
samsung: gpt: fix CSA partition name
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
include/samsung/gpt_v08.h [new file with mode: 0644]
include/samsung/gpt_v13.h [new file with mode: 0644]
include/samsung/mbr_v2x.h [new file with mode: 0644]
include/samsung/mbr_v30.h [new file with mode: 0644]
include/samsung/platform_setup.h [new file with mode: 0644]

diff --git a/include/samsung/gpt_v08.h b/include/samsung/gpt_v08.h
new file mode 100644 (file)
index 0000000..a02271b
--- /dev/null
@@ -0,0 +1,58 @@
+#ifndef _TIZEN_GPT_V08_H_
+#define _TIZEN_GPT_V08_H_
+
+/*
+ * Platform: trats
+ * Boards: trats/trats2
+ * version: Pit v8
+ *
+ * Bootable media layout:
+ * dev:    SD   eMMC(part boot)
+ * BL1      1    0
+ * BL2     31   30
+ * UBOOT   63   62
+ * TZSW  2111 2110
+ * ENV   2560 2560(part user)
+ *
+ * MBR Primary partiions:
+ * Num Name   Size  Offset
+ * 1.  BOOT:  100MiB 2MiB
+ * 2.  ROOT:  3GiB
+ * 3.  DATA:  3GiB
+ * 4.  UMS:   -
+*/
+
+/* Tizen - partitions definitions */
+#define PARTS_V8_CSA           "csa-mmc"
+#define PARTS_V8_BOOT          "boot"
+#define PARTS_V8_QBOOT         "qboot"
+#define PARTS_V8_CSC           "csc"
+#define PARTS_V8_ROOT          "platform"
+#define PARTS_V8_DATA          "data"
+#define PARTS_V8_UMS           "ums"
+
+#define PARTS_TRATS2_GPT_V08 \
+       "uuid_disk=${uuid_gpt_disk};" \
+       "name="PARTS_V8_CSA",start=5MiB,size=8MiB,uuid=${uuid_gpt_"PARTS_V8_CSA"};" \
+       "name="PARTS_V8_BOOT",size=60MiB,uuid=${uuid_gpt_"PARTS_V8_BOOT"};" \
+       "name="PARTS_V8_QBOOT",size=100MiB,uuid=${uuid_gpt_"PARTS_V8_QBOOT"};" \
+       "name="PARTS_V8_CSC",size=150MiB,uuid=${uuid_gpt_"PARTS_V8_CSC"};" \
+       "name="PARTS_V8_ROOT",size=1536MiB,uuid=${uuid_gpt_"PARTS_V8_ROOT"};" \
+       "name="PARTS_V8_DATA",size=3000MiB,uuid=${uuid_gpt_"PARTS_V8_DATA"};" \
+       "name="PARTS_V8_UMS",size=-,uuid=${uuid_gpt_"PARTS_V8_UMS"}\0" \
+
+#define DFU_ALT_SYSTEM_TRATS2_GPT_V08 \
+       "/uImage ext4 0 2;" \
+       "/zImage ext4 0 2;" \
+       "/Image.itb ext4 0 2;" \
+       "/modem.bin ext4 0 2;" \
+       "/exynos4412-trats2.dtb ext4 0 2;" \
+       ""PARTS_V8_CSA" part 0 1;" \
+       ""PARTS_V8_BOOT" part 0 2;" \
+       ""PARTS_V8_QBOOT" part 0 3;" \
+       ""PARTS_V8_CSC" part 0 4;" \
+       ""PARTS_V8_ROOT" part 0 5;" \
+       ""PARTS_V8_DATA" part 0 6;" \
+       ""PARTS_V8_UMS" part 0 7\0"
+
+#endif /* _TIZEN_GPT_V08_H_ */
diff --git a/include/samsung/gpt_v13.h b/include/samsung/gpt_v13.h
new file mode 100644 (file)
index 0000000..eb7a4ae
--- /dev/null
@@ -0,0 +1,69 @@
+#ifndef _TIZEN_GPT_V13_H_
+#define _TIZEN_GPT_V13_H_
+
+/**
+ * Platform: trats
+ * Boards: trats/trats2
+ * version: Pit v13
+*/
+
+/* Tizen - partitions definitions */
+#define PARTS_V13_CSA          "csa"
+#define PARTS_V13_BOOT         "boot"
+#define PARTS_V13_QBOOT                "qboot"
+#define PARTS_V13_CSC          "csc"
+#define PARTS_V13_ROOT         "platform"
+#define PARTS_V13_DATA         "data"
+#define PARTS_V13_UMS          "ums"
+#define PARTS_V13_EFS          "EFS"
+#define PARTS_V13_RECOVERY     "recovery"
+#define PARTS_V13_MODEM                "modem"
+#define PARTS_V13_RESERVED3    "reserved3"
+#define PARTS_V13_RAMDISK1     "ramdisk1"
+#define PARTS_V13_RAMDISK2     "ramdisk2"
+#define PARTS_V13_MODULE       "module"
+#define PARTS_V13_FOTA         "fota"
+#define PARTS_V13_ROOTFS       "rootfs"
+#define PARTS_V13_SYSDATA      "system-data"
+#define PARTS_V13_USER         "user"
+
+#define PARTS_TRATS2_GPT_V13 \
+       "uuid_disk=${uuid_gpt_disk};" \
+       "name="PARTS_V13_EFS",start=12MiB,size=20MiB,uuid=${uuid_gpt_"PARTS_V13_EFS"};" \
+       "name="PARTS_V13_BOOT",size=14MiB,uuid=${uuid_gpt_"PARTS_V13_BOOT"};" \
+       "name="PARTS_V13_RECOVERY",size=37MiB,uuid=${uuid_gpt_"PARTS_V13_RECOVERY"};" \
+       "name="PARTS_V13_CSA",size=14MiB,uuid=${uuid_gpt_"PARTS_V13_CSA"};" \
+       "name="PARTS_V13_MODEM",size=86MiB,uuid=${uuid_gpt_"PARTS_V13_MODEM"};" \
+       "name="PARTS_V13_RESERVED3",size=14MiB,uuid=${uuid_gpt_"PARTS_V13_RESERVED3"};" \
+       "name="PARTS_V13_RAMDISK1",size=20MiB,uuid=${uuid_gpt_"PARTS_V13_RAMDISK1"};" \
+       "name="PARTS_V13_RAMDISK2",size=20MiB,uuid=${uuid_gpt_"PARTS_V13_RAMDISK2"};" \
+       "name="PARTS_V13_MODULE",size=20MiB,uuid=${uuid_gpt_"PARTS_V13_MODULE"};" \
+       "name="PARTS_V13_FOTA",size=10MiB,uuid=${uuid_gpt_"PARTS_V13_FOTA"};" \
+       "name="PARTS_V13_ROOTFS",size=3000MiB,uuid=${uuid_gpt_"PARTS_V13_ROOTFS"};" \
+       "name="PARTS_V13_SYSDATA",size=512MiB,uuid=${uuid_gpt_"PARTS_V13_SYSDATA"};" \
+       "name="PARTS_V13_CSC",size=150MiB,uuid=${uuid_gpt_"PARTS_V13_CSC"};" \
+       "name="PARTS_V13_USER",size=-,uuid=${uuid_gpt_"PARTS_V13_USER"}\0" \
+
+#define DFU_ALT_SYSTEM_TRATS2_GPT_V13 \
+       "/uImage ext4 0 2;" \
+       "/zImage ext4 0 2;" \
+       "/Image.itb ext4 0 2;" \
+       "/exynos4412-trats2.dtb ext4 0 2;" \
+       "/modem.bin ext4 0 5;" \
+       "/modem_cdma.bin ext4 0 5;" \
+       ""PARTS_V13_EFS" part 0 1;" \
+       ""PARTS_V13_BOOT" part 0 2;" \
+       ""PARTS_V13_RECOVERY" part 0 3;" \
+       "csa-mmc part 0 4;" \
+       ""PARTS_V13_MODEM" part 0 5;" \
+       ""PARTS_V13_RESERVED3" part 0 6;" \
+       ""PARTS_V13_RAMDISK1" part 0 7;" \
+       "ramdisk-recovery part 0 8;" \
+       ""PARTS_V13_MODULE" part 0 9;" \
+       ""PARTS_V13_FOTA" part 0 10;" \
+       ""PARTS_V13_ROOTFS" part 0 11;" \
+       ""PARTS_V13_SYSDATA" part 0 12;" \
+       ""PARTS_V13_CSC" part 0 13;" \
+       ""PARTS_V13_USER" part 0 14\0"
+
+#endif /* _TIZEN_GPT_V13_H_ */
diff --git a/include/samsung/mbr_v2x.h b/include/samsung/mbr_v2x.h
new file mode 100644 (file)
index 0000000..8a77545
--- /dev/null
@@ -0,0 +1,42 @@
+#ifndef _TIZEN_MBR_V2X_H_
+#define _TIZEN_MBR_V2X_H_
+
+/**
+ * Platform: odroid
+ * Boards: odroidu3/odroidx2
+ * version: Tizen v2.x
+ *
+ * Bootable media layout:
+ * dev:    SD   eMMC(part boot)
+ * BL1      1    0
+ * BL2     31   30
+ * UBOOT   63   62
+ * TZSW  2111 2110
+ * ENV   2560 2560(part user)
+ *
+ * MBR Primary partiions:
+ * Num Name    Size  Offset
+ * 1.  BOOT:   100MiB 2MiB
+ * 2.  ROOT:   3GiB
+ * 3.  DATA:   3GiB
+ * 4.  UMS:    -
+*/
+
+/* Tizen 2.0 - MBR partition definitions for Odroid */
+#define PARTS_V2X_BOOT         "boot"
+#define PARTS_V2X_ROOT         "platform"
+#define PARTS_V2X_DATA         "data"
+#define PARTS_V2X_UMS          "ums"
+
+#define DFU_ALT_SYSTEM_ODROID_MBR_V2X \
+       "uImage fat 0 1;" \
+       "zImage fat 0 1;" \
+       "Image.itb fat 0 1;" \
+       "exynos4412-odroidu3.dtb fat 0 1;" \
+       "exynos4412-odroidx2.dtb fat 0 1;" \
+       ""PARTS_V2X_BOOT" part 0 1;" \
+       ""PARTS_V2X_ROOT" part 0 2;" \
+       ""PARTS_V2X_DATA" part 0 3;" \
+       ""PARTS_V2X_UMS" part 0 4\0"
+
+#endif /* _TIZEN_MBR_V2X_H_ */
diff --git a/include/samsung/mbr_v30.h b/include/samsung/mbr_v30.h
new file mode 100644 (file)
index 0000000..a254f37
--- /dev/null
@@ -0,0 +1,46 @@
+#ifndef _TIZEN_MBR_V30_H_
+#define _TIZEN_MBR_V30_H_
+
+/**
+ * Platform: odroid
+ * Boards: odroidu3/odroidx2
+ * version: Tizen v3.0
+ *
+ * Bootable media layout:
+ * dev:    SD   eMMC(part boot)
+ * BL1      1    0
+ * BL2     31   30
+ * UBOOT   63   62
+ * TZSW  2111 2110
+ * ENV   2560 2560(part user)
+ *
+ * MBR Primary partiions:
+ * Num Name    Size  Offset
+ * 1.  BOOT:   32MiB 4MiB
+ * 2.  ROOT:   3GiB
+ * 3.  DATA:   512MiB
+ * 4.  Extd:
+ * 5.  USER:   -
+ * 6.  MODULE: 20MiB
+*/
+
+/* Tizen 3.0 - MBR partition definitions for Odroid */
+#define PARTS_V30_BOOT         "boot"
+#define PARTS_V30_ROOT         "rootfs"
+#define PARTS_V30_DATA         "system-data"
+#define PARTS_V30_USER         "user"
+#define PARTS_V30_MODULES      "modules"
+
+#define DFU_ALT_SYSTEM_ODROID_MBR_V30 \
+       "uImage fat 0 1;" \
+       "zImage fat 0 1;" \
+       "Image.itb fat 0 1;" \
+       "exynos4412-odroidu3.dtb fat 0 1;" \
+       "exynos4412-odroidx2.dtb fat 0 1;" \
+       ""PARTS_V30_BOOT" part 0 1;" \
+       ""PARTS_V30_ROOT" part 0 2;" \
+       ""PARTS_V30_DATA" part 0 3;" \
+       ""PARTS_V30_USER" part 0 5;" \
+       ""PARTS_V30_MODULES" part 0 6\0"
+
+#endif /* _TIZEN_MBR_V30_H_ */
diff --git a/include/samsung/platform_setup.h b/include/samsung/platform_setup.h
new file mode 100644 (file)
index 0000000..4123a16
--- /dev/null
@@ -0,0 +1,124 @@
+#ifndef _PLATFORM_SETUP_H_
+#define _PLATFORM_SETUP_H_
+
+#include <samsung/gpt_v08.h>
+#include <samsung/gpt_v13.h>
+#include <samsung/mbr_v2x.h>
+#include <samsung/mbr_v30.h>
+
+/**
+ * Each device has predefined bootloader area which should stay unchanged
+ * to prevent bootloader failure.
+ */
+#define DFU_ALT_BOOT_EMMC_TRATS2 \
+       "s-boot-mmc.bin raw 0x0 0x400 mmcpart 1;" \
+       "u-boot-mmc.bin raw 0x80 0x800;" \
+       "params.bin raw 0x1880 0x20\0"
+
+#define DFU_ALT_BOOT_SD_TRATS2 \
+       "This boot mode is not used\0"
+
+#define DFU_ALT_BOOT_EMMC_ODROID \
+       "u-boot raw 0x3e 0x800 mmcpart 1;" \
+       "bl1 raw 0x0 0x1e mmcpart 1;" \
+       "bl2 raw 0x1e 0x1d mmcpart 1;" \
+       "tzsw raw 0x83e 0x138 mmcpart 1;" \
+       "params.bin raw 0x1880 0x20\0"
+
+#define DFU_ALT_BOOT_SD_ODROID \
+       "u-boot raw 0x3f 0x800;" \
+       "bl1 raw 0x1 0x1e;" \
+       "bl2 raw 0x1f 0x1d;" \
+       "tzsw raw 0x83f 0x138;" \
+       "params.bin raw 0x1880 0x20\0"
+
+/**
+ * Each platform (${platname}) can provide N configs.
+ * Each config can provide a number of partitions.
+ *
+ * How to add new setup:
+ * - ${platname}_setup_N_name
+ * - ${platname}_setup_N_partitions
+ * - ${platname}_setup_N_alt_system
+ * - ${platname}_setup_N_bootpart
+ * - ${platname}_setup_N_rootpart
+ *
+ * Update PLATFORM_SETUP_INFO with:
+ * - ${platname}_setup_N_name/partitions/alt_system - new setup data
+ * - ${platname}_setup_cnt    - number of configs for board
+ * - ${platname}_setup_chosen - number of chosen board config
+ * - ${platname}_setup_active - number of active board config (autoset)
+ */
+
+/**
+ * TRATS_SETUP_1 - data defined in include/samsung/gpt_v08.h
+ * TRATS_SETUP_2 - data defined in include/samsung/gpt_v13.h
+ */
+#define TRATS_SETUP_1 \
+       "trats_setup_1_name=PIT v08\0" \
+       "trats_setup_1_partitions="PARTS_TRATS2_GPT_V08 \
+       "trats_setup_1_alt_system="DFU_ALT_SYSTEM_TRATS2_GPT_V08 \
+       "trats_setup_1_bootpart=2\0" \
+       "trats_setup_1_rootpart=5\0"
+
+#define TRATS_SETUP_2 \
+       "trats_setup_2_name=PIT v13\0" \
+       "trats_setup_2_partitions="PARTS_TRATS2_GPT_V13 \
+       "trats_setup_2_alt_system="DFU_ALT_SYSTEM_TRATS2_GPT_V13 \
+       "trats_setup_2_bootpart=2\0" \
+       "trats_setup_2_rootpart=11\0"
+
+/**
+ * ${platname}: trats
+ * Supported by: trats/trats2
+ * setup 1: Pit v08
+ * setup 2: Pit v13 (chosen)
+ */
+#define PLATFORM_SETUP_TRATS \
+       "trats_setup_cnt=2\0" \
+       "trats_setup_chosen=2\0" \
+       "trats_setup_active=\0" \
+       TRATS_SETUP_1 \
+       TRATS_SETUP_2
+
+
+/* $partitions - not defined(MSDOS) */
+#define ODROID_SETUP_1 \
+       "odroid_setup_1_name=Tizen v2.x\0" \
+       "odroid_setup_1_partitions=\0" \
+       "odroid_setup_1_alt_system="DFU_ALT_SYSTEM_ODROID_MBR_V2X \
+       "odroid_setup_1_bootpart=1\0" \
+       "odroid_setup_1_rootpart=2\0"
+
+/* $partitions - not defined(MSDOS) */
+#define ODROID_SETUP_2 \
+       "odroid_setup_2_name=Tizen v3.0\0" \
+       "odroid_setup_2_partitions=\0" \
+       "odroid_setup_2_alt_system="DFU_ALT_SYSTEM_ODROID_MBR_V30 \
+       "odroid_setup_2_bootpart=1\0" \
+       "odroid_setup_2_rootpart=2\0"
+
+/**
+ * ${platname}: odroid
+ * Supported by: odroidu3/odroidx2
+ * setup 1: Tizen v2.x
+ * setup 2: Tizen v3.0 (chosen)
+ */
+#define PLATFORM_SETUP_ODROID \
+       "odroid_setup_cnt=2\0" \
+       "odroid_setup_chosen=2\0" \
+       "odroid_setup_active=\0" \
+       ODROID_SETUP_1 \
+       ODROID_SETUP_2
+
+/**
+ * PLATFORM_SETUP_INFO - this should be a part of CONFIG_EXTRA_ENV_SETTINGS
+ * It provides environment variables for each board multiple platform setup.
+ * !!!Update this when adding new config!!!
+ * This is default setup - can be overwritten by params.bin
+ */
+#define PLATFORM_SETUP_INFO \
+       PLATFORM_SETUP_TRATS \
+       PLATFORM_SETUP_ODROID
+
+#endif /* _PLATFORM_SETUP_H_ */