bool "Socionext UniPhier SoCs"
select BOARD_LATE_INIT
select DM
+ select DM_ETH
select DM_GPIO
select DM_I2C
select DM_MMC
r8a77990-ebisu-u-boot.dtb \
r8a77995-draak-u-boot.dtb
+ifdef CONFIG_RCAR_GEN3
+DTC_FLAGS += -R 4 -p 0x1000
+endif
+
dtb-$(CONFIG_RZA1) += \
r7s72100-gr-peach-u-boot.dtb
};
&sdhi2 {
+ mmc-ddr-1_8v;
+ mmc-hs200-1_8v;
mmc-hs400-1_8v;
max-frequency = <200000000>;
};
};
&sdhi2 {
+ mmc-ddr-1_8v;
+ mmc-hs200-1_8v;
mmc-hs400-1_8v;
max-frequency = <200000000>;
};
};
&sdhi2 {
+ mmc-ddr-1_8v;
+ mmc-hs200-1_8v;
mmc-hs400-1_8v;
max-frequency = <200000000>;
};
};
&sdhi2 {
+ mmc-ddr-1_8v;
+ mmc-hs200-1_8v;
mmc-hs400-1_8v;
max-frequency = <200000000>;
};
};
&sdhi2 {
+ mmc-ddr-1_8v;
+ mmc-hs200-1_8v;
mmc-hs400-1_8v;
max-frequency = <200000000>;
status = "okay";
};
&sdhi2 {
+ mmc-ddr-1_8v;
+ mmc-hs200-1_8v;
mmc-hs400-1_8v;
max-frequency = <200000000>;
status = "okay";
vmmc-supply = <®_3p3v>;
vqmmc-supply = <®_1p8v>;
+ mmc-ddr-1_8v;
mmc-hs200-1_8v;
mmc-hs400-1_8v;
bus-width = <8>;
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <cpu_func.h>
#include <linux/io.h>
#include <linux/kernel.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <cpu_func.h>
-#include <asm/cache.h>
#include <linux/bitops.h>
#include <linux/delay.h>
#include <linux/io.h>
#include <asm/processor.h>
#include <asm/psci.h>
#include <asm/secure.h>
+#include <asm/system.h>
#include "../debug.h"
#include "../soc-info.h"
* Copyright (C) 2012-2015 Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
+#include <config.h>
#include <init.h>
#include <linux/io.h>
* Copyright (C) 2016 Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <linux/types.h>
#include <asm/armv8/mmu.h>
// Copyright (C) 2019 Socionext Inc.
// Author: Masahiro Yamada <yamada.masahiro@socionext.com>
-#include <common.h>
#include <dm/of.h>
#include <fdt_support.h>
+#include <linux/errno.h>
#include <linux/io.h>
#include <linux/libfdt.h>
#include <linux/sizes.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <log.h>
#include <linux/errno.h>
#include <linux/io.h>
#include <linux/printk.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <env.h>
#include <init.h>
#include <spl.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <linux/libfdt.h>
#include <linux/kernel.h>
+#include <asm/global_data.h>
#include "init.h"
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <spl.h>
#include <linux/io.h>
#include <linux/kernel.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <spl.h>
#include <linux/io.h>
#include <linux/kernel.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <spl.h>
#include <linux/io.h>
#include <linux/kernel.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <spl.h>
#include <linux/io.h>
#include <linux/kernel.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <spl.h>
#include <linux/bitops.h>
#include <linux/io.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <command.h>
#include <spl.h>
#include <stdio.h>
#include <linux/bitops.h>
#include <linux/bug.h>
+#include <linux/errno.h>
#include <linux/io.h>
#include <linux/log2.h>
* Copyright (C) 2015-2017 Socionext Inc.
*/
-#include <common.h>
#include <spl.h>
#include <linux/io.h>
* Copyright (C) 2016-2017 Socionext Inc.
*/
-#include <common.h>
#include <spl.h>
#include <linux/io.h>
* Copyright (C) 2015-2017 Socionext Inc.
*/
-#include <common.h>
#include <spl.h>
#include <linux/io.h>
* Copyright (C) 2016 Socionext Inc.
*/
-#include <common.h>
#include <spl.h>
#include <linux/bitops.h>
#include <linux/delay.h>
* Copyright (C) 2015-2016 Socionext Inc.
*/
-#include <common.h>
#include <linux/delay.h>
#include <linux/errno.h>
#include <linux/io.h>
* Copyright (C) 2015-2016 Socionext Inc.
*/
-#include <common.h>
#include <linux/delay.h>
#include <linux/errno.h>
#include <linux/io.h>
* Copyright (C) 2016 Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <debug_uart.h>
#include <linux/io.h>
#include <linux/serial_reg.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <command.h>
#include <stdio.h>
#include <linux/io.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <command.h>
#include <stdio.h>
#include <linux/io.h>
* Copyright (C) 2015-2016 Socionext Inc.
*/
-#include <log.h>
#include <linux/bitops.h>
#include <linux/delay.h>
#include <linux/errno.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <linux/errno.h>
#include <linux/io.h>
#include <linux/sizes.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <linux/errno.h>
#include <linux/io.h>
#include <linux/sizes.h>
* Copyright (C) 2015 Socionext Inc.
*/
-#include <init.h>
-#include <log.h>
#include <linux/bitops.h>
#include <linux/delay.h>
#include <linux/errno.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <linux/errno.h>
#include <linux/io.h>
#include <linux/sizes.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <init.h>
#include <linux/errno.h>
#include <linux/io.h>
#include <linux/printk.h>
#include <linux/sizes.h>
#include <asm/global_data.h>
+#include <asm/u-boot.h>
#include "init.h"
#include "sg-regs.h"
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <fdt_support.h>
#include <fdtdec.h>
#include <jffs2/load_kernel.h>
#include <mtd_node.h>
+#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/printk.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <linux/errno.h>
#include <linux/io.h>
#include <linux/sizes.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
-#include <fdt_support.h>
-#include <log.h>
-#include <net.h>
+#include <config.h>
#include <dm/of.h>
+#include <fdt_support.h>
#include <linux/ctype.h>
#include <linux/delay.h>
#include <linux/io.h>
+#include <asm/global_data.h>
#include "micro-support-card.h"
support_card_show_revision();
}
-#if defined(CONFIG_SMC911X)
-#include <netdev.h>
-
-int board_eth_init(bd_t *bis)
-{
- if (!support_card_found)
- return 0;
-
- return smc911x_initialize(0, (unsigned long)support_card_base + SMC911X_OFFSET);
-}
-#endif
-
#if defined(CONFIG_MTD_NOR_FLASH)
#include <mtd/cfi_flash.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <mmc.h>
#include <spl.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#include <mmc.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <log.h>
#include <linux/errno.h>
#include <dm.h>
#include <dm/uclass-internal.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <linux/errno.h>
#include <dm.h>
#include <dm/pinctrl.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <cpu_func.h>
#include <linux/io.h>
#include <asm/secure.h>
* Copyright (C) 2016-2017 Socionext Inc.
*/
-#include <common.h>
#include <spl.h>
#include <linux/io.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <linux/io.h>
#include <asm/global_data.h>
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <debug_uart.h>
#include <hang.h>
#include <spl.h>
endif
PLATFORM_CPPFLAGS += -DCONFIG_SH -D__SH__
-PLATFORM_RELFLAGS += -fpic
+PLATFORM_RELFLAGS += -fpic -ffunction-sections -fdata-sections
LDFLAGS_FINAL = --gc-sections
PLATFORM_RELFLAGS += -ffixed-r13
/* If the firmware passed a device tree use it for U-Boot DRAM setup. */
extern u64 rcar_atf_boot_args[];
-int dram_init(void)
+int fdtdec_board_setup(const void *fdt_blob)
{
- const void *atf_fdt_blob = (const void *)(rcar_atf_boot_args[1]);
- const void *blob;
+ void *atf_fdt_blob = (void *)(rcar_atf_boot_args[1]);
- /* Check if ATF passed us DTB. If not, fall back to builtin DTB. */
if (fdt_magic(atf_fdt_blob) == FDT_MAGIC)
- blob = atf_fdt_blob;
- else
- blob = gd->fdt_blob;
+ fdt_overlay_apply_node((void *)fdt_blob, 0, atf_fdt_blob, 0);
- return fdtdec_setup_mem_size_base_fdt(blob);
+ return 0;
}
-int dram_init_banksize(void)
+int dram_init(void)
{
- const void *atf_fdt_blob = (const void *)(rcar_atf_boot_args[1]);
- const void *blob;
-
- /* Check if ATF passed us DTB. If not, fall back to builtin DTB. */
- if (fdt_magic(atf_fdt_blob) == FDT_MAGIC)
- blob = atf_fdt_blob;
- else
- blob = gd->fdt_blob;
+ return fdtdec_setup_mem_size_base_fdt(gd->fdt_blob);
+}
- fdtdec_setup_memory_banksize_fdt(blob);
+int dram_init_banksize(void)
+{
+ fdtdec_setup_memory_banksize_fdt(gd->fdt_blob);
return 0;
}
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_REGULATOR_GPIO=y
CONFIG_SCIF_CONSOLE=y
+CONFIG_TEE=y
+CONFIG_OPTEE=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_RENESAS_RPC_SPI=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_REGULATOR_GPIO=y
CONFIG_SCIF_CONSOLE=y
+CONFIG_TEE=y
+CONFIG_OPTEE=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_RENESAS_RPC_SPI=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_REGULATOR_GPIO=y
CONFIG_SCIF_CONSOLE=y
+CONFIG_TEE=y
+CONFIG_OPTEE=y
CONFIG_USB=y
CONFIG_DM_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_REGULATOR_GPIO=y
CONFIG_SCIF_CONSOLE=y
+CONFIG_TEE=y
+CONFIG_OPTEE=y
CONFIG_USB=y
CONFIG_DM_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_REGULATOR_GPIO=y
CONFIG_SCIF_CONSOLE=y
+CONFIG_TEE=y
+CONFIG_OPTEE=y
CONFIG_USB=y
CONFIG_DM_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_REGULATOR_GPIO=y
CONFIG_SCIF_CONSOLE=y
+CONFIG_TEE=y
+CONFIG_OPTEE=y
CONFIG_SYSRESET=y
CONFIG_USB=y
CONFIG_DM_USB=y
CONFIG_NAND_DENALI_SPARE_AREA_SKIP_BYTES=8
CONFIG_SPL_NAND_DENALI=y
CONFIG_SMC911X=y
-CONFIG_SMC911X_BASE=0x0
CONFIG_SMC911X_32_BIT=y
CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_NAND_DENALI_DT=y
CONFIG_NAND_DENALI_SPARE_AREA_SKIP_BYTES=8
CONFIG_SPL_NAND_DENALI=y
-CONFIG_DM_ETH=y
CONFIG_SNI_AVE=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_MTD_RAW_NAND=y
CONFIG_NAND_DENALI_DT=y
CONFIG_NAND_DENALI_SPARE_AREA_SKIP_BYTES=8
-CONFIG_DM_ETH=y
CONFIG_SNI_AVE=y
CONFIG_PINCONF=y
CONFIG_SPI=y
Enable the driver for NAND flash on platforms using a Denali NAND
controller as a DT device.
-config NAND_DENALI_SPARE_AREA_SKIP_BYTES
- int "Number of bytes skipped in OOB area"
- depends on NAND_DENALI
- range 0 63
- help
- This option specifies the number of bytes to skip from the beginning
- of OOB area before last ECC sector data starts. This is potentially
- used to preserve the bad block marker in the OOB area.
-
config NAND_LPC32XX_SLC
bool "Support LPC32XX_SLC controller"
help
This is a small implementation of the Denali NAND controller
for use on SPL.
+config NAND_DENALI_SPARE_AREA_SKIP_BYTES
+ int "Number of bytes skipped in OOB area"
+ depends on SPL_NAND_DENALI
+ range 0 63
+ help
+ This option specifies the number of bytes to skip from the beginning
+ of OOB area before last ECC sector data starts. This is potentially
+ used to preserve the bad block marker in the OOB area.
+
config SPL_NAND_SIMPLE
bool "Use simple SPL NAND driver"
depends on !SPL_NAND_AM33XX_BCH
iowrite32(CHIP_EN_DONT_CARE__FLAG, denali->reg + CHIP_ENABLE_DONT_CARE);
iowrite32(0xffff, denali->reg + SPARE_AREA_MARKER);
+ iowrite32(WRITE_PROTECT__FLAG, denali->reg + WRITE_PROTECT);
}
int denali_calc_ecc_bytes(int step_size, int strength)
*/
int fdtdec_setup(void);
+/**
+ * Perform board-specific early DT adjustments
+ */
+int fdtdec_board_setup(const void *fdt_blob);
+
#if CONFIG_IS_ENABLED(MULTI_DTB_FIT)
/**
* fdtdec_resetup() - Set up the device tree again
return 0;
}
+__weak int fdtdec_board_setup(const void *fdt_blob)
+{
+ return 0;
+}
+
int fdtdec_setup(void)
{
+ int ret;
#if CONFIG_IS_ENABLED(OF_CONTROL)
# if CONFIG_IS_ENABLED(MULTI_DTB_FIT)
void *fdt_blob;
# endif
#endif
- return fdtdec_prepare_fdt();
+ ret = fdtdec_prepare_fdt();
+ if (!ret)
+ ret = fdtdec_board_setup(gd->fdt_blob);
+ return ret;
}
#if CONFIG_IS_ENABLED(MULTI_DTB_FIT)
return ret;
}
+
+int fdt_overlay_apply_node(void *fdt, int target, void *fdto, int node)
+{
+ return overlay_apply_node(fdt, target, fdto, node);
+}
*/
int fdt_overlay_apply(void *fdt, void *fdto);
+/**
+ * fdt_overlay_apply_node - Merges a node into the base device tree
+ *
+ * See overlay_apply_node() for details.
+ */
+int fdt_overlay_apply_node(void *fdt, int target, void *fdto, int node);
+
/**********************************************************************/
/* Debugging / informational functions */
/**********************************************************************/