From 36b63c92c3ffb5a8673f58e2111f3ee3273e6952 Mon Sep 17 00:00:00 2001 From: Hai Pham Date: Tue, 28 Feb 2023 22:37:08 +0100 Subject: [PATCH] ARM: renesas: Add R8A779G0 V4H White Hawk board code Add board code for R8A779G0 V4H White Hawk board. Reviewed-by: Marek Vasut Signed-off-by: Hai Pham Signed-off-by: Marek Vasut [Marek: Synchronize configuration symbols which are now switched to Kconfig Mallocate gd->bd->bi_boot_params, i.e. drop the assignment Sort headers, use clrbits_le32(), use BIT macros where appropriate Use CONFIG_SYS_CLK_FREQ for counter frequency instead of custom macro] --- arch/arm/dts/Makefile | 3 +- arch/arm/dts/r8a779g0-white-hawk-u-boot.dts | 42 ++++++++++++++++ arch/arm/mach-rmobile/Kconfig.rcar4 | 7 +++ board/renesas/whitehawk/Kconfig | 15 ++++++ board/renesas/whitehawk/Makefile | 9 ++++ board/renesas/whitehawk/whitehawk.c | 72 ++++++++++++++++++++++++++++ configs/r8a779g0_whitehawk_defconfig | 74 +++++++++++++++++++++++++++++ include/configs/whitehawk.h | 14 ++++++ 8 files changed, 235 insertions(+), 1 deletion(-) create mode 100644 arch/arm/dts/r8a779g0-white-hawk-u-boot.dts create mode 100644 board/renesas/whitehawk/Kconfig create mode 100644 board/renesas/whitehawk/Makefile create mode 100644 board/renesas/whitehawk/whitehawk.c create mode 100644 configs/r8a779g0_whitehawk_defconfig create mode 100644 include/configs/whitehawk.h diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 3e378e8..337bee7 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -1048,7 +1048,8 @@ dtb-$(CONFIG_RCAR_GEN3) += \ dtb-$(CONFIG_RCAR_GEN4) += \ r8a779a0-falcon-u-boot.dtb \ - r8a779f0-spider-u-boot.dtb + r8a779f0-spider-u-boot.dtb \ + r8a779g0-white-hawk-u-boot.dtb ifdef CONFIG_RCAR_64 DTC_FLAGS += -R 4 -p 0x1000 diff --git a/arch/arm/dts/r8a779g0-white-hawk-u-boot.dts b/arch/arm/dts/r8a779g0-white-hawk-u-boot.dts new file mode 100644 index 0000000..efc1b95 --- /dev/null +++ b/arch/arm/dts/r8a779g0-white-hawk-u-boot.dts @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree Source extras for U-Boot for the White Hawk board + * + * Copyright (C) 2021 Renesas Electronics Corp. + */ + +#include "r8a779g0-white-hawk.dts" +#include "r8a779g0-u-boot.dtsi" + +/ { + aliases { + spi0 = &rpc; + }; +}; + +&pfc { + qspi0_pins: qspi0 { + groups = "qspi0_ctrl", "qspi0_data4"; + function = "qspi0"; + }; +}; + +&rpc { + pinctrl-0 = <&qspi0_pins>; + pinctrl-names = "default"; + + #address-cells = <1>; + #size-cells = <0>; + spi-max-frequency = <40000000>; + status = "okay"; + + spi-flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "s25fs512s", "jedec,spi-nor"; + reg = <0>; + spi-tx-bus-width = <1>; + spi-rx-bus-width = <1>; + spi-max-frequency = <40000000>; + }; +}; diff --git a/arch/arm/mach-rmobile/Kconfig.rcar4 b/arch/arm/mach-rmobile/Kconfig.rcar4 index 2dc9f00..d4f93c8 100644 --- a/arch/arm/mach-rmobile/Kconfig.rcar4 +++ b/arch/arm/mach-rmobile/Kconfig.rcar4 @@ -38,9 +38,16 @@ config TARGET_SPIDER help Support for Renesas R-Car Gen4 Spider platform +config TARGET_WHITEHAWK + bool "White Hawk board" + imply R8A779G0 + help + Support for Renesas R-Car Gen4 White Hawk platform + endchoice source "board/renesas/falcon/Kconfig" source "board/renesas/spider/Kconfig" +source "board/renesas/whitehawk/Kconfig" endif diff --git a/board/renesas/whitehawk/Kconfig b/board/renesas/whitehawk/Kconfig new file mode 100644 index 0000000..05a8789 --- /dev/null +++ b/board/renesas/whitehawk/Kconfig @@ -0,0 +1,15 @@ +if TARGET_WHITEHAWK + +config SYS_SOC + default "rmobile" + +config SYS_BOARD + default "whitehawk" + +config SYS_VENDOR + default "renesas" + +config SYS_CONFIG_NAME + default "whitehawk" + +endif diff --git a/board/renesas/whitehawk/Makefile b/board/renesas/whitehawk/Makefile new file mode 100644 index 0000000..ed5bdc0 --- /dev/null +++ b/board/renesas/whitehawk/Makefile @@ -0,0 +1,9 @@ +# +# board/renesas/whitehawk/Makefile +# +# Copyright (C) 2021 Renesas Electronics Corp. +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y := whitehawk.o ../rcar-common/common.o diff --git a/board/renesas/whitehawk/whitehawk.c b/board/renesas/whitehawk/whitehawk.c new file mode 100644 index 0000000..19f09e0 --- /dev/null +++ b/board/renesas/whitehawk/whitehawk.c @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * board/renesas/whitehawk/whitehawk.c + * This file is White Hawk board support. + * + * Copyright (C) 2021 Renesas Electronics Corp. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +static void init_generic_timer(void) +{ + const u32 freq = CONFIG_SYS_CLK_FREQ; + + /* Update memory mapped and register based freqency */ + asm volatile ("msr cntfrq_el0, %0" :: "r" (freq)); + writel(freq, CNTFID0); + + /* Enable counter */ + setbits_le32(CNTCR_BASE, CNTCR_EN); +} + +static void init_gic_v3(void) +{ + /* GIC v3 power on */ + writel(BIT(1), GICR_LPI_PWRR); + + /* Wait till the WAKER_CA_BIT changes to 0 */ + clrbits_le32(GICR_LPI_WAKER, BIT(1)); + while (readl(GICR_LPI_WAKER) & BIT(2)) + ; + + writel(0xffffffff, GICR_SGI_BASE + GICR_IGROUPR0); +} + +void s_init(void) +{ + if (current_el() == 3) + init_generic_timer(); +} + +int board_early_init_f(void) +{ + /* Unlock CPG access */ + writel(0x5A5AFFFF, CPGWPR); + writel(0xA5A50000, CPGWPCR); + + return 0; +} + +int board_init(void) +{ + if (current_el() == 3) + init_gic_v3(); + + return 0; +} + +void reset_cpu(void) +{ + writel(RST_SPRES, RST_SRESCR0); +} diff --git a/configs/r8a779g0_whitehawk_defconfig b/configs/r8a779g0_whitehawk_defconfig new file mode 100644 index 0000000..e78bb5b --- /dev/null +++ b/configs/r8a779g0_whitehawk_defconfig @@ -0,0 +1,74 @@ +CONFIG_ARM=y +CONFIG_ARCH_CPU_INIT=y +CONFIG_ARCH_RMOBILE=y +CONFIG_SYS_MALLOC_LEN=0x4000000 +CONFIG_ENV_SIZE=0x20000 +CONFIG_ENV_OFFSET=0xFFFE0000 +CONFIG_DM_GPIO=y +CONFIG_DEFAULT_DEVICE_TREE="r8a779g0-white-hawk-u-boot" +CONFIG_RCAR_GEN4=y +CONFIG_TARGET_WHITEHAWK=y +CONFIG_SYS_CLK_FREQ=16666666 +# CONFIG_PSCI_RESET is not set +CONFIG_SYS_LOAD_ADDR=0x58000000 +CONFIG_SYS_BOOT_GET_CMDLINE=y +CONFIG_SYS_BARGSIZE=2048 +CONFIG_REMAKE_ELF=y +CONFIG_SYS_MONITOR_LEN=1048576 +CONFIG_FIT=y +CONFIG_SUPPORT_RAW_INITRD=y +CONFIG_USE_BOOTARGS=y +CONFIG_BOOTARGS="root=/dev/nfs rw nfsroot=192.168.0.1:/export/rfs ip=192.168.0.20" +CONFIG_USE_BOOTCOMMAND=y +CONFIG_BOOTCOMMAND="tftp 0x48080000 Image && tftp 0x48000000 Image-r8a779g0-white-hawk.dtb && booti 0x48080000 - 0x48000000" +CONFIG_DEFAULT_FDT_FILE="r8a779g0-white-hawk.dtb" +CONFIG_SYS_MALLOC_BOOTPARAMS=y +CONFIG_HUSH_PARSER=y +CONFIG_SYS_MAXARGS=64 +CONFIG_SYS_CBSIZE=2048 +CONFIG_CMD_BOOTZ=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_I2C=y +CONFIG_CMD_MMC=y +CONFIG_CMD_SPI=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_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_SYS_MMC_ENV_PART=2 +CONFIG_VERSION_VARIABLE=y +CONFIG_REGMAP=y +CONFIG_SYSCON=y +CONFIG_CLK=y +CONFIG_CLK_RENESAS=y +CONFIG_RCAR_GPIO=y +CONFIG_DM_I2C=y +CONFIG_SYS_I2C_RCAR_I2C=y +CONFIG_MMC_IO_VOLTAGE=y +CONFIG_MMC_UHS_SUPPORT=y +CONFIG_MMC_HS200_SUPPORT=y +CONFIG_RENESAS_SDHI=y +CONFIG_MTD=y +CONFIG_DM_SPI_FLASH=y +CONFIG_SPI_FLASH_SPANSION=y +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set +CONFIG_BITBANGMII=y +CONFIG_BITBANGMII_MULTI=y +CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ90X1=y +CONFIG_RENESAS_RAVB=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y +CONFIG_BAUDRATE=921600 +CONFIG_SCIF_CONSOLE=y +CONFIG_SPI=y +CONFIG_DM_SPI=y +CONFIG_RENESAS_RPC_SPI=y diff --git a/include/configs/whitehawk.h b/include/configs/whitehawk.h new file mode 100644 index 0000000..4b4cf63 --- /dev/null +++ b/include/configs/whitehawk.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * include/configs/whitehawk.h + * This file is White Hawk board configuration. + * + * Copyright (C) 2021 Renesas Electronics Corp. + */ + +#ifndef __WHITEHAWK_H +#define __WHITEHAWK_H + +#include "rcar-gen4-common.h" + +#endif /* __WHITEHAWK_H */ -- 2.7.4