Skip to contentSkip to conversation

rockchip: use rockchip linux partitions layout

PATCH New Jacob Chen 3 participants 7 messages Oct 8, 2016 – Oct 15, 2016 Arm Rockchip

lore
Share & tools
lore

Jacob Chen

author
#0 lore raw

PATCH v3 1/2 rockchip: use rockchip linux partitions layout

Unify the partitions of each chip then it will be more easy for us to write scripts, tools or guides for rockchip chips.

Those extra partitions mostly are used to be compatible with our internal loaders (such as miniloader which was same as spl, or android loader then we can support dual boot)

---

Changes in v3:
- correct the copyright

Changes in v2:
- put macro in a rockchip_common.h

 include/configs/rk3036_common.h   | 17 +----------------
 include/configs/rk3288_common.h   | 17 +----------------
 include/configs/rk3399_common.h   | 16 ++--------------
 include/configs/rockchip-common.h | 35 +++++++++++++++++++++++++++++++++++
 4 files changed, 39 insertions(+), 46 deletions(-)
 create mode 100644 include/configs/rockchip-common.h
include/configs/rk3036_common.h +1 -16
index 73830e4..29d56ff 100644
@@ -7,6 +7,7 @@
 #define __CONFIG_RK3036_COMMON_H
 
 #include <asm/arch/hardware.h>
+#include "rockchip-common.h"
 
 #define CONFIG_SYS_NO_FLASH
 #define CONFIG_NR_DRAM_BANKS		1
@@ -79,11 +80,6 @@
 #define CONFIG_G_DNL_VENDOR_NUM		0x2207
 #define CONFIG_G_DNL_PRODUCT_NUM	0x310a
 
-/* Enable gpt partition table */
-#define CONFIG_CMD_GPT
-
-#include <config_distro_defaults.h>
-
 #define ENV_MEM_LAYOUT_SETTINGS \
 	"scriptaddr=0x60000000\0" \
 	"pxefile_addr_r=0x60100000\0" \
@@ -91,17 +87,6 @@
 	"kernel_addr_r=0x62000000\0" \
 	"ramdisk_addr_r=0x64000000\0"
 
-#define CONFIG_RANDOM_UUID
-#define PARTS_DEFAULT \
-	"uuid_disk=${uuid_gpt_disk};" \
-	"name=boot,start=8M,size=64M,bootable,uuid=${uuid_gpt_boot};" \
-	"name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \
-
-/* First try to boot from SD (index 0), then eMMC (index 1 */
-#define BOOT_TARGET_DEVICES(func) \
-	func(MMC, mmc, 0) \
-	func(MMC, mmc, 1)
-
 #include <config_distro_bootcmd.h>
 
 /* Linux fails to load the fdt if it's loaded above 512M on a evb-rk3036 board,
include/configs/rk3288_common.h +1 -16
index 9ddfe1d..630f218 100644
@@ -8,6 +8,7 @@
 #define __CONFIG_RK3288_COMMON_H
 
 #include <asm/arch/hardware.h>
+#include "rockchip-common.h"
 
 #define CONFIG_SKIP_LOWLEVEL_INIT_ONLY
 #define CONFIG_SYS_NO_FLASH
@@ -96,11 +97,6 @@
 #define CONFIG_G_DNL_VENDOR_NUM		0x2207
 #define CONFIG_G_DNL_PRODUCT_NUM	0x320a
 
-/* Enable gpt partition table */
-#define CONFIG_CMD_GPT
-
-#include <config_distro_defaults.h>
-
 #define ENV_MEM_LAYOUT_SETTINGS \
 	"scriptaddr=0x00000000\0" \
 	"pxefile_addr_r=0x00100000\0" \
@@ -108,17 +104,6 @@
 	"kernel_addr_r=0x02000000\0" \
 	"ramdisk_addr_r=0x04000000\0"
 
