[U-Boot] [PATCHv2] ARM: socfpga: add support for IS1 board
Marek Vasut
marex at denx.de
Thu Jun 2 17:23:09 CEST 2016
On 06/02/2016 01:56 PM, Pavel Machek wrote:
> This adds support for IS1 board. Pretty usual socfpga board,
> 256MB of RAM, does not have MMC, two SPI chips, one ethernet port, two
> additional ethernet ports connected to the FPGA.
>
> Signed-off-by: Pavel Machek <pavel at denx.de>
>
> ---
>
> v2: add diffstat
>
> arch/arm/dts/Makefile | 1
> arch/arm/dts/socfpga_cyclone5_is1.dts | 109 +++++
> arch/arm/mach-socfpga/Kconfig | 6
> board/is1/MAINTAINERS | 6
> board/is1/Makefile | 5
> board/is1/qts/iocsr_config.h | 660 ++++++++++++++++++++++++++++++++++
> board/is1/qts/pinmux_config.h | 219 +++++++++++
> board/is1/qts/pll_config.h | 85 ++++
> board/is1/qts/sdram_config.h | 341 +++++++++++++++++
> configs/socfpga_is1_defconfig | 43 ++
> include/configs/socfpga_is1.h | 83 ++++
> 11 files changed, 1558 insertions(+)
>
>
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 92c7545..a397c69 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -102,6 +102,7 @@ dtb-$(CONFIG_THUNDERX) += thunderx-88xx.dtb
>
> dtb-$(CONFIG_ARCH_SOCFPGA) += \
> socfpga_arria5_socdk.dtb \
> + socfpga_cyclone5_is1.dtb \
> socfpga_cyclone5_mcvevk.dtb \
> socfpga_cyclone5_socdk.dtb \
> socfpga_cyclone5_de0_nano_soc.dtb \
> diff --git a/arch/arm/dts/socfpga_cyclone5_is1.dts b/arch/arm/dts/socfpga_cyclone5_is1.dts
> new file mode 100644
> index 0000000..cdd2c99
> --- /dev/null
> +++ b/arch/arm/dts/socfpga_cyclone5_is1.dts
> @@ -0,0 +1,109 @@
> +/*
> + * Copyright (C) 2012 Altera Corporation <www.altera.com>
This copyright notice needs to be updated.
> + * SPDX-License-Identifier: GPL-2.0+
> + */
> +
> +#include "socfpga_cyclone5.dtsi"
> +
> +/ {
> + model = "Altera SOCFPGA IS1 board";
> + compatible = "altr,socfpga-cyclone5", "altr,socfpga";
The compatible string needs at least one vendor-specific entry.
> + chosen {
> + bootargs = "console=ttyS0,115200";
> + };
> +
> + memory {
> + name = "memory";
> + device_type = "memory";
> + reg = <0x0 0x10000000>;
> + };
> +
> + aliases {
> + /* this allow the ethaddr uboot environment variable contents
> + * to be added to the gmac1 device tree blob.
> + */
Please just drop this comment or fix the formatting of multiline comment.
> + ethernet0 = &gmac1;
> + udc0 = &usb1;
> + };
> +
> + regulator_3_3v: 3-3-v-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "3.3V";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + };
> +
> + soc {
> + u-boot,dm-pre-reloc;
> + };
> +};
[...]
> diff --git a/include/configs/socfpga_is1.h b/include/configs/socfpga_is1.h
> new file mode 100644
> index 0000000..77c3193
> --- /dev/null
> +++ b/include/configs/socfpga_is1.h
> @@ -0,0 +1,83 @@
> +/*
> + * Copyright (C) 2014 Marek Vasut <marex at denx.de>
This copyright notice needs to be updated.
> + * SPDX-License-Identifier: GPL-2.0+
> + */
> +#ifndef __CONFIG_SOCFPGA_IS1_H__
> +#define __CONFIG_SOCFPGA_IS1_H__
> +
> +#include <asm/arch/base_addr_ac5.h>
> +
> +/* U-Boot Commands */
> +#define CONFIG_SYS_NO_FLASH
> +#define CONFIG_DOS_PARTITION
> +#define CONFIG_FAT_WRITE
> +#define CONFIG_HW_WATCHDOG
> +
> +/* Memory configurations */
> +#define PHYS_SDRAM_1_SIZE 0x10000000
> +
> +/* Booting Linux */
> +#define CONFIG_BOOTDELAY 3
> +#define CONFIG_BOOTFILE "zImage"
> +#define CONFIG_BOOTARGS "console=ttyS0," __stringify(CONFIG_BAUDRATE)
> +#define CONFIG_BOOTCOMMAND "run qspiload"
> +#define CONFIG_LOADADDR 0x01000000
> +#define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
> +
> +/* Ethernet on SoC (EMAC) */
> +#if defined(CONFIG_CMD_NET)
> +#define CONFIG_EMAC_BASE SOCFPGA_EMAC1_ADDRESS
> +#define CONFIG_PHY_INTERFACE_MODE PHY_INTERFACE_MODE_RGMII
These two are controlled by OF and not needed here.
> +#define PHY_ANEG_TIMEOUT 8000
> +#define CONFIG_ARP_TIMEOUT 500UL
> +
> +
> +/* PHY */
> +#define CONFIG_PHY_MICREL
> +#define CONFIG_PHY_MICREL_KSZ9021
> +#endif
> +
> +/*
> + * enable UBIFS support, it's required to load the FPGA netlist
> + * and/or other boot files (kernel, device tree) from QSPI flash
> + * when these files do not reside in their individual partitions
> + */
> +#define CONFIG_RBTREE
> +#define CONFIG_LZO
I believe these two are already defined in socfpga_common.h
> +/* Extra Environment */
> +#define CONFIG_EXTRA_ENV_SETTINGS \
> + "verify=n\0" \
> + "loadaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
This loadaddr is set by CONFIG_LOADADDR (above)
> + "ramboot=setenv bootargs " CONFIG_BOOTARGS ";" \
> + "bootm ${loadaddr} - ${fdt_addr}\0" \
> + "bootimage=zImage\0" \
> + "fdt_addr=100\0" \
> + "fdtimage=socfpga.dtb\0" \
> + "bootm ${loadaddr} - ${fdt_addr}\0" \
> + "mmcroot=/dev/mmcblk0p2\0" \
> + "mmcboot=setenv bootargs " CONFIG_BOOTARGS \
> + " root=${mmcroot} rw rootwait;" \
> + "bootz ${loadaddr} - ${fdt_addr}\0" \
> + "mmcload=mmc rescan;" \
> + "load mmc 0:1 ${loadaddr} ${bootimage};" \
> + "load mmc 0:1 ${fdt_addr} ${fdtimage}\0" \
> + "qspiload=sf probe && mtdparts default && run ubiload\0" \
> + "qspiboot=setenv bootargs " CONFIG_BOOTARGS \
> + " root=${qspiroot} rw rootfstype=${qspirootfstype};"\
> + "bootm ${loadaddr} - ${fdt_addr}\0" \
> + "uboot_env_complete=yes\0"
Can we drop this extra environment? It looks like a copy of the CV
SoCDK env, which is broken nonetheless, so unless it's used, drop it
in V3 please.
> +/*
> + * Bootcounter
> + */
> +#define CONFIG_BOOTCOUNT_LIMIT
> +/* last 2 lwords in OCRAM */
> +#define CONFIG_SYS_BOOTCOUNT_ADDR 0xfffffff8
> +#define CONFIG_SYS_BOOTCOUNT_BE
> +
> +/* The rest of the configuration is shared */
> +#include <configs/socfpga_common.h>
> +
> +#endif /* __CONFIG_SOCFPGA_IS1_H__ */
>
>
--
Best regards,
Marek Vasut
More information about the U-Boot
mailing list