Re: ARC patch suggestion

2017-03-23 Thread Vineet Gupta
+CC ARC gnu folks, Anton who maintains an internal build system


On 03/22/2017 08:02 PM, Waldemar Brodkorb wrote:
> Hi,
>
> I want to success following change:
>
> From cde74b83f9b204bf56f304224654e4993dc56efc Mon Sep 17 00:00:00 2001
> From: Waldemar Brodkorb 
> Date: Tue, 21 Mar 2017 20:04:21 +0100
> Subject: [PATCH 2/2] ARC: remove special CFLAGS/LDFLAGS handling
>
> Either toolchain defaults or buildsystems should provide the
> architecture specific CFLAGS and LDFLAGS.

Seems a decent cleanup to me !

Acked-by: Vineet Gupta 

@Anton, @Claudiu, @Cupertino any thoughts : for / against


>
> Signed-off-by: Waldemar Brodkorb 
> ---
>  Rules.mak|  6 --
>  extra/Configs/Config.arc | 18 --
>  2 files changed, 24 deletions(-)
>
> diff --git a/Rules.mak b/Rules.mak
> index ae78f44..9c481c3 100644
> --- a/Rules.mak
> +++ b/Rules.mak
> @@ -508,12 +508,6 @@ ifeq ($(TARGET_ARCH),c6x)
>   CPU_LDFLAGS-y += $(CPU_CFLAGS)
>  endif
>  
> -ifeq ($(TARGET_ARCH),arc)
> - CPU_CFLAGS-$(CONFIG_ARC_CPU_700) += -mA7
> - CPU_CFLAGS-$(CONFIG_ARC_CPU_HS) += -mcpu=archs
> - CPU_LDFLAGS-y += $(CPU_CFLAGS) -marclinux
> -endif
> -
>  $(eval $(call check-gcc-var,$(PIEFLAG_NAME)))
>  PIEFLAG := $(CFLAG_$(PIEFLAG_NAME))
>  ifeq ($(PIEFLAG),)
> diff --git a/extra/Configs/Config.arc b/extra/Configs/Config.arc
> index c263dbf..ebbde2e 100644
> --- a/extra/Configs/Config.arc
> +++ b/extra/Configs/Config.arc
> @@ -10,24 +10,6 @@ config FORCE_OPTIONS_FOR_ARCH
>   default y
>   select ARCH_ANY_ENDIAN
>  
> -choice
> - prompt "Target Processor Type"
> - default CONFIG_ARC_CPU_700
> -
> -config CONFIG_ARC_CPU_700
> - bool "ARC700"
> - select ARCH_HAS_MMU
> - help
> -   ARCompact ISA based ARC CPU
> -
> -config CONFIG_ARC_CPU_HS
> - bool "ARC-HS"
> - select ARCH_HAS_MMU
> - help
> -   Next Generation ARCv2 ISA based Processors
> -
> -endchoice
> -
>  config CONFIG_ARC_HAS_ATOMICS
>   bool "Support for LLOCK/SCOND instructions"
>   default y


___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc


RE: ARC patch suggestion

2017-03-23 Thread Anton Kolesov
Hi,

> 
> +CC ARC gnu folks, Anton who maintains an internal build system
> 
> 
> On 03/22/2017 08:02 PM, Waldemar Brodkorb wrote:
> > Hi,
> >
> > I want to success following change:
> >
> > From cde74b83f9b204bf56f304224654e4993dc56efc Mon Sep 17 00:00:00
> 2001
> > From: Waldemar Brodkorb 
> > Date: Tue, 21 Mar 2017 20:04:21 +0100
> > Subject: [PATCH 2/2] ARC: remove special CFLAGS/LDFLAGS handling
> >
> > Either toolchain defaults or buildsystems should provide the
> > architecture specific CFLAGS and LDFLAGS.
> 
> Seems a decent cleanup to me !
> 
> Acked-by: Vineet Gupta 
> 
> @Anton, @Claudiu, @Cupertino any thoughts : for / against
> 

AK: No issue by me, but I haven't tried to build test this.

Anton
___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc


[PATCH] arc: vdk: Fix support of UIO

2017-03-23 Thread Alexey Brodkin
MotherBoard section has its "ranges" set to 0xE000_-0xF000_.
But UIO node maps 4 different areas in different memory locations
and all outside MB's ranges.