-#define CONFIG_RANDOM_UUID
-#define PARTS_DEFAULT \
-	"uuid_disk=${uuid_gpt_disk};" \
-	"name=boot,start=8M,size=64M,bootable,uuid=${uuid_gpt_boot};" \
-	"name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \
-
-/* First try to boot from SD (index 0), then eMMC (index 1 */
-#define BOOT_TARGET_DEVICES(func) \
-	func(MMC, mmc, 0) \
-	func(MMC, mmc, 1)
-
 #include <config_distro_bootcmd.h>
 
 /* Linux fails to load the fdt if it's loaded above 512M on a Rock 2 board, so
include/configs/rk3399_common.h +2 -14
index b026122..68b9391 100644
@@ -7,6 +7,8 @@
 #ifndef __CONFIG_RK3399_COMMON_H
 #define __CONFIG_RK3399_COMMON_H
 
+#include "rockchip-common.h"
+
 #define CONFIG_SYS_NO_FLASH
 #define CONFIG_NR_DRAM_BANKS		1
 #define CONFIG_ENV_SIZE			0x2000
@@ -53,7 +55,6 @@
 #define CONFIG_SF_DEFAULT_SPEED 20000000
 
 #ifndef CONFIG_SPL_BUILD
-#include <config_distro_defaults.h>
 
 #define ENV_MEM_LAYOUT_SETTINGS \
 	"scriptaddr=0x00000000\0" \
@@ -62,19 +63,6 @@
 	"kernel_addr_r=0x02000000\0" \
 	"ramdisk_addr_r=0x04000000\0"
 
-#define CONFIG_CMD_GPT
-#define CONFIG_RANDOM_UUID
-#define CONFIG_PARTITION_UUIDS
-#define PARTS_DEFAULT \
-	"uuid_disk=${uuid_gpt_disk};" \
-	"name=boot,start=16M,size=32M,bootable;" \
-	"name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \
-
-/* First try to boot from SD (index 0), then eMMC (index 1) */
-#define BOOT_TARGET_DEVICES(func) \
-	func(MMC, mmc, 0) \
-	func(MMC, mmc, 1)
-
 #include <config_distro_bootcmd.h>
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	ENV_MEM_LAYOUT_SETTINGS \
include/configs/rockchip-common.h new file +35 -0
new file mode 100644
index 0000000..7ca1696
@@ -0,0 +1,35 @@
+/*
+ * (C) Copyright 2016 Rockchip Electronics Co., Ltd
+ *
+ * SPDX-License-Identifier:     GPL-2.0+
+ */
+
+#ifndef _ROCKCHIP_COMMON_H_
+#define _ROCKCHIP_COMMON_H_
+#include <linux/sizes.h>
+
+#ifndef CONFIG_SPL_BUILD
+#include <config_distro_defaults.h>
+
+/* First try to boot from SD (index 0), then eMMC (index 1 */
+#define BOOT_TARGET_DEVICES(func) \
+	func(MMC, mmc, 0) \
+	func(MMC, mmc, 1)
+
+ /* Enable gpt partition table */
+#define CONFIG_CMD_GPT
+#define CONFIG_RANDOM_UUID
+#define CONFIG_PARTITION_UUIDS
+#define PARTS_DEFAULT \
+	"uuid_disk=${uuid_gpt_disk};" \
+	"name=loader1,start=32K,size=4000K,uuid=${uuid_gpt_loader1};" \
+	"name=reserved1,size=64K,uuid=${uuid_gpt_reserved1};" \
+	"name=reserved2,size=4M,uuid=${uuid_gpt_reserved2};" \
+	"name=loader2,size=4MB,uuid=${uuid_gpt_loader2};" \
+	"name=atf,size=4M,uuid=${uuid_gpt_atf};" \
+	"name=boot,size=128M,bootable,uuid=${uuid_gpt_boot};" \
+	"name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \
+
+#endif
+
+#endif /* _ROCKCHIP_COMMON_H_ */
Signature · 1 line
1.9.1
author
#1 lore raw

PATCH v3 2/2 rockchip: doc: add GPT partition layout

A simple introduction.

---

Changes in v3: None
Changes in v2: None

 doc/README.rockchip | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
doc/README.rockchip +9 -2
index 69b926c..06ec80e 100644
@@ -149,7 +149,6 @@ Note: rk3036 SDMMC and debug uart use the same iomux, so if you boot from SD, th
 
 Using fastboot on rk3288
 ========================
