diff mbox

[RFC,3/3] dts: hikey: Add hikey support for sram-reboot-mode

Message ID 1453855080-17760-4-git-send-email-john.stultz@linaro.org
State New
Headers show

Commit Message

John Stultz Jan. 27, 2016, 12:38 a.m. UTC
Add support to hikey dts and defconfig for the
sram-reboot-mode driver.

The dts entries added here should really be generated
by the UEFI firmware, and not be static in the dts,
since one may be using different firmware on HiKey.
But this patch provides an example of how the
sram-reboot-mode entry would otherwise look.

Cc: Andy Yan <andy.yan@rock-chips.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Thierry Reding <treding@nvidia.com>
Cc: Heiko Stübner <heiko@sntech.de>
Cc: Caesar Wang <wxt@rock-chips.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Guodong Xu <guodong.xu@linaro.org>
Cc: Haojian Zhuang <haojian.zhuang@linaro.org>
Cc: Vishal Bhoj <vishal.bhoj@linaro.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: devicetree@vger.kernel.org
Cc: Android Kernel Team <kernel-team@android.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>

---
 arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 36 ++++++++++++++++++++++++++
 arch/arm64/configs/hikey_defconfig             |  3 +++
 2 files changed, 39 insertions(+)

-- 
1.9.1

Comments

Rob Herring Jan. 27, 2016, 5:38 p.m. UTC | #1
On Tue, Jan 26, 2016 at 6:38 PM, John Stultz <john.stultz@linaro.org> wrote:
> Add support to hikey dts and defconfig for the

> sram-reboot-mode driver.

>

> The dts entries added here should really be generated

> by the UEFI firmware, and not be static in the dts,

> since one may be using different firmware on HiKey.

> But this patch provides an example of how the

> sram-reboot-mode entry would otherwise look.

>

> Cc: Andy Yan <andy.yan@rock-chips.com>

> Cc: Rob Herring <robh@kernel.org>

> Cc: Arnd Bergmann <arnd@arndb.de>

> Cc: Thierry Reding <treding@nvidia.com>

> Cc: Heiko Stübner <heiko@sntech.de>

> Cc: Caesar Wang <wxt@rock-chips.com>

> Cc: Kees Cook <keescook@chromium.org>

> Cc: Guodong Xu <guodong.xu@linaro.org>

> Cc: Haojian Zhuang <haojian.zhuang@linaro.org>

> Cc: Vishal Bhoj <vishal.bhoj@linaro.org>

> Cc: Bjorn Andersson <bjorn.andersson@linaro.org>

> Cc: devicetree@vger.kernel.org

> Cc: Android Kernel Team <kernel-team@android.com>

> Signed-off-by: John Stultz <john.stultz@linaro.org>

> ---

>  arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 36 ++++++++++++++++++++++++++

>  arch/arm64/configs/hikey_defconfig             |  3 +++

>  2 files changed, 39 insertions(+)

>

> diff --git a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts

> index 92f1704..67d12d0 100644

> --- a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts

> +++ b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts

> @@ -52,6 +52,11 @@

>                               <0x0 0x0740f000 0x0 0x00001000>;  /* MCU firmware section */

>                 };

>

> +               reboot-reason@05f01000 {

> +                       no-map;

> +                       reg = <0x0 0x05f01000 0x0 0x00001000>;

> +               };

> +


This hunk should be dropped. These regions are for main memory.

>                 mbox-buf@06dff000 {

>                         no-map;

>                         reg = <0x0 0x06dff000 0x0 0x00001000>;  /* Mailbox message buf */

> @@ -71,6 +76,37 @@

>                 ftrace-size     = <0x0 0x00020000>;

>         };

>

> +

> +       /* This entry should really be provided by the UEFI firmware */

> +       sram@5f01000 {

> +               compatible = "mmio-sram", "simple-bus";


The suggestion to put "simple-bus" here was really just for debugging.
Really, the mmio-sram driver should call of_platform_default_populate
to probe it's children.

> +               reg = <0x0 0x05f01000 0x0 0x00001000>;

> +               ranges = <0x0 0x0 0x05f01000 0x00001000>;

> +

> +               #address-cells = <1>;

> +               #size-cells = <1>;

> +

> +               reboot-mode@0 {

> +                       compatible = "sram-reboot-mode";

> +                       reg = <0x0 0x4>;

> +

> +                       none {

> +                               linux,mode = "none";

> +                               loader,magic = <0x77665501>;

> +                       };

> +

> +                       bootloader {

> +                               linux,mode = "bootloader";

> +                               loader,magic = <0x77665500>;

> +                       };

> +

> +                       recovery {

> +                               linux,mode = "recovery";

> +                               loader,magic = <0x77665502>;

> +                       };

> +               };

> +       };

