lkml.org 
[lkml]   [2014]   [Oct]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/2] socfpga: hotplug: put cpu1 in wfi


On 10/1/14, 10:04 AM, Pavel Machek wrote:
> Hi!
>
>>>> + __raw_writel(RSTMGR_MPUMODRST_CPU1,
>>>> + rst_manager_base_addr + 0x10);
>>>
>>> Would it be possible to copy reset manager description struct from
>>> u-boot and use it here, instead of raw offset?
>>
>> I will replace this 0x10 with a macro that reflects how the register is
>> named in the register map.
>
> That would be better than 0x10, but even better would be just copying
>
> struct socfpga_reset_manager {
> u32 status;
> u32 ctrl;
> u32 counts;
> u32 padding1;
> u32 mpu_mod_reset;
> u32 per_mod_reset;
> u32 per2_mod_reset;
> u32 brg_mod_reset;
> };
>
> from u-boot. Unlike macros, structs have advantages that typos lead to
> easier-to-see failure modes... (And they are easier to read/parse,
> too).
>

Copying from uboot sounds good, but I already know that the CPU reset
offset is different for our next SOC, Arria 10. The Arria 10 SOC should
still be able to use the same MSL as Cyclone5 and Arria5, but with a few
differences. One of them being, the CPU1 reset offset is at 0x20 instead
of 0x10. So I think having a macro for this one register is a bit
cleaner than having to define a whole new struct for Arria10.

if (of_machine_is_compatible("altr,socfpga-arria10"))
__raw_writel(0, rst_manager_base_addr + 0x20);
else
__raw_writel(0, rst_manager_base_addr + 0x10);

Dinh


\
 
 \ /
  Last update: 2014-10-01 18:41    [W:0.373 / U:0.216 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site