-- Define GPT partition layout like kylin_rk3036(see include/configs/kylin_rk3036.h)
 - Write GPT partition layout to mmc device which fastboot want to use it to
 store the image
 
@@ -212,7 +211,6 @@ When booting you should see something like:
    Err:   serial at ff690000
    =>
 
-
 Future work
 ===========
 
@@ -298,6 +296,15 @@ overhead and in SPL with a 32KB size limit some shortcuts have been taken.
 In general all Rockchip drivers should use these features, with SPL-specific
 modifications where required.
 
+GPT partition layout
+----------------------------
+
+Rockchip use a unified GPT partition layout  in open source support.
+With this GPT partition layout, uboot can be compatilbe with other components,
+like miniloader, trusted-os, arm-trust-firmware.
+
+There are some documents about partitions in the links below.
+http://rockchip.wikidot.com/partitions
 
 --
 Simon Glass <[email protected]>
Signature · 1 line
1.9.1
#4 lore raw

PATCH v3 1/2 rockchip: use rockchip linux partitions layout

In reply to Jacob Chen

Hi Jacob,

Quoted 179 lines · Jacob Chen

Unify the partitions of each chip then it will be more easy for us to write scripts, tools or guides for rockchip chips.

Those extra partitions mostly are used to be compatible with our internal loaders (such as miniloader which was same as spl, or android loader then we can support dual boot)

---

Changes in v3:
- correct the copyright

Changes in v2:
- put macro in a rockchip_common.h

  include/configs/rk3036_common.h   | 17 +----------------
  include/configs/rk3288_common.h   | 17 +----------------
  include/configs/rk3399_common.h   | 16 ++--------------
  include/configs/rockchip-common.h | 35 +++++++++++++++++++++++++++++++++++
  4 files changed, 39 insertions(+), 46 deletions(-)

create mode 100644 include/configs/rockchip-common.h

include/configs/rk3036_common.h +1 -16
index 73830e4..29d56ff 100644
@@ -7,6 +7,7 @@
  #define __CONFIG_RK3036_COMMON_H
 
  #include <asm/arch/hardware.h>
+#include "rockchip-common.h"
 
  #define CONFIG_SYS_NO_FLASH
  #define CONFIG_NR_DRAM_BANKS		1
@@ -79,11 +80,6 @@
  #define CONFIG_G_DNL_VENDOR_NUM		0x2207
  #define CONFIG_G_DNL_PRODUCT_NUM	0x310a
 
-/* Enable gpt partition table */
-#define CONFIG_CMD_GPT
-
-#include <config_distro_defaults.h>
-
  #define ENV_MEM_LAYOUT_SETTINGS \
  	"scriptaddr=0x60000000\0" \
  	"pxefile_addr_r=0x60100000\0" \
@@ -91,17 +87,6 @@
  	"kernel_addr_r=0x62000000\0" \
  	"ramdisk_addr_r=0x64000000\0"
 
-#define CONFIG_RANDOM_UUID
-#define PARTS_DEFAULT \
-	"uuid_disk=${uuid_gpt_disk};" \
-	"name=boot,start=8M,size=64M,bootable,uuid=${uuid_gpt_boot};" \
-	"name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \
-
-/* First try to boot from SD (index 0), then eMMC (index 1 */
-#define BOOT_TARGET_DEVICES(func) \
-	func(MMC, mmc, 0) \
-	func(MMC, mmc, 1)
-
  #include <config_distro_bootcmd.h>
 
  /* Linux fails to load the fdt if it's loaded above 512M on a evb-rk3036 board,
include/configs/rk3288_common.h +1 -16
index 9ddfe1d..630f218 100644
@@ -8,6 +8,7 @@
  #define __CONFIG_RK3288_COMMON_H
 
  #include <asm/arch/hardware.h>
+#include "rockchip-common.h"
 
  #define CONFIG_SKIP_LOWLEVEL_INIT_ONLY
  #define CONFIG_SYS_NO_FLASH
@@ -96,11 +97,6 @@
  #define CONFIG_G_DNL_VENDOR_NUM		0x2207
  #define CONFIG_G_DNL_PRODUCT_NUM	0x320a
 
-/* Enable gpt partition table */
-#define CONFIG_CMD_GPT
-
-#include <config_distro_defaults.h>
-
  #define ENV_MEM_LAYOUT_SETTINGS \
  	"scriptaddr=0x00000000\0" \
  	"pxefile_addr_r=0x00100000\0" \
