Re: [RFC][PATCH 3/3] dts: hikey: Add hikey support for sram-reboot-mode
From: Rob Herring
Date: Wed Jan 27 2016 - 12:39:02 EST
On Tue, Jan 26, 2016 at 6:38 PM, John Stultz <john.stultz@xxxxxxxxxx> 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@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>;
> + };
> +
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
>