From 558d10620bfcf755a08d35eb6f43d37438ecc3ac Mon Sep 17 00:00:00 2001 From: Hai Pham Date: Tue, 28 Feb 2023 22:34:46 +0100 Subject: [PATCH] ARM: renesas: Add R8A779F0 S4 Spider board code Add board code for R8A779F0 S4 Spider 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/r8a779f0-spider-u-boot.dts | 42 +++++++++++++++ arch/arm/mach-rmobile/Kconfig.rcar4 | 7 +++ board/renesas/spider/Kconfig | 15 ++++++ board/renesas/spider/Makefile | 9 ++++ board/renesas/spider/spider.c | 72 +++++++++++++++++++++++++ configs/r8a779f0_spider_defconfig | 69 ++++++++++++++++++++++++ include/configs/spider.h | 14 +++++ 8 files changed, 230 insertions(+), 1 deletion(-) create mode 100644 arch/arm/dts/r8a779f0-spider-u-boot.dts create mode 100644 board/renesas/spider/Kconfig create mode 100644 board/renesas/spider/Makefile create mode 100644 board/renesas/spider/spider.c create mode 100644 configs/r8a779f0_spider_defconfig create mode 100644 include/configs/spider.h diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 0fdc818eae..3e378e81e3 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -1047,7 +1047,8 @@ dtb-$(CONFIG_RCAR_GEN3) += \ r8a77995-draak-u-boot.dtb dtb-$(CONFIG_RCAR_GEN4) += \ - r8a779a0-falcon-u-boot.dtb + r8a779a0-falcon-u-boot.dtb \ + r8a779f0-spider-u-boot.dtb ifdef CONFIG_RCAR_64 DTC_FLAGS += -R 4 -p 0x1000 diff --git a/arch/arm/dts/r8a779f0-spider-u-boot.dts b/arch/arm/dts/r8a779f0-spider-u-boot.dts new file mode 100644 index 0000000000..26fc8bcf44 --- /dev/null +++ b/arch/arm/dts/r8a779f0-spider-u-boot.dts @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree Source extras for U-Boot for the Spider board + * + * Copyright (C) 2021 Renesas Electronics Corp. + */ + +#include "r8a779f0-spider.dts" +#include "r8a779f0-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 ad9fc3a4bd..262791635e 100644 --- a/arch/arm/mach-rmobile/Kconfig.rcar4 +++ b/arch/arm/mach-rmobile/Kconfig.rcar4 @@ -26,8 +26,15 @@ config TARGET_FALCON help Support for Renesas R-Car Gen3 Falcon platform +config TARGET_SPIDER + bool "Spider board" + imply R8A779F0 + help + Support for Renesas R-Car Gen4 Spider platform + endchoice source "board/renesas/falcon/Kconfig" +source "board/renesas/spider/Kconfig" endif diff --git a/board/renesas/spider/Kconfig b/board/renesas/spider/Kconfig new file mode 100644 index 0000000000..8df2e85fc9 --- /dev/null +++ b/board/renesas/spider/Kconfig @@ -0,0 +1,15 @@ +if TARGET_SPIDER + +config SYS_SOC + default "rmobile" + +config SYS_BOARD + default "spider" + +config SYS_VENDOR + default "renesas" + +config SYS_CONFIG_NAME + default "spider" + +endif diff --git a/board/renesas/spider/Makefile b/board/renesas/spider/Makefile new file mode 100644 index 0000000000..545cb58a98 --- /dev/null +++ b/board/renesas/spider/Makefile @@ -0,0 +1,9 @@ +# +# board/renesas/spider/Makefile +# +# Copyright (C) 2020 Renesas Electronics Corp. +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y := spider.o ../rcar-common/common.o diff --git a/board/renesas/spider/spider.c b/board/renesas/spider/spider.c new file mode 100644 index 0000000000..caf88dcc32 --- /dev/null +++ b/board/renesas/spider/spider.c @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * board/renesas/spider/spider.c + * This file is Spider 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/r8a779f0_spider_defconfig b/configs/r8a779f0_spider_defconfig new file mode 100644 index 0000000000..c77ea84ed9 --- /dev/null +++ b/configs/r8a779f0_spider_defconfig @@ -0,0 +1,69 @@ +CONFIG_ARM=y +CONFIG_ARCH_CPU_INIT=y +CONFIG_ARCH_RMOBILE=y +CONFIG_SYS_MALLOC_LEN=0x4000000 +CONFIG_ENV_SIZE=0x40000 +CONFIG_ENV_OFFSET=0xD00000 +CONFIG_ENV_SECT_SIZE=0x40000 +CONFIG_DM_GPIO=y +CONFIG_DEFAULT_DEVICE_TREE="r8a779f0-spider-u-boot" +CONFIG_RCAR_GEN4=y +CONFIG_TARGET_SPIDER=y +CONFIG_SYS_CLK_FREQ=20000000 +# 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-r8a779f0-spider.dtb && booti 0x48080000 - 0x48000000" +CONFIG_DEFAULT_FDT_FILE="r8a779f0-spider.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_SPI_FLASH=y +CONFIG_SYS_RELOC_GD_ENV_ADDR=y +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_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y +CONFIG_BAUDRATE=1843200 +CONFIG_SCIF_CONSOLE=y +CONFIG_SPI=y +CONFIG_DM_SPI=y +CONFIG_RENESAS_RPC_SPI=y diff --git a/include/configs/spider.h b/include/configs/spider.h new file mode 100644 index 0000000000..e9b7d6bad5 --- /dev/null +++ b/include/configs/spider.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * include/configs/spider.h + * This file is Spider board configuration. + * + * Copyright (C) 2021 Renesas Electronics Corp. + */ + +#ifndef __SPIDER_H +#define __SPIDER_H + +#include "rcar-gen4-common.h" + +#endif /* __SPIDER_H */ -- 2.39.5