@@ -108,17 +104,6 @@
  	"kernel_addr_r=0x02000000\0" \
  	"ramdisk_addr_r=0x04000000\0"
 
-#define CONFIG_RANDOM_UUID
-#define PARTS_DEFAULT \
-	"uuid_disk=${uuid_gpt_disk};" \
-	"name=boot,start=8M,size=64M,bootable,uuid=${uuid_gpt_boot};" \
-	"name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \
-
-/* First try to boot from SD (index 0), then eMMC (index 1 */
-#define BOOT_TARGET_DEVICES(func) \
-	func(MMC, mmc, 0) \
-	func(MMC, mmc, 1)
-
  #include <config_distro_bootcmd.h>
 
  /* Linux fails to load the fdt if it's loaded above 512M on a Rock 2 board, so
include/configs/rk3399_common.h +2 -14
index b026122..68b9391 100644
@@ -7,6 +7,8 @@
  #ifndef __CONFIG_RK3399_COMMON_H
  #define __CONFIG_RK3399_COMMON_H
 
+#include "rockchip-common.h"
+
  #define CONFIG_SYS_NO_FLASH
  #define CONFIG_NR_DRAM_BANKS		1
  #define CONFIG_ENV_SIZE			0x2000
@@ -53,7 +55,6 @@
  #define CONFIG_SF_DEFAULT_SPEED 20000000
 
  #ifndef CONFIG_SPL_BUILD
-#include <config_distro_defaults.h>
 
  #define ENV_MEM_LAYOUT_SETTINGS \
  	"scriptaddr=0x00000000\0" \
@@ -62,19 +63,6 @@
  	"kernel_addr_r=0x02000000\0" \
  	"ramdisk_addr_r=0x04000000\0"
 
-#define CONFIG_CMD_GPT
-#define CONFIG_RANDOM_UUID
-#define CONFIG_PARTITION_UUIDS
-#define PARTS_DEFAULT \
-	"uuid_disk=${uuid_gpt_disk};" \
-	"name=boot,start=16M,size=32M,bootable;" \
-	"name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \
-
-/* First try to boot from SD (index 0), then eMMC (index 1) */
-#define BOOT_TARGET_DEVICES(func) \
-	func(MMC, mmc, 0) \
-	func(MMC, mmc, 1)
-
  #include <config_distro_bootcmd.h>
  #define CONFIG_EXTRA_ENV_SETTINGS \
  	ENV_MEM_LAYOUT_SETTINGS \
include/configs/rockchip-common.h new file +25 -0
new file mode 100644
index 0000000..7ca1696
@@ -0,0 +1,35 @@
+/*
+ * (C) Copyright 2016 Rockchip Electronics Co., Ltd
+ *
+ * SPDX-License-Identifier:     GPL-2.0+
+ */
+
+#ifndef _ROCKCHIP_COMMON_H_
+#define _ROCKCHIP_COMMON_H_
+#include <linux/sizes.h>
+
+#ifndef CONFIG_SPL_BUILD
+#include <config_distro_defaults.h>
+
+/* First try to boot from SD (index 0), then eMMC (index 1 */
+#define BOOT_TARGET_DEVICES(func) \
+	func(MMC, mmc, 0) \
+	func(MMC, mmc, 1)
+
+ /* Enable gpt partition table */
+#define CONFIG_CMD_GPT
+#define CONFIG_RANDOM_UUID
+#define CONFIG_PARTITION_UUIDS
+#define PARTS_DEFAULT \
+	"uuid_disk=${uuid_gpt_disk};" \
+	"name=loader1,start=32K,size=4000K,uuid=${uuid_gpt_loader1};" \

