[1/3] arc: vdk: Disable halt on reset

Submitted by Alexey Brodkin on Feb. 1, 2017, 4:42 p.m.

Details

Message ID 1485967373-15273-2-git-send-email-abrodkin@synopsys.com
State New
Headers show

Commit Message

Alexey Brodkin Feb. 1, 2017, 4:42 p.m.
In recent VDKs ARC cores are configured as "run on reset"
which made existing kernel configuration outdated to effect that
slave cores never start execution of the code keeping only master
online.

With that fix we're again in sync with VDK platform.

And while at it we regenerate defconfig via savedefconfig so default
options are now excluded.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
---
 arch/arc/configs/vdk_hs38_smp_defconfig | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Vineet Gupta Feb. 1, 2017, 4:52 p.m.
On 02/01/2017 08:42 AM, Alexey Brodkin wrote:
> In recent VDKs ARC cores are configured as "run on reset"
> which made existing kernel configuration outdated to effect that
> slave cores never start execution of the code keeping only master
> online.
> 
> With that fix we're again in sync with VDK platform.
> 
> And while at it we regenerate defconfig via savedefconfig so default
> options are now excluded.
> 
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> ---
>  arch/arc/configs/vdk_hs38_smp_defconfig | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/arch/arc/configs/vdk_hs38_smp_defconfig b/arch/arc/configs/vdk_hs38_smp_defconfig
> index 573028f19de7..f6361de41eec 100644
> --- a/arch/arc/configs/vdk_hs38_smp_defconfig
> +++ b/arch/arc/configs/vdk_hs38_smp_defconfig
> @@ -15,7 +15,7 @@ CONFIG_ARC_PLAT_AXS10X=y
>  CONFIG_AXS103=y
>  CONFIG_ISA_ARCV2=y
>  CONFIG_SMP=y
> -# CONFIG_ARC_TIMERS_64BIT is not set

Are you sure abut this part. Ater the timers driver rework, this would enable GFRC
for SMP builds and AFAIKR there were some issues with time with GFRC + nSIM etc..

> +# CONFIG_ARC_SMP_HALT_ON_RESET is not set
>  CONFIG_ARC_UBOOT_SUPPORT=y
>  CONFIG_ARC_BUILTIN_DTB_NAME="vdk_hs38_smp"
>  CONFIG_PREEMPT=y
> @@ -56,7 +56,6 @@ CONFIG_NATIONAL_PHY=y
>  CONFIG_MOUSE_PS2_TOUCHKIT=y
>  CONFIG_SERIO_ARC_PS2=y
>  # CONFIG_LEGACY_PTYS is not set
> -# CONFIG_DEVKMEM is not set
>  CONFIG_SERIAL_8250=y
>  CONFIG_SERIAL_8250_CONSOLE=y
>  CONFIG_SERIAL_8250_DW=y
> @@ -80,7 +79,6 @@ CONFIG_USB_STORAGE=y
>  CONFIG_USB_SERIAL=y
>  # CONFIG_IOMMU_SUPPORT is not set
>  CONFIG_EXT3_FS=y
> -CONFIG_EXT4_FS=y
>  CONFIG_MSDOS_FS=y
>  CONFIG_VFAT_FS=y
>  CONFIG_NTFS_FS=y
>
Alexey Brodkin Feb. 1, 2017, 5:14 p.m.
Hi Vineet,

On Wed, 2017-02-01 at 08:52 -0800, Vineet Gupta wrote:
> On 02/01/2017 08:42 AM, Alexey Brodkin wrote:

> > 

> > In recent VDKs ARC cores are configured as "run on reset"

> > which made existing kernel configuration outdated to effect that

> > slave cores never start execution of the code keeping only master

> > online.

> > 

> > With that fix we're again in sync with VDK platform.

> > 

> > And while at it we regenerate defconfig via savedefconfig so default

> > options are now excluded.

> > 

> > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>

> > ---

> >  arch/arc/configs/vdk_hs38_smp_defconfig | 4 +---

> >  1 file changed, 1 insertion(+), 3 deletions(-)

> > 

> > diff --git a/arch/arc/configs/vdk_hs38_smp_defconfig b/arch/arc/configs/vdk_hs38_smp_defconfig

> > index 573028f19de7..f6361de41eec 100644

> > --- a/arch/arc/configs/vdk_hs38_smp_defconfig

> > +++ b/arch/arc/configs/vdk_hs38_smp_defconfig

> > @@ -15,7 +15,7 @@ CONFIG_ARC_PLAT_AXS10X=y

> >  CONFIG_AXS103=y

> >  CONFIG_ISA_ARCV2=y

> >  CONFIG_SMP=y

> > -# CONFIG_ARC_TIMERS_64BIT is not set

> 

> Are you sure abut this part. Ater the timers driver rework, this would enable GFRC

> for SMP builds and AFAIKR there were some issues with time with GFRC + nSIM etc..


