All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCHv2 4/9] arm: socfpga: arria10: add misc functions for Arria10
Date: Tue, 1 Dec 2015 19:56:59 +0100	[thread overview]
Message-ID: <201512011956.59744.marex@denx.de> (raw)
In-Reply-To: <1448988519-21669-5-git-send-email-dinguyen@opensource.altera.com>

On Tuesday, December 01, 2015 at 05:48:34 PM, dinguyen at opensource.altera.com 
wrote:
> From: Dinh Nguyen <dinguyen@opensource.altera.com>
> 
> Add miscellaneous functions(arch_early_init_r, print_cpuinfo,
> overwrite_console, enable_caches, and cpu_mmc_init). Also, the Arria10
> has a firewall protection around the SDRAM and OCRAM. These firewalls
> are to be disabled in order for U-Boot to function.
> 
> Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
> ---
> v2: reuse misc functions from a5/c5
> ---
>  arch/arm/mach-socfpga/misc.c | 56
> ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 54
> insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/mach-socfpga/misc.c b/arch/arm/mach-socfpga/misc.c
> index bbd31ef..f8aca55 100644
> --- a/arch/arm/mach-socfpga/misc.c
> +++ b/arch/arm/mach-socfpga/misc.c
> @@ -15,6 +15,7 @@
>  #include <watchdog.h>
>  #include <asm/arch/reset_manager.h>
>  #include <asm/arch/scan_manager.h>
> +#include <asm/arch/sdram_a10.h>
>  #include <asm/arch/system_manager.h>
>  #include <asm/arch/dwmmc.h>
>  #include <asm/arch/nic301.h>
> @@ -31,11 +32,16 @@ static struct socfpga_system_manager *sysmgr_regs =
>  	(struct socfpga_system_manager *)SOCFPGA_SYSMGR_ADDRESS;
>  static struct socfpga_reset_manager *reset_manager_base =
>  	(struct socfpga_reset_manager *)SOCFPGA_RSTMGR_ADDRESS;
> -static struct nic301_registers *nic301_regs =
> -	(struct nic301_registers *)SOCFPGA_L3REGS_ADDRESS;

For the sake of consistency, I'd just ifdef this with ifdef CV || AV and
the socfpga_noc stuff with ifdef A10 instead of moving things around this
way.