include/configs/rockchip-common.h line 35

Quoted 10 lines
include/configs/rockchip-common.h new file +10 -0
+	"name=reserved1,size=64K,uuid=${uuid_gpt_reserved1};" \
+	"name=reserved2,size=4M,uuid=${uuid_gpt_reserved2};" \
+	"name=loader2,size=4MB,uuid=${uuid_gpt_loader2};" \
+	"name=atf,size=4M,uuid=${uuid_gpt_atf};" \
+	"name=boot,size=128M,bootable,uuid=${uuid_gpt_boot};" \
+	"name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \
+
+#endif
+
+#endif /* _ROCKCHIP_COMMON_H_ */

Thanks,
- Kever

#5 lore raw

PATCH v3 1/2 rockchip: use rockchip linux partitions layout

Quoted 182 lines · Kever Yang

Hi Jacob,

Quoted 178 lines · Jacob Chen

Unify the partitions of each chip then it will be more easy for us to write scripts, tools or guides for rockchip chips.

Those extra partitions mostly are used to be compatible with our internal loaders (such as miniloader which was same as spl, or android loader then we can support dual boot)

---

Changes in v3:
- correct the copyright

Changes in v2:
- put macro in a rockchip_common.h

  include/configs/rk3036_common.h   | 17 +----------------
  include/configs/rk3288_common.h   | 17 +----------------
  include/configs/rk3399_common.h   | 16 ++--------------
  include/configs/rockchip-common.h | 35
+++++++++++++++++++++++++++++++++++
  4 files changed, 39 insertions(+), 46 deletions(-)

create mode 100644 include/configs/rockchip-common.h

include/configs/rk3036_common.h +1 -14
index 73830e4..29d56ff 100644
@@ -7,6 +7,7 @@
  #define __CONFIG_RK3036_COMMON_H
    #include <asm/arch/hardware.h>
+#include "rockchip-common.h"
    #define CONFIG_SYS_NO_FLASH
  #define CONFIG_NR_DRAM_BANKS          1
@@ -79,11 +80,6 @@
  #define CONFIG_G_DNL_VENDOR_NUM               0x2207
  #define CONFIG_G_DNL_PRODUCT_NUM      0x310a
  -/* Enable gpt partition table */
-#define CONFIG_CMD_GPT
-
-#include <config_distro_defaults.h>
-
  #define ENV_MEM_LAYOUT_SETTINGS \
        "scriptaddr=0x60000000\0" \
        "pxefile_addr_r=0x60100000\0" \
@@ -91,17 +87,6 @@
        "kernel_addr_r=0x62000000\0" \
        "ramdisk_addr_r=0x64000000\0"
  -#define CONFIG_RANDOM_UUID
-#define PARTS_DEFAULT \
-       "uuid_disk=${uuid_gpt_disk};" \
-       "name=boot,start=8M,size=64M,bootable,uuid=${uuid_gpt_boot};" \
-       "name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \
-
-/* First try to boot from SD (index 0), then eMMC (index 1 */
-#define BOOT_TARGET_DEVICES(func) \
-       func(MMC, mmc, 0) \
-       func(MMC, mmc, 1)
-
  #include <config_distro_bootcmd.h>
    /* Linux fails to load the fdt if it's loaded above 512M on a
 evb-rk3036 board,
include/configs/rk3288_common.h +1 -14
index 9ddfe1d..630f218 100644
@@ -8,6 +8,7 @@
  #define __CONFIG_RK3288_COMMON_H
    #include <asm/arch/hardware.h>
+#include "rockchip-common.h"
    #define CONFIG_SKIP_LOWLEVEL_INIT_ONLY
  #define CONFIG_SYS_NO_FLASH
@@ -96,11 +97,6 @@
  #define CONFIG_G_DNL_VENDOR_NUM               0x2207
  #define CONFIG_G_DNL_PRODUCT_NUM      0x320a
  -/* Enable gpt partition table */
-#define CONFIG_CMD_GPT
-
-#include <config_distro_defaults.h>
-
  #define ENV_MEM_LAYOUT_SETTINGS \
        "scriptaddr=0x00000000\0" \
        "pxefile_addr_r=0x00100000\0" \