Not anymore :)

Probably I missed something in discussions.
As a matter of fact I did run-test resulting vmlinux and it worked very nice.
More over ARC_TIMERS_64BIT is selected automatically by ISA_ARCV2, see
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arc/Kconfig#n119

That said even if "# CONFIG_ARC_TIMERS_64BIT is not set" is left in place the option will be
effectively enabled, no?

-Alexey
Vineet Gupta Feb. 1, 2017, 5:37 p.m.
On 02/01/2017 09:14 AM, Alexey Brodkin wrote:
>>> -# CONFIG_ARC_TIMERS_64BIT is not set
>>
>> Are you sure abut this part. Ater the timers driver rework, this would enable GFRC
>> for SMP builds and AFAIKR there were some issues with time with GFRC + nSIM etc..
> 
> Not anymore :)
> 
> Probably I missed something in discussions.

STAR 9000879565, 9000879563

> As a matter of fact I did run-test resulting vmlinux and it worked very nice.
> More over ARC_TIMERS_64BIT is selected automatically by ISA_ARCV2, see
> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arc/Kconfig#n119
> 
> That said even if "# CONFIG_ARC_TIMERS_64BIT is not set" is left in place the option will be
> effectively enabled, no?

The whole point of adding this to defconfig is to override the default from Kconfig ?
Alexey Brodkin Feb. 1, 2017, 5:52 p.m.
Hi Vineet,

On Wed, 2017-02-01 at 09:37 -0800, Vineet Gupta wrote:
> On 02/01/2017 09:14 AM, Alexey Brodkin wrote:

> > 

> > > 

> > > > 

> > > > -# CONFIG_ARC_TIMERS_64BIT is not set

> > > 

> > > Are you sure abut this part. Ater the timers driver rework, this would enable GFRC

> > > for SMP builds and AFAIKR there were some issues with time with GFRC + nSIM etc..

> > 

> > Not anymore :)

> > 

> > Probably I missed something in discussions.

> 

> STAR 9000879565, 9000879563

> 

> > 

> > As a matter of fact I did run-test resulting vmlinux and it worked very nice.

> > More over ARC_TIMERS_64BIT is selected automatically by ISA_ARCV2, see

> > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arc/Kconfig#n119

> > 

> > That said even if "# CONFIG_ARC_TIMERS_64BIT is not set" is left in place the option will be

> > effectively enabled, no?

> 

> The whole point of adding this to defconfig is to override the default from Kconfig ?


Not anymore :)

Since commit c4c9a040ecb7 ("clocksource: import ARC timer driver"),
see http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c4c9a040ecb7297e011e579f5a9cc280e42d725f
we have this:
---------------------->8----------------------
config ISA_ARCV2
	bool "ARC ISA v2"
	select ARC_TIMERS_64BIT
---------------------->8----------------------

which really means if one selects ISA_ARCV2 then ARC_TIMERS_64BIT gets selected automatically
and there's no way to override it from either menuconfig or defconfig.

Probably behavior that you meant was to keep a separate "config ARC_TIMERS_64BIT"
and have it "default y if ISA_ARCV2".

-Alexey
Vineet Gupta Feb. 1, 2017, 7:56 p.m.
On 02/01/2017 09:52 AM, Alexey Brodkin wrote:
>> The whole point of adding this to defconfig is to override the default from Kconfig ?
> Not anymore :)
> 
> Since commit c4c9a040ecb7 ("clocksource: import ARC timer driver"),
> see http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c4c9a040ecb7297e011e579f5a9cc280e42d725f
> we have this:
> ---------------------->8----------------------
> config ISA_ARCV2
> 	bool "ARC ISA v2"
> 	select ARC_TIMERS_64BIT
> ---------------------->8----------------------
> 
> which really means if one selects ISA_ARCV2 then ARC_TIMERS_64BIT gets selected automatically
> and there's no way to override it from either menuconfig or defconfig.

Bummer - this means VDK based off 4.9+ kernel might be affected with nsim GFRC issue !

> Probably behavior that you meant was to keep a separate "config ARC_TIMERS_64BIT"
> and have it "default y if ISA_ARCV2".

No, the whole point of moving it out of arch/arc was to increase test coverage etc
so it was not tied to ISA_ARCV2 on purpose so that it would atleast build.

Lets see what Rudd has to say abt this. But GFRC can't be used this would need
fixing after all by introducing an additional ARC_PLAT_CANT_USE_TIMERS_64BIT which
is def_bool set to n, but selected y in VDK Kconfig.

-Vineet
Alexey Brodkin Feb. 1, 2017, 8:03 p.m.
Hi Vineet,

