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

From: John Stultz
Date: Tue Jan 26 2016 - 19:38:45 EST


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@xxxxxxxxxxxxxx>
Cc: Rob Herring <robh@xxxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Thierry Reding <treding@xxxxxxxxxx>
Cc: Heiko StÃbner <heiko@xxxxxxxxx>
Cc: Caesar Wang <wxt@xxxxxxxxxxxxxx>
Cc: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: Guodong Xu <guodong.xu@xxxxxxxxxx>
Cc: Haojian Zhuang <haojian.zhuang@xxxxxxxxxx>
Cc: Vishal Bhoj <vishal.bhoj@xxxxxxxxxx>
Cc: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: Android Kernel Team <kernel-team@xxxxxxxxxxx>
Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx>
---
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>;
+ };
+
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
--
1.9.1