@@ -108,17 +104,6 @@
        "kernel_addr_r=0x02000000\0" \
        "ramdisk_addr_r=0x04000000\0"
  -#define CONFIG_RANDOM_UUID
-#define PARTS_DEFAULT \
-       "uuid_disk=${uuid_gpt_disk};" \
-       "name=boot,start=8M,size=64M,bootable,uuid=${uuid_gpt_boot};" \
-       "name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \
-
-/* First try to boot from SD (index 0), then eMMC (index 1 */
-#define BOOT_TARGET_DEVICES(func) \
-       func(MMC, mmc, 0) \
-       func(MMC, mmc, 1)
-
  #include <config_distro_bootcmd.h>
    /* Linux fails to load the fdt if it's loaded above 512M on a Rock 2

board, so

include/configs/rk3399_common.h +1 -13
index b026122..68b9391 100644
@@ -7,6 +7,8 @@
  #ifndef __CONFIG_RK3399_COMMON_H
  #define __CONFIG_RK3399_COMMON_H
  +#include "rockchip-common.h"
+
  #define CONFIG_SYS_NO_FLASH
  #define CONFIG_NR_DRAM_BANKS          1
  #define CONFIG_ENV_SIZE                       0x2000
@@ -53,7 +55,6 @@
  #define CONFIG_SF_DEFAULT_SPEED 20000000
    #ifndef CONFIG_SPL_BUILD
-#include <config_distro_defaults.h>
    #define ENV_MEM_LAYOUT_SETTINGS \
        "scriptaddr=0x00000000\0" \
@@ -62,19 +63,6 @@
        "kernel_addr_r=0x02000000\0" \
        "ramdisk_addr_r=0x04000000\0"
  -#define CONFIG_CMD_GPT
-#define CONFIG_RANDOM_UUID
-#define CONFIG_PARTITION_UUIDS
-#define PARTS_DEFAULT \
-       "uuid_disk=${uuid_gpt_disk};" \
-       "name=boot,start=16M,size=32M,bootable;" \
-       "name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \
-
-/* First try to boot from SD (index 0), then eMMC (index 1) */
-#define BOOT_TARGET_DEVICES(func) \
-       func(MMC, mmc, 0) \
-       func(MMC, mmc, 1)
-
  #include <config_distro_bootcmd.h>
  #define CONFIG_EXTRA_ENV_SETTINGS \
        ENV_MEM_LAYOUT_SETTINGS \
include/configs/rockchip-common.h new file +30 -0
new file mode 100644
index 0000000..7ca1696
@@ -0,0 +1,35 @@
+/*
+ * (C) Copyright 2016 Rockchip Electronics Co., Ltd
+ *
+ * SPDX-License-Identifier:     GPL-2.0+
+ */
+
+#ifndef _ROCKCHIP_COMMON_H_
+#define _ROCKCHIP_COMMON_H_
+#include <linux/sizes.h>
+
+#ifndef CONFIG_SPL_BUILD
+#include <config_distro_defaults.h>
+
+/* First try to boot from SD (index 0), then eMMC (index 1 */
+#define BOOT_TARGET_DEVICES(func) \
+       func(MMC, mmc, 0) \
+       func(MMC, mmc, 1)
+
+ /* Enable gpt partition table */
+#define CONFIG_CMD_GPT
+#define CONFIG_RANDOM_UUID
+#define CONFIG_PARTITION_UUIDS
+#define PARTS_DEFAULT \
+       "uuid_disk=${uuid_gpt_disk};" \
+       "name=loader1,start=32K,size=4000K,uuid=${uuid_gpt_loader1};" \
+       "name=reserved1,size=64K,uuid=${uuid_gpt_reserved1};" \
+       "name=reserved2,size=4M,uuid=${uuid_gpt_reserved2};" \
+       "name=loader2,size=4MB,uuid=${uuid_gpt_loader2};" \
+       "name=atf,size=4M,uuid=${uuid_gpt_atf};" \
+       "name=boot,size=128M,bootable,uuid=${uuid_gpt_boot};" \
Quoted 8 lines

