tizen: config: enable platform command and platform setup 15/30315/2
authorPrzemyslaw Marczak <p.marczak@samsung.com>
Wed, 5 Nov 2014 20:18:39 +0000 (21:18 +0100)
committerPrzemyslaw Marczak <p.marczak@samsung.com>
Fri, 14 Nov 2014 11:47:49 +0000 (12:47 +0100)
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.

Change-Id: I86ec63f4422e210f20d8d2240ca3bade581b5466
Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
include/configs/tizen.h
include/samsung/gpt_v08.h
include/samsung/gpt_v13.h
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]

index 512d3b3..b7c7276 100644 (file)
@@ -10,8 +10,7 @@
 #define __CONFIG_TIZEN_H
 
 #include <configs/exynos4-common.h>
-#include <samsung/gpt_v08.h>
-#include <samsung/gpt_v13.h>
+#include <samsung/platform_setup.h>
 
 #define CONFIG_SYS_PROMPT      "Exynos4412 # " /* Monitor Command Prompt */
 
        "consoleoff=set console console=ram; save; reset\0" \
        "initrdname=uInitrd\0" \
        "initrdaddr=42000000\0" \
-       "fdtaddr=40800000\0"
+       "fdtaddr=40800000\0" \
+       PLATFORM_SETUP_INFO
 
 /* I2C */
 #include <asm/arch/gpio.h>
@@ -179,6 +179,15 @@ int get_soft_i2c_sda_pin(void);
 #define CONFIG_POWER_BATTERY_TRATS2
 #define CONFIG_CMD_POWEROFF
 
+/**
+ * Platform setup command (GPT and DFU)
+ * Define setup and part num for some static data
+ * should be changed to linked list in the future.
+ */
+#define CONFIG_PLATFORM_SETUP
+#define CONFIG_PLATFORM_MAX_PART_NUM   32
+#define CONFIG_PLATFORM_MAX_SETUP_NUM  6
+
 /* GPT */
 #define CONFIG_RANDOM_UUID
 
index 84be5b9..a02271b 100644 (file)
@@ -2,6 +2,10 @@
 #define _TIZEN_GPT_V08_H_
 
 /*
+ * Platform: trats
+ * Boards: trats/trats2
+ * version: Pit v8
+ *
  * Bootable media layout:
  * dev:    SD   eMMC(part boot)
  * BL1      1    0
        ""PARTS_V8_CSC" part 0 4;" \
        ""PARTS_V8_ROOT" part 0 5;" \
        ""PARTS_V8_DATA" part 0 6;" \
-       ""PARTS_V8_UMS" part 0 7;" \
-       "params.bin raw 2560 8\0"
-
-#define DFU_ALT_SYSTEM_ODROID \
-       "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_V8_BOOT" part 0 1;" \
-       ""PARTS_V8_ROOT" part 0 2;" \
-       ""PARTS_V8_DATA" part 0 3;" \
-       ""PARTS_V8_UMS" part 0 4;" \
-       "params.bin raw 2560 8\0"
-
-#define DFU_ALT_BOOT_SD_TRATS2_GPT_V08 \
-       "This boot mode is not used\0"
-
-#define DFU_ALT_BOOT_EMMC_TRATS2_GPT_V08 \
-       "u-boot raw 0x80 0x800\0"
-
-#define PARTS_ODROID \
-       "This board uses MSDOS partition table."
-
-#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\0"
-
-#define DFU_ALT_BOOT_SD_ODROID \
-       "u-boot raw 0x3f 0x800;" \
-       "bl1 raw 0x1 0x1e;" \
-       "bl2 raw 0x1f 0x1d;" \
-       "tzsw raw 0x83f 0x138\0"
+       ""PARTS_V8_UMS" part 0 7\0"
 
 #endif /* _TIZEN_GPT_V08_H_ */
index 1f4b59e..4d9ee68 100644 (file)
@@ -1,6 +1,12 @@
 #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"
@@ -39,8 +45,6 @@
        "name="PARTS_V13_USER",size=-,uuid=${uuid_gpt_"PARTS_V13_USER"}\0" \
 
 #define DFU_ALT_SYSTEM_TRATS2_GPT_V13 \
-       "s-boot-mmc.bin raw 0x0 0x400 mmcpart 1;" \
-       "u-boot-mmc.bin raw 0x80 0x800;" \
        "/uImage ext4 0 2;" \
        "/zImage ext4 0 2;" \
        "/Image.itb ext4 0 2;" \
        ""PARTS_V13_ROOTFS" part 0 11;" \
        ""PARTS_V13_SYSDATA" part 0 12;" \
        ""PARTS_V13_CSC" part 0 13;" \
-       ""PARTS_V13_USER" part 0 14;" \
-       "params.bin raw 0x1880 0x200\0"
-
-#define DFU_ALT_BOOT_SD_TRATS2_GPT_V13 \
-       "This boot mode is not used\0"
-
-#define DFU_ALT_BOOT_EMMC_TRATS2_GPT_V13 \
-       "u-boot raw 0x80 0x800\0"
+       ""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_ */