All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ley Foon Tan <lftan.linux@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 15/20] arm: socfpga: Add SPL support for Arria 10
Date: Wed, 22 Mar 2017 16:28:56 +0800	[thread overview]
Message-ID: <CAFiDJ5-t4v5DVwObFy4ea_3Mxq5kNecHgoaDA6GDAFO6w=d4iA@mail.gmail.com> (raw)
In-Reply-To: <a995c79b-e683-0fe4-5940-ded3fac413f7@denx.de>

On Fri, Mar 10, 2017 at 9:52 AM, Marek Vasut <marex@denx.de> wrote:
> On 03/09/2017 01:26 AM, Ley Foon Tan wrote:
>> Add SPL support for Arria 10 and add reset_uart() to use in SPL.
>>
>> Signed-off-by: Tien Fong Chee <tien.fong.chee@intel.com>
>> Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
>> ---
>>  .../include/mach/reset_manager_arria10.h           |  1 +
>>  arch/arm/mach-socfpga/reset_manager_arria10.c      | 18 +++++++
>>  arch/arm/mach-socfpga/spl.c                        | 55 +++++++++++++++++++++-
>>  3 files changed, 72 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm/mach-socfpga/include/mach/reset_manager_arria10.h b/arch/arm/mach-socfpga/include/mach/reset_manager_arria10.h
>> index e3171d1..d0711cf 100644
>> --- a/arch/arm/mach-socfpga/include/mach/reset_manager_arria10.h
>> +++ b/arch/arm/mach-socfpga/include/mach/reset_manager_arria10.h
>> @@ -14,6 +14,7 @@ void emac_manage_reset(ulong emacbase, uint state);
>>  int reset_deassert_bridges_handoff(void);
>>  void reset_assert_fpga_connected_peripherals(void);
>>  void reset_deassert_osc1wd0(void);
>> +void reset_uart(int assert);
>>
>>  struct socfpga_reset_manager {
>>       u32     stat;
>> diff --git a/arch/arm/mach-socfpga/reset_manager_arria10.c b/arch/arm/mach-socfpga/reset_manager_arria10.c
>> index 547a8bb..bbf54f0 100644
>> --- a/arch/arm/mach-socfpga/reset_manager_arria10.c
>> +++ b/arch/arm/mach-socfpga/reset_manager_arria10.c
>> @@ -28,6 +28,24 @@ static const struct socfpga_system_manager *sysmgr_regs =
>>       ALT_RSTMGR_PER0MODRST_QSPIECC_SET_MSK | \
>>       ALT_RSTMGR_PER0MODRST_SDMMCECC_SET_MSK)
>
> Should be part of reset manager patch ...
Do you mean by the reset_uart() below? In the last review, you comment
that uart_com_port() is in later patch (misc path) of reset manager
patch. So, I moved this function to this here. Let me know if you
prefer a new patch this reset_uart().

