[U-Boot] [PATCH v2 15/20] arm: socfpga: Add SPL support for Arria 10
Ley Foon Tan
lftan.linux at gmail.com
Wed Mar 22 09:21:34 UTC 2017
On Wed, Mar 22, 2017 at 4:41 PM, Marek Vasut <marex at denx.de> wrote:
> 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?
uart_com_port() is in patch 10 (misc arria10). I can't swap reset
arria 10 and misc arria 10 because misc arria 10 got dependency on
reset arria 10 patch too..:(
What I mean is add a new patch just before this SPL patch to add 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);
>>>> +}
>>>> +
Regards
Ley Foon
More information about the U-Boot
mailing list