That obviously breaks UIO mappings in runtime.

Signed-off-by: Alexey Brodkin 
Cc: Vineet Gupta 
Cc: Ruud Derwig 
Cc: sta...@vger.kernel.org
---
 arch/arc/boot/dts/vdk_axs10x_mb.dtsi | 20 +---
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/arch/arc/boot/dts/vdk_axs10x_mb.dtsi 
b/arch/arc/boot/dts/vdk_axs10x_mb.dtsi
index f0df59b23e21..459fc656b759 100644
--- a/arch/arc/boot/dts/vdk_axs10x_mb.dtsi
+++ b/arch/arc/boot/dts/vdk_axs10x_mb.dtsi
@@ -112,13 +112,19 @@
interrupts = <7>;
bus-width = <4>;
};
+   };
 
-   /* Embedded Vision subsystem UIO mappings; only relevant for EV 
VDK */
-   uio_ev: uio@0xD000 {
-   compatible = "generic-uio";
-   reg = <0xD000 0x2000 0xD100 0x2000 0x9000 
0x1000 0xC000 0x1000>;
-   reg-names = "ev_gsa", "ev_ctrl", "ev_shared_mem", 
"ev_code_mem";
-   interrupts = <23>;
-   };
+   /*
+* Embedded Vision subsystem UIO mappings; only relevant for EV VDK
+*
+* This node is intentionally put outside of MB above becase
+* it maps areas outside of MB's 0xEz-0xFz.
+*/
+   uio_ev: uio@0xD000 {
+   compatible = "generic-uio";
+   reg = <0xD000 0x2000 0xD100 0x2000 0x9000 
0x1000 0xC000 0x1000>;
+   reg-names = "ev_gsa", "ev_ctrl", "ev_shared_mem", "ev_code_mem";
+   interrupt-parent = <&mb_intc>;
+   interrupts = <23>;
};
 };
-- 
2.7.4


___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc


Re: [PATCH] arc: vdk: Fix support of UIO

2017-03-23 Thread Vineet Gupta
+CC Jos !

-Vineet

On 03/23/2017 10:34 AM, Alexey Brodkin wrote:
> MotherBoard section has its "ranges" set to 0xE000_-0xF000_.
> But UIO node maps 4 different areas in different memory locations
> and all outside MB's ranges.
>
> That obviously breaks UIO mappings in runtime.
>
> Signed-off-by: Alexey Brodkin 
> Cc: Vineet Gupta 
> Cc: Ruud Derwig 
> Cc: sta...@vger.kernel.org
> ---
>  arch/arc/boot/dts/vdk_axs10x_mb.dtsi | 20 +---
>  1 file changed, 13 insertions(+), 7 deletions(-)
>
> diff --git a/arch/arc/boot/dts/vdk_axs10x_mb.dtsi 
> b/arch/arc/boot/dts/vdk_axs10x_mb.dtsi
> index f0df59b23e21..459fc656b759 100644
> --- a/arch/arc/boot/dts/vdk_axs10x_mb.dtsi
> +++ b/arch/arc/boot/dts/vdk_axs10x_mb.dtsi
> @@ -112,13 +112,19 @@
>   interrupts = <7>;
>   bus-width = <4>;
>   };
> + };
>  
> - /* Embedded Vision subsystem UIO mappings; only relevant for EV 
> VDK */
> - uio_ev: uio@0xD000 {
> - compatible = "generic-uio";
> - reg = <0xD000 0x2000 0xD100 0x2000 0x9000 
> 0x1000 0xC000 0x1000>;
> - reg-names = "ev_gsa", "ev_ctrl", "ev_shared_mem", 
> "ev_code_mem";
> - interrupts = <23>;
> - };
> + /*
> +  * Embedded Vision subsystem UIO mappings; only relevant for EV VDK
> +  *
> +  * This node is intentionally put outside of MB above becase
> +  * it maps areas outside of MB's 0xEz-0xFz.
> +  */
> + uio_ev: uio@0xD000 {
> + compatible = "generic-uio";
> + reg = <0xD000 0x2000 0xD100 0x2000 0x9000 
> 0x1000 0xC000 0x1000>;
> + reg-names = "ev_gsa", "ev_ctrl", "ev_shared_mem", "ev_code_mem";
> + interrupt-parent = <&mb_intc>;
> + interrupts = <23>;
>   };
>  };