> -----Original Message-----
> From: Vineet Gupta [mailto:vgupta@synopsys.com]
> Sent: Wednesday, February 1, 2017 10:56 PM
> To: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
> Cc: Ruud Derwig <rderwig@synopsys.com>; linux-kernel@vger.kernel.org;
> linux-snps-arc@lists.infradead.org
> Subject: Re: [PATCH 1/3] arc: vdk: Disable halt on reset
> 
> On 02/01/2017 09:52 AM, Alexey Brodkin wrote:
> >> The whole point of adding this to defconfig is to override the default from
> Kconfig ?
> > Not anymore :)
> >
> > Since commit c4c9a040ecb7 ("clocksource: import ARC timer driver"),
> > see
> > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/
> > ?id=c4c9a040ecb7297e011e579f5a9cc280e42d725f
> > we have this:
> > ---------------------->8----------------------
> > config ISA_ARCV2
> > 	bool "ARC ISA v2"
> > 	select ARC_TIMERS_64BIT
> > ---------------------->8----------------------
> >
> > which really means if one selects ISA_ARCV2 then ARC_TIMERS_64BIT gets
> > selected automatically and there's no way to override it from either
> menuconfig or defconfig.
> 
> Bummer - this means VDK based off 4.9+ kernel might be affected with nsim
> GFRC issue !

One note here - I think it only affects 4.10+ kernels.

-Aexey
Ruud Derwig Feb. 2, 2017, 2:03 p.m.
Hi,

VDK config includes GRFC, not sure if it's working/used though.
The nSIM STAR is about that GRFC frequency is fixed in nSIM, but configurable for HW/customers.
But if the frequency is configured correctly (same as cpu frequency), don't think there's an issue.

Ruud.
-----Original Message-----
From: Vineet Gupta 
Sent: Wednesday, February 01, 2017 8:56 PM
To: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
Cc: Ruud Derwig <rderwig@synopsys.com>; linux-kernel@vger.kernel.org; linux-snps-arc@lists.infradead.org
Subject: Re: [PATCH 1/3] arc: vdk: Disable halt on reset

On 02/01/2017 09:52 AM, Alexey Brodkin wrote:
>> The whole point of adding this to defconfig is to override the default from Kconfig ?
> Not anymore :)
> 
> Since commit c4c9a040ecb7 ("clocksource: import ARC timer driver"), 
> see 
> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/
> ?id=c4c9a040ecb7297e011e579f5a9cc280e42d725f
> we have this:
> ---------------------->8----------------------
> config ISA_ARCV2
> 	bool "ARC ISA v2"
> 	select ARC_TIMERS_64BIT
> ---------------------->8----------------------
> 
> which really means if one selects ISA_ARCV2 then ARC_TIMERS_64BIT gets 
> selected automatically and there's no way to override it from either menuconfig or defconfig.

Bummer - this means VDK based off 4.9+ kernel might be affected with nsim GFRC issue !

> Probably behavior that you meant was to keep a separate "config ARC_TIMERS_64BIT"
> and have it "default y if ISA_ARCV2".

No, the whole point of moving it out of arch/arc was to increase test coverage etc so it was not tied to ISA_ARCV2 on purpose so that it would atleast build.

Lets see what Rudd has to say abt this. But GFRC can't be used this would need fixing after all by introducing an additional ARC_PLAT_CANT_USE_TIMERS_64BIT which is def_bool set to n, but selected y in VDK Kconfig.

-Vineet

Patch hide | download patch | download mbox

diff --git a/arch/arc/configs/vdk_hs38_smp_defconfig b/arch/arc/configs/vdk_hs38_smp_defconfig
index 573028f19de7..f6361de41eec 100644
--- a/arch/arc/configs/vdk_hs38_smp_defconfig
+++ b/arch/arc/configs/vdk_hs38_smp_defconfig
@@ -15,7 +15,7 @@  CONFIG_ARC_PLAT_AXS10X=y
 CONFIG_AXS103=y
 CONFIG_ISA_ARCV2=y
 CONFIG_SMP=y
-# CONFIG_ARC_TIMERS_64BIT is not set
+# CONFIG_ARC_SMP_HALT_ON_RESET is not set
 CONFIG_ARC_UBOOT_SUPPORT=y
 CONFIG_ARC_BUILTIN_DTB_NAME="vdk_hs38_smp"
 CONFIG_PREEMPT=y
@@ -56,7 +56,6 @@  CONFIG_NATIONAL_PHY=y
 CONFIG_MOUSE_PS2_TOUCHKIT=y
 CONFIG_SERIO_ARC_PS2=y
 # CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVKMEM is not set
 CONFIG_SERIAL_8250=y
 CONFIG_SERIAL_8250_CONSOLE=y
 CONFIG_SERIAL_8250_DW=y
@@ -80,7 +79,6 @@  CONFIG_USB_STORAGE=y
 CONFIG_USB_SERIAL=y
 # CONFIG_IOMMU_SUPPORT is not set
 CONFIG_EXT3_FS=y
-CONFIG_EXT4_FS=y
 CONFIG_MSDOS_FS=y
 CONFIG_VFAT_FS=y
 CONFIG_NTFS_FS=y