include/configs/rockchip-common.h line 35

Quoted 5 lines
include/configs/rockchip-common.h new file +5 -0
+       "name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \
+
+#endif
+
+#endif /* _ROCKCHIP_COMMON_H_ */
#6 lore raw

PATCH v3 1/2 rockchip: use rockchip linux partitions layout

Quoted 192 lines · Simon Glass
Quoted 182 lines · Kever Yang

Hi Jacob,

Quoted 178 lines · Jacob Chen

Unify the partitions of each chip then it will be more easy for us to write scripts, tools or guides for rockchip chips.

Those extra partitions mostly are used to be compatible with our internal loaders (such as miniloader which was same as spl, or android loader then we can support dual boot)

---

Changes in v3:
- correct the copyright

Changes in v2:
- put macro in a rockchip_common.h

  include/configs/rk3036_common.h   | 17 +----------------
  include/configs/rk3288_common.h   | 17 +----------------
  include/configs/rk3399_common.h   | 16 ++--------------
  include/configs/rockchip-common.h | 35
+++++++++++++++++++++++++++++++++++
  4 files changed, 39 insertions(+), 46 deletions(-)

create mode 100644 include/configs/rockchip-common.h

include/configs/rk3036_common.h +1 -14
index 73830e4..29d56ff 100644
@@ -7,6 +7,7 @@
  #define __CONFIG_RK3036_COMMON_H
    #include <asm/arch/hardware.h>
+#include "rockchip-common.h"
    #define CONFIG_SYS_NO_FLASH
  #define CONFIG_NR_DRAM_BANKS          1
@@ -79,11 +80,6 @@
  #define CONFIG_G_DNL_VENDOR_NUM               0x2207
  #define CONFIG_G_DNL_PRODUCT_NUM      0x310a
  -/* Enable gpt partition table */
-#define CONFIG_CMD_GPT
-
-#include <config_distro_defaults.h>
-
  #define ENV_MEM_LAYOUT_SETTINGS \
        "scriptaddr=0x60000000\0" \
        "pxefile_addr_r=0x60100000\0" \
@@ -91,17 +87,6 @@
        "kernel_addr_r=0x62000000\0" \
        "ramdisk_addr_r=0x64000000\0"
  -#define CONFIG_RANDOM_UUID
-#define PARTS_DEFAULT \
-       "uuid_disk=${uuid_gpt_disk};" \
-       "name=boot,start=8M,size=64M,bootable,uuid=${uuid_gpt_boot};" \
-       "name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \
-
-/* First try to boot from SD (index 0), then eMMC (index 1 */
-#define BOOT_TARGET_DEVICES(func) \
-       func(MMC, mmc, 0) \
-       func(MMC, mmc, 1)
-
  #include <config_distro_bootcmd.h>
    /* Linux fails to load the fdt if it's loaded above 512M on a
 evb-rk3036 board,
include/configs/rk3288_common.h +1 -14
index 9ddfe1d..630f218 100644
@@ -8,6 +8,7 @@
  #define __CONFIG_RK3288_COMMON_H
    #include <asm/arch/hardware.h>
+#include "rockchip-common.h"
    #define CONFIG_SKIP_LOWLEVEL_INIT_ONLY
  #define CONFIG_SYS_NO_FLASH
@@ -96,11 +97,6 @@
  #define CONFIG_G_DNL_VENDOR_NUM               0x2207
  #define CONFIG_G_DNL_PRODUCT_NUM      0x320a
  -/* Enable gpt partition table */
-#define CONFIG_CMD_GPT
-
-#include <config_distro_defaults.h>
-
  #define ENV_MEM_LAYOUT_SETTINGS \
        "scriptaddr=0x00000000\0" \
        "pxefile_addr_r=0x00100000\0" \
@@ -108,17 +104,6 @@
        "kernel_addr_r=0x02000000\0" \
        "ramdisk_addr_r=0x04000000\0"
  -#define CONFIG_RANDOM_UUID