>  static struct scu_registers *scu_regs =
>  	(struct scu_registers *)SOCFPGA_MPUSCU_ADDRESS;
> 
> +#if defined(CONFIG_TARGET_SOCFPGA_ARRIA10)
> +static const struct socfpga_noc_fw_ocram *noc_fw_ocram_base =
> +	(void *)SOCFPGA_SDR_FIREWALL_OCRAM_ADDRESS;
> +static const struct socfpga_noc_fw_ddr_l3 *noc_fw_ddr_l3_base =
> +	(void *)SOCFPGA_SDR_FIREWALL_L3_ADDRESS;
> +#endif
> +
>  int dram_init(void)
>  {
>  	gd->ram_size = get_ram_size((long *)PHYS_SDRAM_1, PHYS_SDRAM_1_SIZE);
> @@ -218,10 +224,14 @@ static int socfpga_fpga_id(const bool print_id)
>  #if defined(CONFIG_DISPLAY_CPUINFO)
>  int print_cpuinfo(void)
>  {
> +#if defined(CONFIG_TARGET_SOCFPGA_ARRIA10)
> +	puts("CPU   : Altera SOCFPGA Arria 10 Platform\n");

No FPGA type detection happens on A10 ? :) Also, CPU is not "Arria 10 platform",
CPU is still Altera SoCFPGA or possibly Altera SoCFPGA Arria 10 , right ?

> +#else
>  	const u32 bsel = readl(&sysmgr_regs->bootinfo) & 0x7;
>  	puts("CPU:   Altera SoCFPGA Platform\n");
>  	socfpga_fpga_id(1);
>  	printf("BOOT:  %s\n", bsel_str[bsel].name);
> +#endif
>  	return 0;
>  }
>  #endif
> @@ -303,6 +313,47 @@ int arch_cpu_init(void)
>  	return 0;
>  }
> 
> +#if defined(CONFIG_TARGET_SOCFPGA_ARRIA10)
> +/*
> + * This function initializes security policies to be consistent across
> + * all logic units in the Arria 10.
> + *
> + * The idea is to set all security policies to be normal, nonsecure
> + * for all units.
> + */
> +static void initialize_security_policies(void)
> +{
> +	/* Put OCRAM in non-secure */
> +	writel(0x003f0000, &noc_fw_ocram_base->region0);
> +	writel(0x1, &noc_fw_ocram_base->enable);
> +
> +	/* Put DDR in non-secure */
> +	writel(0xffff0000, &noc_fw_ddr_l3_base->hpsregion0addr);
> +	writel(0x1, &noc_fw_ddr_l3_base->enable);
> +}
> +
> +int arch_early_init_r(void)
> +{
> +	initialize_security_policies();
> +
> +	/* Configure the L2 controller to make SDRAM start at 0 */
> +	writel(0x1, &pl310->pl310_addr_filter_start);
> +
> +	/* assert reset to all except L4WD0 and L4TIMER0 */
> +	reset_assert_all_peripherals_except_l4wd0_l4timer0();
> +
> +	/* configuring the clock based on handoff */
> +	/* TODO: Add call to cm_basic_init() */
> +
> +	/* Add device descriptor to FPGA device table */
> +	socfpga_fpga_add();
> +	return 0;
> +}
> +
> +#else
> +
> +static struct nic301_registers *nic301_regs =
> +	(struct nic301_registers *)SOCFPGA_L3REGS_ADDRESS;
>  /*
>   * Convert all NIC-301 AMBA slaves from secure to non-secure
>   */
> @@ -430,3 +481,4 @@ U_BOOT_CMD(
>  	"bridge disable - Enable HPS-to-FPGA, FPGA-to-HPS, LWHPS-to-FPGA
> bridges\n" ""
>  );
> +#endif

  reply	other threads:[~2015-12-01 18:56 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-01 16:48 [U-Boot] [PATCHv2 0/9] ARM: socfpga: Add minimal support for Arria10 dinguyen at opensource.altera.com
2015-12-01 16:48 ` [U-Boot] [PATCHv2 1/9] arm: socfpga: arria10: add system manager defines dinguyen at opensource.altera.com
2015-12-01 18:46   ` Marek Vasut
2015-12-01 22:56     ` Dinh Nguyen
2015-12-03 18:23   ` Pavel Machek
2015-12-01 16:48 ` [U-Boot] [PATCHv2 2/9] arm: socfpga: arria10: add reset manager for Arria10 dinguyen at opensource.altera.com
2015-12-01 18:51   ` Marek Vasut
2015-12-03 18:27     ` Pavel Machek
2015-12-01 16:48 ` [U-Boot] [PATCHv2 3/9] arm: socfpga: arria10: add sdram defines " dinguyen at opensource.altera.com
2015-12-01 18:52   ` Marek Vasut
2015-12-01 16:48 ` [U-Boot] [PATCHv2 4/9] arm: socfpga: arria10: add misc functions " dinguyen at opensource.altera.com
2015-12-01 18:56   ` Marek Vasut [this message]
2015-12-02  5:29     ` Dinh Nguyen
2015-12-02 14:29       ` Marek Vasut
2015-12-03 18:35     ` Pavel Machek
2015-12-03 20:34       ` Marek Vasut
2015-12-01 16:48 ` [U-Boot] [PATCHv2 5/9] arm: socfpga: arria10: add socfpga_arria10_socdk config dinguyen at opensource.altera.com
2015-12-01 19:02   ` Marek Vasut
2015-12-01 16:48 ` [U-Boot] [PATCHv2 6/9] arm: socfpga: arria10: add board files for the Arria10 SoCDK dinguyen at opensource.altera.com
2015-12-01 19:03   ` Marek Vasut
2015-12-01 16:48 ` [U-Boot] [PATCHv2 7/9] arm: socfpga: arria10: add socfpga_arria10_defconfig dinguyen at opensource.altera.com
2015-12-01 19:04   ` Marek Vasut
2015-12-01 16:48 ` [U-Boot] [PATCHv2 8/9] arm: socfpga: arria10: add config option build for arria10 dinguyen at opensource.altera.com
2015-12-01 16:48 ` [U-Boot] [PATCHv2 9/9] arm: socfpga: remove building scan manager dinguyen at opensource.altera.com
2015-12-01 19:05   ` Marek Vasut

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201512011956.59744.marex@denx.de \
    --to=marex@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.