___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc


[PATCH V8 1/3] irq: Add flags to request_percpu_irq function

2017-03-23 Thread Daniel Lezcano
In the next changes, we track the interrupts but we discard the timers as
that does not make sense. The next interrupt on a timer is predictable.

But, the API request_percpu_irq does not allow to pass a flag, hence specifying
if the interrupt type is a timer.

Solve this by passing a 'flags' parameter to the function and change all the
callers to pass IRQF_TIMER when the interrupt is a timer interrupt, zero
otherwise.

For now, in order to prevent a misusage of this parameter, only the IRQF_TIMER
flag is a valid parameter to be passed to the request_percpu_irq function.

Signed-off-by: Daniel Lezcano 
---
 arch/arc/kernel/perf_event.c |  2 +-
 arch/arc/kernel/smp.c|  2 +-
 arch/arm/kernel/smp_twd.c|  3 ++-
 arch/arm/xen/enlighten.c |  2 +-
 drivers/clocksource/arc_timer.c  |  2 +-
 drivers/clocksource/arm_arch_timer.c | 15 +--
 drivers/clocksource/arm_global_timer.c   |  2 +-
 drivers/clocksource/exynos_mct.c |  2 +-
 drivers/clocksource/qcom-timer.c |  2 +-
 drivers/clocksource/time-armada-370-xp.c |  2 +-
 drivers/clocksource/timer-nps.c  |  2 +-
 drivers/net/ethernet/marvell/mvneta.c|  2 +-
 drivers/perf/arm_pmu.c   |  2 +-
 include/linux/interrupt.h|  5 +++--
 kernel/irq/manage.c  | 11 ---
 virt/kvm/arm/arch_timer.c|  5 +++--
 virt/kvm/arm/vgic/vgic-init.c|  2 +-
 17 files changed, 37 insertions(+), 26 deletions(-)

diff --git a/arch/arc/kernel/perf_event.c b/arch/arc/kernel/perf_event.c
index 2ce24e7..2a90c7a 100644
--- a/arch/arc/kernel/perf_event.c
+++ b/arch/arc/kernel/perf_event.c
@@ -525,7 +525,7 @@ static int arc_pmu_device_probe(struct platform_device 
*pdev)
arc_pmu->irq = irq;
 
/* intc map function ensures irq_set_percpu_devid() called */
-   request_percpu_irq(irq, arc_pmu_intr, "ARC perf counters",
+   request_percpu_irq(irq, 0, arc_pmu_intr, "ARC perf counters",
   this_cpu_ptr(&arc_pmu_cpu));
 
on_each_cpu(arc_cpu_pmu_irq_init, &irq, 1);
diff --git a/arch/arc/kernel/smp.c b/arch/arc/kernel/smp.c
index f462671..5cdd3c9 100644
--- a/arch/arc/kernel/smp.c
+++ b/arch/arc/kernel/smp.c
@@ -381,7 +381,7 @@ int smp_ipi_irq_setup(int cpu, irq_hw_number_t hwirq)
if (!cpu) {
int rc;
 
-   rc = request_percpu_irq(virq, do_IPI, "IPI Interrupt", dev);
+   rc = request_percpu_irq(virq, 0, do_IPI, "IPI Interrupt", dev);
if (rc)
panic("Percpu IRQ request failed for %u\n", virq);
}
diff --git a/arch/arm/kernel/smp_twd.c b/arch/arm/kernel/smp_twd.c
index 895ae51..988f9b9 100644
--- a/arch/arm/kernel/smp_twd.c
+++ b/arch/arm/kernel/smp_twd.c
@@ -332,7 +332,8 @@ static int __init twd_local_timer_common_register(struct 
device_node *np)
goto out_free;
}
 