-#define PARTS_DEFAULT \
-       "uuid_disk=${uuid_gpt_disk};" \
-       "name=boot,start=8M,size=64M,bootable,uuid=${uuid_gpt_boot};" \
-       "name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \
-
-/* First try to boot from SD (index 0), then eMMC (index 1 */
-#define BOOT_TARGET_DEVICES(func) \
-       func(MMC, mmc, 0) \
-       func(MMC, mmc, 1)
-
  #include <config_distro_bootcmd.h>
    /* Linux fails to load the fdt if it's loaded above 512M on a Rock 2

board, so

include/configs/rk3399_common.h +1 -13
index b026122..68b9391 100644
@@ -7,6 +7,8 @@
  #ifndef __CONFIG_RK3399_COMMON_H
  #define __CONFIG_RK3399_COMMON_H
  +#include "rockchip-common.h"
+
  #define CONFIG_SYS_NO_FLASH
  #define CONFIG_NR_DRAM_BANKS          1
  #define CONFIG_ENV_SIZE                       0x2000
@@ -53,7 +55,6 @@
  #define CONFIG_SF_DEFAULT_SPEED 20000000
    #ifndef CONFIG_SPL_BUILD
-#include <config_distro_defaults.h>
    #define ENV_MEM_LAYOUT_SETTINGS \
        "scriptaddr=0x00000000\0" \
@@ -62,19 +63,6 @@
        "kernel_addr_r=0x02000000\0" \
        "ramdisk_addr_r=0x04000000\0"
  -#define CONFIG_CMD_GPT
-#define CONFIG_RANDOM_UUID
-#define CONFIG_PARTITION_UUIDS
-#define PARTS_DEFAULT \
-       "uuid_disk=${uuid_gpt_disk};" \
-       "name=boot,start=16M,size=32M,bootable;" \
-       "name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \
-
-/* First try to boot from SD (index 0), then eMMC (index 1) */
-#define BOOT_TARGET_DEVICES(func) \
-       func(MMC, mmc, 0) \
-       func(MMC, mmc, 1)
-
  #include <config_distro_bootcmd.h>
  #define CONFIG_EXTRA_ENV_SETTINGS \
        ENV_MEM_LAYOUT_SETTINGS \
include/configs/rockchip-common.h new file +30 -0
new file mode 100644
index 0000000..7ca1696
@@ -0,0 +1,35 @@
+/*
+ * (C) Copyright 2016 Rockchip Electronics Co., Ltd
+ *
+ * SPDX-License-Identifier:     GPL-2.0+
+ */
+
+#ifndef _ROCKCHIP_COMMON_H_
+#define _ROCKCHIP_COMMON_H_
+#include <linux/sizes.h>
+
+#ifndef CONFIG_SPL_BUILD
+#include <config_distro_defaults.h>
+
+/* First try to boot from SD (index 0), then eMMC (index 1 */
+#define BOOT_TARGET_DEVICES(func) \
+       func(MMC, mmc, 0) \
+       func(MMC, mmc, 1)
+
+ /* Enable gpt partition table */
+#define CONFIG_CMD_GPT
+#define CONFIG_RANDOM_UUID
+#define CONFIG_PARTITION_UUIDS
+#define PARTS_DEFAULT \
+       "uuid_disk=${uuid_gpt_disk};" \
+       "name=loader1,start=32K,size=4000K,uuid=${uuid_gpt_loader1};" \
+       "name=reserved1,size=64K,uuid=${uuid_gpt_reserved1};" \
+       "name=reserved2,size=4M,uuid=${uuid_gpt_reserved2};" \
+       "name=loader2,size=4MB,uuid=${uuid_gpt_loader2};" \
+       "name=atf,size=4M,uuid=${uuid_gpt_atf};" \
+       "name=boot,size=128M,bootable,uuid=${uuid_gpt_boot};" \
Quoted 8 lines

include/configs/rockchip-common.h line 35

Quoted 5 lines
include/configs/rockchip-common.h new file +5 -0
+       "name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \
+
+#endif
+
+#endif /* _ROCKCHIP_COMMON_H_ */
Quoted 1 line

Applied to u-boot-rockchip, thanks!