From 63e22517a39046d62b86ebf0f7fe6e0db575f339 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Thu, 26 Apr 2018 13:31:39 +0200 Subject: [PATCH] ARM: renesas: Add R8A77990 E3 Ebisu board Add support for the R8A77990 Ebisu board. Signed-off-by: Marek Vasut Cc: Nobuhiro Iwamatsu --- arch/arm/dts/r8a77990-ebisu-u-boot.dts | 10 +++ arch/arm/dts/r8a77990-u-boot.dtsi | 9 +++ arch/arm/mach-rmobile/Kconfig.64 | 6 ++ board/renesas/ebisu/Kconfig | 15 +++++ board/renesas/ebisu/MAINTAINERS | 6 ++ board/renesas/ebisu/Makefile | 9 +++ board/renesas/ebisu/ebisu.c | 87 ++++++++++++++++++++++++++ configs/r8a77990_ebisu_defconfig | 64 +++++++++++++++++++ include/configs/ebisu.h | 34 ++++++++++ 9 files changed, 240 insertions(+) create mode 100644 arch/arm/dts/r8a77990-ebisu-u-boot.dts create mode 100644 arch/arm/dts/r8a77990-u-boot.dtsi create mode 100644 board/renesas/ebisu/Kconfig create mode 100644 board/renesas/ebisu/MAINTAINERS create mode 100644 board/renesas/ebisu/Makefile create mode 100644 board/renesas/ebisu/ebisu.c create mode 100644 configs/r8a77990_ebisu_defconfig create mode 100644 include/configs/ebisu.h diff --git a/arch/arm/dts/r8a77990-ebisu-u-boot.dts b/arch/arm/dts/r8a77990-ebisu-u-boot.dts new file mode 100644 index 0000000000..28bc497046 --- /dev/null +++ b/arch/arm/dts/r8a77990-ebisu-u-boot.dts @@ -0,0 +1,10 @@ +/* + * Device Tree Source extras for U-Boot for the Ebisu board + * + * Copyright (C) 2018 Marek Vasut + * + * SPDX-License-Identifier: GPL-2.0 + */ + +#include "r8a77990-ebisu.dts" +#include "r8a77990-u-boot.dtsi" diff --git a/arch/arm/dts/r8a77990-u-boot.dtsi b/arch/arm/dts/r8a77990-u-boot.dtsi new file mode 100644 index 0000000000..30a9f0b8ea --- /dev/null +++ b/arch/arm/dts/r8a77990-u-boot.dtsi @@ -0,0 +1,9 @@ +/* + * Device Tree Source extras for U-Boot on RCar R8A77990 SoC + * + * Copyright (C) 2018 Marek Vasut + * + * SPDX-License-Identifier: GPL-2.0 + */ + +#include "r8a779x-u-boot.dtsi" diff --git a/arch/arm/mach-rmobile/Kconfig.64 b/arch/arm/mach-rmobile/Kconfig.64 index 6b93d25358..cb9f569e5f 100644 --- a/arch/arm/mach-rmobile/Kconfig.64 +++ b/arch/arm/mach-rmobile/Kconfig.64 @@ -34,6 +34,11 @@ config TARGET_EAGLE help Support for Renesas R-Car Gen3 Eagle platform +config TARGET_EBISU + bool "Ebisu board" + help + Support for Renesas R-Car Gen3 Ebisu platform + config TARGET_SALVATOR_X bool "Salvator-X board" help @@ -51,6 +56,7 @@ config SYS_SOC source "board/renesas/draak/Kconfig" source "board/renesas/eagle/Kconfig" +source "board/renesas/ebisu/Kconfig" source "board/renesas/salvator-x/Kconfig" source "board/renesas/ulcb/Kconfig" diff --git a/board/renesas/ebisu/Kconfig b/board/renesas/ebisu/Kconfig new file mode 100644 index 0000000000..f500a94c9a --- /dev/null +++ b/board/renesas/ebisu/Kconfig @@ -0,0 +1,15 @@ +if TARGET_EBISU + +config SYS_SOC + default "rmobile" + +config SYS_BOARD + default "ebisu" + +config SYS_VENDOR + default "renesas" + +config SYS_CONFIG_NAME + default "ebisu" + +endif diff --git a/board/renesas/ebisu/MAINTAINERS b/board/renesas/ebisu/MAINTAINERS new file mode 100644 index 0000000000..facad520ca --- /dev/null +++ b/board/renesas/ebisu/MAINTAINERS @@ -0,0 +1,6 @@ +EBISU BOARD +M: Marek Vasut +S: Maintained +F: board/renesas/ebisu/ +F: include/configs/ebisu.h +F: configs/r8a77990_ebisu_defconfig diff --git a/board/renesas/ebisu/Makefile b/board/renesas/ebisu/Makefile new file mode 100644 index 0000000000..2741035c57 --- /dev/null +++ b/board/renesas/ebisu/Makefile @@ -0,0 +1,9 @@ +# +# board/renesas/ebisu/Makefile +# +# Copyright (C) 2018 Renesas Electronics Corporation +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y := ebisu.o diff --git a/board/renesas/ebisu/ebisu.c b/board/renesas/ebisu/ebisu.c new file mode 100644 index 0000000000..92062141a2 --- /dev/null +++ b/board/renesas/ebisu/ebisu.c @@ -0,0 +1,87 @@ +/* + * board/renesas/ebisu/ebisu.c + * This file is Ebisu board support. + * + * Copyright (C) 2018 Marek Vasut + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +void s_init(void) +{ +} + +#define TMU0_MSTP125 BIT(25) /* secure */ + +int board_early_init_f(void) +{ + /* TMU0 */ + mstp_clrbits_le32(MSTPSR1, SMSTPCR1, TMU0_MSTP125); + + return 0; +} + +int board_init(void) +{ + /* adress of boot parameters */ + gd->bd->bi_boot_params = CONFIG_SYS_TEXT_BASE + 0x50000; + + return 0; +} + +int dram_init(void) +{ + if (fdtdec_setup_memory_size() != 0) + return -EINVAL; + + return 0; +} + +int dram_init_banksize(void) +{ + fdtdec_setup_memory_banksize(); + + return 0; +} + +#define RST_BASE 0xE6160000 +#define RST_CA57RESCNT (RST_BASE + 0x40) +#define RST_CA53RESCNT (RST_BASE + 0x44) +#define RST_RSTOUTCR (RST_BASE + 0x58) +#define RST_CA57_CODE 0xA5A5000F +#define RST_CA53_CODE 0x5A5A000F + +void reset_cpu(ulong addr) +{ + unsigned long midr, cputype; + + asm volatile("mrs %0, midr_el1" : "=r" (midr)); + cputype = (midr >> 4) & 0xfff; + + if (cputype == 0xd03) + writel(RST_CA53_CODE, RST_CA53RESCNT); + else if (cputype == 0xd07) + writel(RST_CA57_CODE, RST_CA57RESCNT); + else + hang(); +} diff --git a/configs/r8a77990_ebisu_defconfig b/configs/r8a77990_ebisu_defconfig new file mode 100644 index 0000000000..591eafed3b --- /dev/null +++ b/configs/r8a77990_ebisu_defconfig @@ -0,0 +1,64 @@ +CONFIG_ARM=y +CONFIG_ARCH_RMOBILE=y +CONFIG_SYS_TEXT_BASE=0x50000000 +CONFIG_SYS_MALLOC_F_LEN=0x2000 +CONFIG_RCAR_GEN3=y +CONFIG_R8A77990=y +CONFIG_TARGET_EBISU=y +CONFIG_DEFAULT_DEVICE_TREE="r8a77990-ebisu-u-boot" +CONFIG_SMBIOS_PRODUCT_NAME="" +CONFIG_FIT=y +# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set +CONFIG_USE_BOOTARGS=y +CONFIG_BOOTARGS="console=ttySC0,115200" +CONFIG_SUPPORT_RAW_INITRD=y +CONFIG_DEFAULT_FDT_FILE="r8a77990-ebisu.dtb" +CONFIG_VERSION_VARIABLE=y +CONFIG_HUSH_PARSER=y +CONFIG_CMD_BOOTZ=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_I2C=y +CONFIG_CMD_MMC=y +CONFIG_CMD_USB=y +CONFIG_CMD_DHCP=y +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y +CONFIG_CMD_EXT2=y +CONFIG_CMD_EXT4=y +CONFIG_CMD_EXT4_WRITE=y +CONFIG_CMD_FAT=y +CONFIG_CMD_FS_GENERIC=y +CONFIG_OF_CONTROL=y +CONFIG_ENV_IS_IN_MMC=y +CONFIG_REGMAP=y +CONFIG_SYSCON=y +CONFIG_CLK=y +CONFIG_CLK_RENESAS=y +CONFIG_DM_GPIO=y +CONFIG_RCAR_GPIO=y +CONFIG_DM_I2C=y +CONFIG_SYS_I2C_RCAR_IIC=y +CONFIG_DM_MMC=y +CONFIG_MMC_IO_VOLTAGE=y +CONFIG_MMC_UHS_SUPPORT=y +CONFIG_MMC_HS200_SUPPORT=y +CONFIG_RENESAS_SDHI=y +CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ90X1=y +CONFIG_DM_ETH=y +CONFIG_RENESAS_RAVB=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y +CONFIG_PINCTRL_PFC=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y +CONFIG_SCIF_CONSOLE=y +CONFIG_USB=y +CONFIG_DM_USB=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_GENERIC=y +CONFIG_USB_STORAGE=y +CONFIG_OF_LIBFDT_OVERLAY=y +CONFIG_SMBIOS_MANUFACTURER="" diff --git a/include/configs/ebisu.h b/include/configs/ebisu.h new file mode 100644 index 0000000000..2d2dddb8cb --- /dev/null +++ b/include/configs/ebisu.h @@ -0,0 +1,34 @@ +/* + * include/configs/ebisu.h + * This file is Ebisu board configuration. + * + * Copyright (C) 2018 Renesas Electronics Corporation + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __EBISU_H +#define __EBISU_H + +#undef DEBUG + +#include "rcar-gen3-common.h" + +/* Ethernet RAVB */ +#define CONFIG_NET_MULTI +#define CONFIG_BITBANGMII +#define CONFIG_BITBANGMII_MULTI + +/* Board Clock */ +/* XTAL_CLK : 33.33MHz */ +#define CONFIG_SYS_CLK_FREQ 48000000u + +/* Generic Timer Definitions (use in assembler source) */ +#define COUNTER_FREQUENCY 0xFE502A /* 16.66MHz from CPclk */ + +/* Environment in eMMC, at the end of 2nd "boot sector" */ +#define CONFIG_ENV_OFFSET (-CONFIG_ENV_SIZE) +#define CONFIG_SYS_MMC_ENV_DEV 2 +#define CONFIG_SYS_MMC_ENV_PART 2 + +#endif /* __EBISU_H */ -- 2.25.1