-   err = request_percpu_irq(twd_ppi, twd_handler, "twd", twd_evt);
+   err = request_percpu_irq(twd_ppi, IRQF_TIMER, twd_handler, "twd",
+twd_evt);
if (err) {
pr_err("twd: can't register interrupt %d (%d)\n", twd_ppi, err);
goto out_free;
diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
index 81e3217..2897f94 100644
--- a/arch/arm/xen/enlighten.c
+++ b/arch/arm/xen/enlighten.c
@@ -400,7 +400,7 @@ static int __init xen_guest_init(void)
 
xen_init_IRQ();
 
-   if (request_percpu_irq(xen_events_irq, xen_arm_callback,
+   if (request_percpu_irq(xen_events_irq, 0, xen_arm_callback,
   "events", &xen_vcpu)) {
pr_err("Error request IRQ %d\n", xen_events_irq);
return -EINVAL;
diff --git a/drivers/clocksource/arc_timer.c b/drivers/clocksource/arc_timer.c
index 7517f95..e78e306 100644
--- a/drivers/clocksource/arc_timer.c
+++ b/drivers/clocksource/arc_timer.c
@@ -301,7 +301,7 @@ static int __init arc_clockevent_setup(struct device_node 
*node)
}
 
/* Needs apriori irq_set_percpu_devid() done in intc map function */
-   ret = request_percpu_irq(arc_timer_irq, timer_irq_handler,
+   ret = request_percpu_irq(arc_timer_irq, IRQF_TIMER, timer_irq_handler,
 "Timer0 (per-cpu-tick)", evt);
if (ret) {
pr_err("clockevent: unable to request irq\n");
diff --git a/drivers/clocksource/arm_arch_timer.c 
b/drivers/clocksource/arm_arch_timer.c
index 7a8a411..11398ff 100644
--- a/drivers/clocksource/arm_arch_timer.c
+++ b/drivers/clocksource/arm_arch_timer.c
@@ -768,16 +768,19 @@ static int __init arch_timer_register(void)
ppi = arch_timer_ppi[arch_timer_uses_ppi];
switch (arch_timer_uses_ppi) {
case VIRT_PPI:
-   err = request_percpu_irq(ppi, arch_timer_handler_virt,
-

Re: [PATCH V8 1/3] irq: Add flags to request_percpu_irq function

2017-03-23 Thread Vineet Gupta
On 03/23/2017 10:42 AM, Daniel Lezcano wrote:
> In the next changes, we track the interrupts but we discard the timers as
> that does not make sense. The next interrupt on a timer is predictable.
>
> But, the API request_percpu_irq does not allow to pass a flag, hence 
> specifying
> if the interrupt type is a timer.
>
> Solve this by passing a 'flags' parameter to the function and change all the
> callers to pass IRQF_TIMER when the interrupt is a timer interrupt, zero
> otherwise.
>
> For now, in order to prevent a misusage of this parameter, only the IRQF_TIMER
> flag is a valid parameter to be passed to the request_percpu_irq function.
>
> Signed-off-by: Daniel Lezcano 

Acked-by: Vineet Gupta# for arch/arc, arc_timer bits

___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc


Re: [PATCH V8 1/3] irq: Add flags to request_percpu_irq function

2017-03-23 Thread Mark Rutland
Hi Daniel,

On Thu, Mar 23, 2017 at 06:42:01PM +0100, Daniel Lezcano wrote:
> In the next changes, we track the interrupts but we discard the timers as
> that does not make sense. The next interrupt on a timer is predictable.

Sorry, but I could not parse this. 

[...]

> diff --git a/drivers/perf/arm_pmu.c b/drivers/perf/arm_pmu.c
> index 9612b84..0f5ab4a 100644
> --- a/drivers/perf/arm_pmu.c
> +++ b/drivers/perf/arm_pmu.c
> @@ -661,7 +661,7 @@ static int cpu_pmu_request_irq(struct arm_pmu *cpu_pmu, 
> irq_handler_t handler)
>  
>   irq = platform_get_irq(pmu_device, 0);
>   if (irq > 0 && irq_is_percpu(irq)) {
> - err = request_percpu_irq(irq, handler, "arm-pmu",
> + err = request_percpu_irq(irq, 0, handler, "arm-pmu",
>&hw_events->percpu_pmu);
>   if (err) {
>   pr_err("unable to request IRQ%d for ARM PMU counters\n",

Please Cc myself and Will Deacon when modifying the arm_pmu driver, as
per MAINTAINERS. I only spotted this patch by chance.

This conflicts with arm_pmu changes I have queued for v4.12 [1].

So, can we leave the prototype of request_percpu_irq() as-is?

Why not add a new request_percpu_irq_flags() function, and leave
request_percpu_irq() as a wrapper for that? e.g.

static inline int
request_percpu_irq(unsigned int irq, irq_handler_t handler,
   const char *devname, void __percpu *percpu_dev_id)
{
return request_percpu_irq_flags(irq, handler, devname,
percpu_dev_id, 0);
}

... that would avoid having to touch any non-timer driver for now.

[...]

> -request_percpu_irq(unsigned int irq, irq_handler_t handler,
> -const char *devname, void __percpu *percpu_dev_id);
> +request_percpu_irq(unsigned int irq, unsigned long flags,
> +irq_handler_t handler,  const char *devname,
> +void __percpu *percpu_dev_id);
>  

Looking at request_irq, the prototype is:

int __must_check
request_irq(unsigned int irq, irq_handler_t handler,
unsigned long flags, const char *name,
void *dev);

... surely it would be better to share the same argument order? i.e.

int __must_check
request_percpu_irq(unsigned int irq, irq_handler_t handler,
   unsigned long flags, const char *devname,
   void __percpu *percpu_dev_id);

Thanks,
Mark.

[1] 
https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/log/?h=arm/perf/refactoring

___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc


Re: [PATCH V8 1/3] irq: Add flags to request_percpu_irq function

2017-03-23 Thread Daniel Lezcano
Hi Mark,

On Thu, Mar 23, 2017 at 06:54:52PM +, Mark Rutland wrote:
> Hi Daniel,
> 
> On Thu, Mar 23, 2017 at 06:42:01PM +0100, Daniel Lezcano wrote:
> > In the next changes, we track the interrupts but we discard the timers as
> > that does not make sense. The next interrupt on a timer is predictable.
> 
> Sorry, but I could not parse this. 

I meant we are measuring when are happening the interrupts by getting the local
clock in the interrupt handler. But if the interrupts are coming from a timer, 
it
is not necessary to do that because we already know when they will occur.

So, in order to sort out which interrupt we measure, we use the IRQF_TIMER flag.

Unfortunately, this flag is missing when we do a request_percpu_irq. The
purpose of this patch is to fix that.

> > diff --git a/drivers/perf/arm_pmu.c b/drivers/perf/arm_pmu.c
> > index 9612b84..0f5ab4a 100644
> > --- a/drivers/perf/arm_pmu.c
> > +++ b/drivers/perf/arm_pmu.c
> > @@ -661,7 +661,7 @@ static int cpu_pmu_request_irq(struct arm_pmu *cpu_pmu, 
> > irq_handler_t handler)
> >  
> > irq = platform_get_irq(pmu_device, 0);
> > if (irq > 0 && irq_is_percpu(irq)) {
> > -   err = request_percpu_irq(irq, handler, "arm-pmu",
> > +   err = request_percpu_irq(irq, 0, handler, "arm-pmu",
> >  &hw_events->percpu_pmu);
> > if (err) {
> > pr_err("unable to request IRQ%d for ARM PMU counters\n",
> 
> Please Cc myself and Will Deacon when modifying the arm_pmu driver, as
> per MAINTAINERS. I only spotted this patch by chance.

Ah, ok, sorry for that. Thanks for spotting this, you should have been Cc'ed by
my cccmd script. I will check that.

> This conflicts with arm_pmu changes I have queued for v4.12 [1].
> 
> So, can we leave the prototype of request_percpu_irq() as-is?
> 
> Why not add a new request_percpu_irq_flags() function, and leave
> request_percpu_irq() as a wrapper for that? e.g.

[ ... ]

> static inline int
> request_percpu_irq(unsigned int irq, irq_handler_t handler,
>  const char *devname, void __percpu *percpu_dev_id)
> {
>   return request_percpu_irq_flags(irq, handler, devname,
>   percpu_dev_id, 0);
> }
> 
> ... that would avoid having to touch any non-timer driver for now.

Mmh, yes. That's a good suggestion.

> [...]
> 
> > -request_percpu_irq(unsigned int irq, irq_handler_t handler,
> > -  const char *devname, void __percpu *percpu_dev_id);
> > +request_percpu_irq(unsigned int irq, unsigned long flags,
> > +  irq_handler_t handler,  const char *devname,
> > +  void __percpu *percpu_dev_id);
> >  
> 
> Looking at request_irq, the prototype is:
> 
> int __must_check
> request_irq(unsigned int irq, irq_handler_t handler,
>   unsigned long flags, const char *name,
>   void *dev);
> 
> ... surely it would be better to share the same argument order? i.e.
> 
> int __must_check
> request_percpu_irq(unsigned int irq, irq_handler_t handler,
>  unsigned long flags, const char *devname,
>  void __percpu *percpu_dev_id);
> 

Agree.

Thanks for the review.

  -- Daniel


-- 

  Linaro.org │ Open source software for ARM SoCs

Follow Linaro:   Facebook |
 Twitter |
 Blog

___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc

Re: ARC patch suggestion

2017-03-23 Thread Waldemar Brodkorb
Hi,

I am preparing for next release.
I want to push attached cleanup of defconfigs as discussed earlier
on the uClibc-ng mailinglist.

@Anton: so you need to use your own defconfig for your toolchain
builds. I suggest to be similar to the Buildroot config.

best regards
 Waldemar

Anton Kolesov wrote,

> Hi,
> 
> > 
> > +CC ARC gnu folks, Anton who maintains an internal build system
> > 
> > 
> > On 03/22/2017 08:02 PM, Waldemar Brodkorb wrote:
> > > Hi,
> > >
> > > I want to success following change:
> > >
> > > From cde74b83f9b204bf56f304224654e4993dc56efc Mon Sep 17 00:00:00
> > 2001
> > > From: Waldemar Brodkorb 
> > > Date: Tue, 21 Mar 2017 20:04:21 +0100
> > > Subject: [PATCH 2/2] ARC: remove special CFLAGS/LDFLAGS handling
> > >
> > > Either toolchain defaults or buildsystems should provide the
> > > architecture specific CFLAGS and LDFLAGS.
> > 
> > Seems a decent cleanup to me !
> > 
> > Acked-by: Vineet Gupta 
> > 
> > @Anton, @Claudiu, @Cupertino any thoughts : for / against
> > 
> 
> AK: No issue by me, but I haven't tried to build test this.
> 
> Anton
>From 52f7a83df309012c283b42682543fa5eb998640f Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb 
Date: Fri, 24 Mar 2017 04:17:17 +0100
Subject: [PATCH] unify defconfigs

Signed-off-by: Waldemar Brodkorb 
---
 extra/Configs/defconfigs/arc/arcv2_defconfig |  39 -
 extra/Configs/defconfigs/arc/defconfig   |  39 +
 extra/Configs/defconfigs/arc/tb10x_defconfig |  38 -
 extra/Configs/defconfigs/nds32/defconfig | 166 ---
 extra/Configs/defconfigs/or1k/defconfig  | 235 ---
 5 files changed, 1 insertion(+), 516 deletions(-)
 delete mode 100644 extra/Configs/defconfigs/arc/arcv2_defconfig
 delete mode 100644 extra/Configs/defconfigs/arc/tb10x_defconfig

diff --git a/extra/Configs/defconfigs/arc/arcv2_defconfig b/extra/Configs/defconfigs/arc/arcv2_defconfig
deleted file mode 100644
index 2d12358..000
--- a/extra/Configs/defconfigs/arc/arcv2_defconfig
+++ /dev/null
@@ -1,39 +0,0 @@
-CONFIG_ARC_CPU_HS=y
-ARCH_WANTS_LITTLE_ENDIAN=y
-# UCLIBC_HAS_FPU is not set
-DO_C99_MATH=y
-KERNEL_HEADERS="%KERNEL_HEADERS%"
-# DOPIC is not set
-# LDSO_CACHE_SUPPORT is not set
-LDSO_RUNPATH=y
-# LDSO_SAFE_RUNPATH is not set
-UCLIBC_HAS_THREADS_NATIVE=y
-PTHREADS_DEBUG_SUPPORT=y
-UCLIBC_HAS_UTMPX=y
-UCLIBC_HAS_UTMP=y
-UCLIBC_SUSV2_LEGACY=y
-UCLIBC_SUSV3_LEGACY=y
-UCLIBC_SUSV4_LEGACY=y
-UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
-UCLIBC_HAS_LIBUTIL=y
-UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
-UCLIBC_SV4_DEPRECATED=y
-UCLIBC_HAS_IPV6=y
-UCLIBC_HAS_RPC=y
-UCLIBC_HAS_FULL_RPC=y
-UCLIBC_USE_NETLINK=y
-UCLIBC_SUPPORT_AI_ADDRCONFIG=y
-UCLIBC_HAS_RESOLVER_SUPPORT=y
-UCLIBC_HAS_LIBRESOLV_STUB=y
-UCLIBC_HAS_LIBNSL_STUB=y
-UCLIBC_HAS_LOCALE=y
-UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
-UCLIBC_HAS_NFTW=y
-UCLIBC_HAS_FTW=y
-UCLIBC_HAS_GNU_GLOB=y
-RUNTIME_PREFIX="%RUNTIME_PREFIX%"
-DEVEL_PREFIX="%DEVEL_PREFIX%"
-CROSS_COMPILER_PREFIX="arc-linux-uclibc-"
-# DOSTRIP is not set
-SUPPORT_LD_DEBUG=y
-UCLIBC_HAS_BACKTRACE=y
diff --git a/extra/Configs/defconfigs/arc/defconfig b/extra/Configs/defconfigs/arc/defconfig
index f582eb5..242e85f 100644
--- a/extra/Configs/defconfigs/arc/defconfig
+++ b/extra/Configs/defconfigs/arc/defconfig
@@ -1,38 +1 @@
-ARCH_WANTS_LITTLE_ENDIAN=y
-# UCLIBC_HAS_FPU is not set
-DO_C99_MATH=y
-KERNEL_HEADERS="%KERNEL_HEADERS%"
-# DOPIC is not set
-# LDSO_CACHE_SUPPORT is not set
-LDSO_RUNPATH=y
-# LDSO_SAFE_RUNPATH is not set
-UCLIBC_HAS_THREADS_NATIVE=y
-PTHREADS_DEBUG_SUPPORT=y
-UCLIBC_HAS_UTMPX=y
-UCLIBC_HAS_UTMP=y
-UCLIBC_SUSV2_LEGACY=y
-UCLIBC_SUSV3_LEGACY=y
-UCLIBC_SUSV4_LEGACY=y
-UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
-UCLIBC_HAS_LIBUTIL=y
-UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
-UCLIBC_SV4_DEPRECATED=y
-UCLIBC_HAS_IPV6=y
-UCLIBC_HAS_RPC=y
-UCLIBC_HAS_FULL_RPC=y
-UCLIBC_USE_NETLINK=y
-UCLIBC_SUPPORT_AI_ADDRCONFIG=y
-UCLIBC_HAS_RESOLVER_SUPPORT=y
-UCLIBC_HAS_LIBRESOLV_STUB=y
-UCLIBC_HAS_LIBNSL_STUB=y
-UCLIBC_HAS_LOCALE=y
-UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
-UCLIBC_HAS_NFTW=y
-UCLIBC_HAS_FTW=y
-UCLIBC_HAS_GNU_GLOB=y
-RUNTIME_PREFIX="%RUNTIME_PREFIX%"
-DEVEL_PREFIX="%DEVEL_PREFIX%"
-CROSS_COMPILER_PREFIX="arc-linux-uclibc-"
-# DOSTRIP is not set
-SUPPORT_LD_DEBUG=y
-UCLIBC_HAS_BACKTRACE=y
+TARGET_arc=y
diff --git a/extra/Configs/defconfigs/arc/tb10x_defconfig b/extra/Configs/defconfigs/arc/tb10x_defconfig
deleted file mode 100644
index f700688..000
--- a/extra/Configs/defconfigs/arc/tb10x_defconfig
+++ /dev/null
@@ -1,38 +0,0 @@
-ARCH_WANTS_LITTLE_ENDIAN=y
-# UCLIBC_HAS_FPU is not set
-DO_C99_MATH=y
-KERNEL_HEADERS="%KERNEL_HEADERS%"
-# DOPIC is not set
-# LDSO_CACHE_SUPPORT is not set
-LDSO_RUNPATH=y
-# LDSO_SAFE_RUNPATH is not set
-UCLIBC_HAS_LINUXTHREADS=y
-PTHREADS_DEBUG_SUPPORT=y
-MALLOC_GLIBC_COMPAT=y
-UCLIBC_SUSV3_LEGACY=y
-UCLIBC_SUSV4_LEGACY=y
-UCLIBC_HAS_GETPT=y
-UCLIBC_HAS_LIBUTIL=y
-UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
-UCLIBC_SV4_DEPRECATED=y
-UCLIBC_HAS_IPV6=y
-UCLIBC_HAS_RPC=y
-UCLIBC_HAS_FULL_RPC=y
-UCLIBC_HAS_RE