> +

>         smb {

>                 uart0: uart@f8015000 {  /* console */

>                         status = "ok";

> diff --git a/arch/arm64/configs/hikey_defconfig b/arch/arm64/configs/hikey_defconfig

> index a8375aa..e9db588 100644

> --- a/arch/arm64/configs/hikey_defconfig

> +++ b/arch/arm64/configs/hikey_defconfig

> @@ -201,6 +201,7 @@ CONFIG_BLK_DEV_LOOP=y

>  CONFIG_BLK_DEV_RAM=y

>  CONFIG_BLK_DEV_RAM_SIZE=16384

>  CONFIG_VIRTIO_BLK=y

> +CONFIG_SRAM=y

>  CONFIG_TI_ST=y

>  CONFIG_ST_HCI=y

>  # CONFIG_SCSI_PROC_FS is not set

> @@ -266,6 +267,8 @@ CONFIG_SPI_PL022=y

>  CONFIG_GPIO_SYSFS=y

>  CONFIG_GPIO_XGENE=y

>  CONFIG_POWER_RESET_SYSCON=y

> +CONFIG_SYSCON_REBOOT_MODE=y

> +CONFIG_SRAM_REBOOT_MODE=y

>  CONFIG_THERMAL=y

>  CONFIG_THERMAL_WRITABLE_TRIPS=y

>  CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR=y

> --

> 1.9.1

>
diff mbox

Patch

diff --git a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
index 92f1704..67d12d0 100644
--- a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
+++ b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
@@ -52,6 +52,11 @@ 
 			      <0x0 0x0740f000 0x0 0x00001000>;	/* MCU firmware section */
 		};
 
+		reboot-reason@05f01000 {
+			no-map;
+			reg = <0x0 0x05f01000 0x0 0x00001000>;
+		};
+
 		mbox-buf@06dff000 {
 			no-map;
 			reg = <0x0 0x06dff000 0x0 0x00001000>;	/* Mailbox message buf */
@@ -71,6 +76,37 @@ 
 		ftrace-size	= <0x0 0x00020000>;
 	};
 
+
+	/* This entry should really be provided by the UEFI firmware */
+	sram@5f01000 {
+		compatible = "mmio-sram", "simple-bus";
+		reg = <0x0 0x05f01000 0x0 0x00001000>;
+		ranges = <0x0 0x0 0x05f01000 0x00001000>;
+
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		reboot-mode@0 {
+			compatible = "sram-reboot-mode";
+			reg = <0x0 0x4>;
+
+			none {
+				linux,mode = "none";
+				loader,magic = <0x77665501>;
+			};
+
+			bootloader {
+				linux,mode = "bootloader";
+				loader,magic = <0x77665500>;
+			};
+
+			recovery {
+				linux,mode = "recovery";
+				loader,magic = <0x77665502>;
+			};
+		};
+	};
+
 	smb {
 		uart0: uart@f8015000 {	/* console */
 			status = "ok";
diff --git a/arch/arm64/configs/hikey_defconfig b/arch/arm64/configs/hikey_defconfig
index a8375aa..e9db588 100644
--- a/arch/arm64/configs/hikey_defconfig
+++ b/arch/arm64/configs/hikey_defconfig
@@ -201,6 +201,7 @@  CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=16384
 CONFIG_VIRTIO_BLK=y
+CONFIG_SRAM=y
 CONFIG_TI_ST=y
 CONFIG_ST_HCI=y
 # CONFIG_SCSI_PROC_FS is not set
@@ -266,6 +267,8 @@  CONFIG_SPI_PL022=y
 CONFIG_GPIO_SYSFS=y
 CONFIG_GPIO_XGENE=y
 CONFIG_POWER_RESET_SYSCON=y
+CONFIG_SYSCON_REBOOT_MODE=y
+CONFIG_SRAM_REBOOT_MODE=y
 CONFIG_THERMAL=y
 CONFIG_THERMAL_WRITABLE_TRIPS=y
 CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR=y