[U-Boot] [PATCH v2 15/20] arm: socfpga: Add SPL support for Arria 10

Marek Vasut marex at denx.de
Wed Mar 22 08:41:06 UTC 2017


On 03/22/2017 09:28 AM, Ley Foon Tan wrote:
> On Fri, Mar 10, 2017 at 9:52 AM, Marek Vasut <marex at 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 at intel.com>
>>> Signed-off-by: Ley Foon Tan <ley.foon.tan at 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().

It just doesn't seem right to have reset-manager code bits in SPL patch,
that's all . Do you mean you have the uart_com_port() function
in misc.c and this reset manager bit depends on it ? Then swap patches
3 and 4 and you can wrap this function into the reset manager part, no?

>>> +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);
>>> +}
>>> +

[...]

-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list