>
>> +void reset_uart(int assert)
>> +{
>> +     u32 mask = 0;
>> +     unsigned int com_port;
>> +
>> +     com_port = uart_com_port(gd->fdt_blob);
>> +
>> +     if (com_port == SOCFPGA_UART1_ADDRESS)
>> +             mask |= ALT_RSTMGR_PER1MODRST_UART1_SET_MSK;
>> +     else if (com_port == SOCFPGA_UART0_ADDRESS)
>> +             mask |= ALT_RSTMGR_PER1MODRST_UART0_SET_MSK;
>> +
>> +     if (assert)
>> +             setbits_le32(&reset_manager_base->per1modrst, mask);
>> +     else
>> +             clrbits_le32(&reset_manager_base->per1modrst, mask);
>> +}
>> +
>>  static const u32 per0fpgamasks[] = {
>>       ALT_RSTMGR_PER0MODRST_EMACECC0_SET_MSK |
>>       ALT_RSTMGR_PER0MODRST_EMAC0_SET_MSK,
>> diff --git a/arch/arm/mach-socfpga/spl.c b/arch/arm/mach-socfpga/spl.c
>> index fec4c7a..5c0cc98 100644
>> --- a/arch/arm/mach-socfpga/spl.c
>> +++ b/arch/arm/mach-socfpga/spl.c
>> @@ -19,23 +19,32 @@
>>  #include <asm/arch/sdram.h>
>>  #include <asm/arch/scu.h>
>>  #include <asm/arch/nic301.h>
>> +#include <asm/sections.h>
>> +#include <fdtdec.h>
>> +#include <watchdog.h>
>> +#if defined(CONFIG_TARGET_SOCFPGA_ARRIA10)
>> +#include <asm/arch/pinmux.h>
>> +#endif
>>
>>  DECLARE_GLOBAL_DATA_PTR;
>>
>> +#if defined(CONFIG_TARGET_SOCFPGA_GEN5)
>>  static struct pl310_regs *const pl310 =
>>       (struct pl310_regs *)CONFIG_SYS_PL310_BASE;
>>  static struct scu_registers *scu_regs =
>>       (struct scu_registers *)SOCFPGA_MPUSCU_ADDRESS;
>>  static struct nic301_registers *nic301_regs =
>>       (struct nic301_registers *)SOCFPGA_L3REGS_ADDRESS;
>> -static struct socfpga_system_manager *sysmgr_regs =
>> +#endif
>> +
>> +static const struct socfpga_system_manager *sysmgr_regs =
>>       (struct socfpga_system_manager *)SOCFPGA_SYSMGR_ADDRESS;
>>
>>  u32 spl_boot_device(void)
>>  {
>>       const u32 bsel = readl(&sysmgr_regs->bootinfo);
>>
>> -     switch (bsel & 0x7) {
>> +     switch ((bsel >> SYSMGR_BOOTINFO_BSEL_SHIFT) & 0x7) {
>>       case 0x1:       /* FPGA (HPS2FPGA Bridge) */
>>               return BOOT_DEVICE_RAM;
>>       case 0x2:       /* NAND Flash (1.8V) */
>> @@ -68,6 +77,7 @@ u32 spl_boot_mode(const u32 boot_device)
>>  }
>>  #endif
>>
>> +#if defined(CONFIG_TARGET_SOCFPGA_GEN5)
>>  static void socfpga_nic301_slave_ns(void)
>>  {
>>       writel(0x1, &nic301_regs->lwhps2fpgaregs);
>> @@ -182,3 +192,44 @@ void board_init_f(ulong dummy)
>>       /* Configure simple malloc base pointer into RAM. */
>>       gd->malloc_base = CONFIG_SYS_TEXT_BASE + (1024 * 1024);
>>  }
>> +#elif defined(CONFIG_TARGET_SOCFPGA_ARRIA10)
>> +#ifdef CONFIG_SPL_BOARD_INIT
>> +void spl_board_init(void)
>> +{
>> +     /* configuring the clock based on handoff */
>> +     cm_basic_init(gd->fdt_blob);
>> +     WATCHDOG_RESET();
>> +
>> +     config_dedicated_pins(gd->fdt_blob);
>> +     WATCHDOG_RESET();
>> +
>> +     /* Release UART from reset */
>> +     reset_uart(0);
>> +
>> +     /* enable console uart printing */
>> +     preloader_console_init();
>> +}
>> +#endif
>> +
>> +void board_init_f(ulong dummy)
>> +{
>> +     /*
>> +      * Configure Clock Manager to use intosc clock instead external osc to
>> +      * ensure success watchdog operation. We do it as early as possible.
>> +      */
>> +     cm_use_intosc();
>> +
>> +     watchdog_disable();
>> +
>> +     arch_early_init_r();
>> +
>> +#ifdef CONFIG_HW_WATCHDOG
>> +     /* release osc1 watchdog timer 0 from reset */
>> +     reset_deassert_osc1wd0();
>> +
>> +     /* reconfigure and enable the watchdog */
>> +     hw_watchdog_init();
>> +     WATCHDOG_RESET();
>> +#endif /* CONFIG_HW_WATCHDOG */
>> +}
>> +#endif

Regards
Ley Foon

  reply	other threads:[~2017-03-22  8:28 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-09  0:26 [U-Boot] [PATCH v2 00/20] Add Intel Arria 10 SoC support Ley Foon Tan
2017-03-09  0:26 ` [U-Boot] [PATCH v2 01/20] arm: socfpga: Restructure clock manager driver Ley Foon Tan
2017-03-09 16:29   ` Dinh Nguyen
2017-03-21  7:26     ` Ley Foon Tan
2017-03-09  0:26 ` [U-Boot] [PATCH v2 02/20] arm: socfpga: Update clock for Gen5 Ley Foon Tan
2017-03-09 16:39   ` Dinh Nguyen
2017-03-09  0:26 ` [U-Boot] [PATCH v2 03/20] arm: socfpga: Restructure reset manager driver Ley Foon Tan
2017-03-09  0:26 ` [U-Boot] [PATCH v2 04/20] arm: socfpga: Restructure misc driver Ley Foon Tan
2017-03-10  1:36   ` Marek Vasut
2017-03-21  7:44     ` Ley Foon Tan
2017-03-21  8:25       ` Marek Vasut
2017-03-22  8:16         ` Ley Foon Tan
2017-03-09  0:26 ` [U-Boot] [PATCH v2 05/20] arm: socfpga: Restructure system manager Ley Foon Tan
2017-03-09  0:26 ` [U-Boot] [PATCH v2 06/20] arm: socfpga: Add A10 defines Ley Foon Tan
2017-03-10  1:38   ` Marek Vasut
2017-03-21  8:05     ` Ley Foon Tan
2017-03-09  0:26 ` [U-Boot] [PATCH v2 07/20] arm: socfpga: Add reset driver support for Arria 10 Ley Foon Tan
2017-03-10  1:40   ` Marek Vasut
2017-03-23  5:55     ` Ley Foon Tan
2017-03-09  0:26 ` [U-Boot] [PATCH v2 08/20] arm: socfpga: Add clock driver " Ley Foon Tan
2017-03-10  1:47   ` Marek Vasut
2017-03-22  6:14     ` Ley Foon Tan
2017-03-09  0:26 ` [U-Boot] [PATCH v2 09/20] arm: socfpga: Add system manager " Ley Foon Tan
2017-03-10  1:47   ` Marek Vasut
2017-03-09  0:26 ` [U-Boot] [PATCH v2 10/20] arm: socfpga: Add sdram header file " Ley Foon Tan
2017-03-09  0:26 ` [U-Boot] [PATCH v2 11/20] arm: socfpga: Add misc support " Ley Foon Tan
2017-03-10  1:49   ` Marek Vasut
2017-03-09  0:26 ` [U-Boot] [PATCH v2 12/20] arm: socfpga: Add pinmux " Ley Foon Tan
2017-03-10  1:50   ` Marek Vasut
2017-03-22  6:26     ` Ley Foon Tan
2017-03-09  0:26 ` [U-Boot] [PATCH v2 13/20] fdt: Add compatible strings " Ley Foon Tan
2017-03-09  0:26 ` [U-Boot] [PATCH v2 14/20] arm: dts: Add dts and dtsi " Ley Foon Tan
2017-03-09  0:26 ` [U-Boot] [PATCH v2 15/20] arm: socfpga: Add SPL support " Ley Foon Tan
2017-03-10  1:52   ` Marek Vasut
2017-03-22  8:28     ` Ley Foon Tan [this message]
2017-03-22  8:41       ` Marek Vasut
2017-03-22  9:21         ` Ley Foon Tan
2017-03-22 14:46           ` Marek Vasut
2017-03-09  0:26 ` [U-Boot] [PATCH v2 16/20] drivers: fpga: Add compile switch for Gen5 only registers Ley Foon Tan
2017-03-10  1:53   ` Marek Vasut
2017-03-22  8:30     ` Ley Foon Tan
2017-03-09  0:26 ` [U-Boot] [PATCH v2 17/20] arm: socfpga: Convert Altera ddr driver to use Kconfig Ley Foon Tan
2017-03-10  1:53   ` Marek Vasut
2017-03-22  9:45     ` Ley Foon Tan
2017-03-22 14:26       ` Marek Vasut
2017-03-23  5:36         ` Ley Foon Tan
2017-03-23  7:39           ` Marek Vasut
2017-03-23  9:54             ` Ley Foon Tan
2017-03-09  0:26 ` [U-Boot] [PATCH v2 18/20] arm: socfpga: Add config and defconfig for Arria 10 Ley Foon Tan
2017-03-10  1:55   ` Marek Vasut
2017-03-22  8:39     ` Ley Foon Tan
2017-03-09  0:26 ` [U-Boot] [PATCH v2 19/20] arm: socfpga: Add board files for the Arria10 Ley Foon Tan
2017-03-09  0:26 ` [U-Boot] [PATCH v2 20/20] arm: socfpga: Enable build for Arria 10 Ley Foon Tan
2017-03-09 21:32 ` [U-Boot] [PATCH v2 00/20] Add Intel Arria 10 SoC support Dinh Nguyen
2017-03-10  1:51   ` Marek Vasut
2017-03-16 21:56 ` Marek Vasut
2017-03-17 12:25   ` Ley Foon Tan
2017-03-17 12:28     ` Marek Vasut
2017-03-20  7:33       ` Ley Foon Tan
2017-03-21  8:26         ` 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='CAFiDJ5-t4v5DVwObFy4ea_3Mxq5kNecHgoaDA6GDAFO6w=d4iA@mail.gmail.com' \
    --to=lftan.linux@gmail.com \
    --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.