Skip to content

Commit

Permalink
Merge tag 'arc-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/…
Browse files Browse the repository at this point in the history
…git/vgupta/arc

Pull ARC updates from Vineet Gupta:

 - ARCv2 support for native 64-bit atomics using LLOCK/SCONDD
   instructions

 - Support for upcoming 3.0 release of HS38 cores

 - Dwarf unwindinder improvements:
   - enable unwinding of hand written assembler code using CFI
     pseudo-ops
   - switch to .eh_frame (as opposed to historic .debug_frame)
   - get rid of a bunch of adhoc band-aids in the process

 - Misc fixes:
   - perf supporting generic cache-references and cache-misses (Alexey)
   - default NODE_SHIFT (Noam Camus)
   - usage of KFLAG instruction to set IE (Yuriy)

 - Platforms:
   - Add "model" property across the DT (Alexey)
   - Enable MODULE_* in defconfigs

* tag 'arc-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
  ARC: [plat*] enables MODULE*
  ARCv2: fix local_save_flags
  ARC: CONFIG_NODES_SHIFT fix default values
  ARCv2: intc: Use kflag if STATUS32.IE must be reset
  ARC: .exit.* sections can be discarded in .eh_frame regime
  ARC: dw2 unwind: enable cfi pseudo ops in string lib
  ARC: dw2 unwind: add infrastructure for adding cfi pseudo ops to asm
  ARC: entry: make ret_from_system_call local label
  ARC: dw2 unwind: don't force dwarf 2
  ARC: dw2 unwind: switch to .eh_frame based unwinding
  ARC: dw2 unwind: factor CIE specifics for .eh_frame/.debug_frame
  ARC: module: support R_ARC_32_PCREL relocation
  arc: perf: Enable generic "cache-references" and "cache-misses" events
  ARC: [plat-eznps] add missing atomic_fetch_xxx operations
  ARCv2: Implement atomic64 based on LLOCKD/SCONDD instructions
  ARCv2: Support dynamic peripheral address space in HS38 rel 3.0 cores
  ARCv2: identify HS38 rel 3.0 cores
  ARCv2: Add support for ZeBu Emulation platform for HS cores
  arc: Add "model" properly in device tree description of all boards
  • Loading branch information
Linus Torvalds committed Oct 4, 2016
2 parents 5419e78 + ef25bac commit 49deffe
Show file tree
Hide file tree
Showing 53 changed files with 769 additions and 114 deletions.
6 changes: 3 additions & 3 deletions arch/arc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ config ARC
select CLKSRC_OF
select CLONE_BACKWARDS
select COMMON_CLK
select GENERIC_ATOMIC64
select GENERIC_ATOMIC64 if !ISA_ARCV2 || !(ARC_HAS_LL64 && ARC_HAS_LLSC)
select GENERIC_CLOCKEVENTS
select GENERIC_FIND_FIRST_BIT
# for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP
Expand Down Expand Up @@ -353,8 +353,8 @@ endchoice

config NODES_SHIFT
int "Maximum NUMA Nodes (as a power of 2)"
default "1" if !DISCONTIGMEM
default "2" if DISCONTIGMEM
default "0" if !DISCONTIGMEM
default "1" if DISCONTIGMEM
depends on NEED_MULTIPLE_NODES
---help---
Accessing memory beyond 1GB (with or w/o PAE) requires 2 memory
Expand Down
7 changes: 2 additions & 5 deletions arch/arc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ endif

upto_gcc44 := $(call cc-ifversion, -le, 0404, y)
atleast_gcc44 := $(call cc-ifversion, -ge, 0404, y)
atleast_gcc48 := $(call cc-ifversion, -ge, 0408, y)

cflags-$(atleast_gcc44) += -fsection-anchors

Expand All @@ -66,10 +65,8 @@ endif

endif

# By default gcc 4.8 generates dwarf4 which kernel unwinder can't grok
ifeq ($(atleast_gcc48),y)
cflags-$(CONFIG_ARC_DW2_UNWIND) += -gdwarf-2
endif
cfi := $(call as-instr,.cfi_startproc\n.cfi_endproc,-DARC_DW2_UNWIND_AS_CFI)
cflags-$(CONFIG_ARC_DW2_UNWIND) += -fasynchronous-unwind-tables $(cfi)

ifndef CONFIG_CC_OPTIMIZE_FOR_SIZE
# Generic build system uses -O2, we want -O3
Expand Down
1 change: 1 addition & 0 deletions arch/arc/boot/dts/abilis_tb100_dvk.dts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
/include/ "abilis_tb100.dtsi"

/ {
model = "abilis,tb100";
chosen {
bootargs = "earlycon=uart8250,mmio32,0xff100000,9600n8 console=ttyS0,9600n8";
};
Expand Down
1 change: 1 addition & 0 deletions arch/arc/boot/dts/abilis_tb101_dvk.dts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
/include/ "abilis_tb101.dtsi"

/ {
model = "abilis,tb101";
chosen {
bootargs = "earlycon=uart8250,mmio32,0xff100000,9600n8 console=ttyS0,9600n8";
};
Expand Down
1 change: 1 addition & 0 deletions arch/arc/boot/dts/axs101.dts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
/include/ "axs10x_mb.dtsi"

/ {
model = "snps,axs101";
compatible = "snps,axs101", "snps,arc-sdp";

chosen {
Expand Down
1 change: 1 addition & 0 deletions arch/arc/boot/dts/axs103.dts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
/include/ "axs10x_mb.dtsi"

/ {
model = "snps,axs103";
compatible = "snps,axs103", "snps,arc-sdp";

chosen {
Expand Down
1 change: 1 addition & 0 deletions arch/arc/boot/dts/axs103_idu.dts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
/include/ "axs10x_mb.dtsi"

/ {
model = "snps,axs103-smp";
compatible = "snps,axs103", "snps,arc-sdp";

chosen {
Expand Down
1 change: 1 addition & 0 deletions arch/arc/boot/dts/nsim_700.dts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
/include/ "skeleton.dtsi"

/ {
model = "snps,nsim";
compatible = "snps,nsim";
#address-cells = <1>;
#size-cells = <1>;
Expand Down
1 change: 1 addition & 0 deletions arch/arc/boot/dts/nsim_hs.dts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
/include/ "skeleton_hs.dtsi"

/ {
model = "snps,nsim_hs";
compatible = "snps,nsim_hs";
#address-cells = <2>;
#size-cells = <2>;
Expand Down
1 change: 1 addition & 0 deletions arch/arc/boot/dts/nsim_hs_idu.dts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
/include/ "skeleton_hs_idu.dtsi"

/ {
model = "snps,nsim_hs-smp";
compatible = "snps,nsim_hs";
interrupt-parent = <&core_intc>;

Expand Down
1 change: 1 addition & 0 deletions arch/arc/boot/dts/nsimosci.dts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
/include/ "skeleton.dtsi"

/ {
model = "snps,nsimosci";
compatible = "snps,nsimosci";
#address-cells = <1>;
#size-cells = <1>;
Expand Down
1 change: 1 addition & 0 deletions arch/arc/boot/dts/nsimosci_hs.dts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
/include/ "skeleton_hs.dtsi"

/ {
model = "snps,nsimosci_hs";
compatible = "snps,nsimosci_hs";
#address-cells = <1>;
#size-cells = <1>;
Expand Down
1 change: 1 addition & 0 deletions arch/arc/boot/dts/nsimosci_hs_idu.dts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
/include/ "skeleton_hs_idu.dtsi"

/ {
model = "snps,nsimosci_hs-smp";
compatible = "snps,nsimosci_hs";
#address-cells = <1>;
#size-cells = <1>;
Expand Down
1 change: 1 addition & 0 deletions arch/arc/boot/dts/vdk_hs38.dts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
/include/ "vdk_axs10x_mb.dtsi"

/ {
model = "snps,vdk_archs";
compatible = "snps,axs103";

chosen {
Expand Down
1 change: 1 addition & 0 deletions arch/arc/boot/dts/vdk_hs38_smp.dts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
/include/ "vdk_axs10x_mb.dtsi"

/ {
model = "snps,vdk_archs-smp";
compatible = "snps,axs103";

chosen {
Expand Down
69 changes: 69 additions & 0 deletions arch/arc/boot/dts/zebu_hs.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/*
* Copyright (C) 2016-2014 Synopsys, Inc. (www.synopsys.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
/dts-v1/;

/include/ "skeleton_hs.dtsi"

/ {
model = "snps,zebu_hs";
compatible = "snps,zebu_hs";
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&core_intc>;

memory {
device_type = "memory";
reg = <0x80000000 0x20000000>; /* 512 */
};

chosen {
bootargs = "earlycon=uart8250,mmio32,0xf0000000,115200n8 console=ttyS0,115200n8 debug print-fatal-signals=1";
};

aliases {
serial0 = &uart0;
};

fpga {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;

/* child and parent address space 1:1 mapped */
ranges;

core_clk: core_clk {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <50000000>;
};

core_intc: interrupt-controller {
compatible = "snps,archs-intc";
interrupt-controller;
#interrupt-cells = <1>;
};

uart0: serial@f0000000 {
compatible = "ns8250";
reg = <0xf0000000 0x2000>;
interrupts = <24>;
clock-frequency = <50000000>;
baud = <115200>;
reg-shift = <2>;
reg-io-width = <4>;
no-loopback-test = <1>;
};

arcpct0: pct {
compatible = "snps,archs-pct";
#interrupt-cells = <1>;
interrupts = <20>;
};
};
};
85 changes: 85 additions & 0 deletions arch/arc/boot/dts/zebu_hs_idu.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
/*
* Copyright (C) 2016-2014 Synopsys, Inc. (www.synopsys.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
/dts-v1/;

/include/ "skeleton_hs_idu.dtsi"

/ {
model = "snps,zebu_hs-smp";
compatible = "snps,zebu_hs";
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&core_intc>;

memory {
device_type = "memory";
reg = <0x80000000 0x20000000>; /* 512 */
};

chosen {
bootargs = "earlycon=uart8250,mmio32,0xf0000000,115200n8 console=ttyS0,115200n8 debug";
};

aliases {
serial0 = &uart0;
};

fpga {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;

/* child and parent address space 1:1 mapped */
ranges;

core_clk: core_clk {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <50000000>; /* 50 MHZ */
};

core_intc: interrupt-controller {
compatible = "snps,archs-intc";
interrupt-controller;
#interrupt-cells = <1>;
/* interrupts = <16 17 18 19 20 21 22 23 24 25>; */
};

idu_intc: idu-interrupt-controller {
compatible = "snps,archs-idu-intc";
interrupt-controller;
interrupt-parent = <&core_intc>;
/* <hwirq distribution>
distribution: 0=RR; 1=cpu0, 2=cpu1, 4=cpu2, 8=cpu3 */
#interrupt-cells = <2>;
interrupts = <24 25 26 27 28 29 30 31>;

};

uart0: serial@f0000000 {
/* compatible = "ns8250"; Doesn't use FIFOs */
compatible = "ns16550a";
reg = <0xf0000000 0x2000>;
interrupt-parent = <&idu_intc>;
/* interrupts = <0 1>; DEST=1*/
/* interrupts = <0 2>; DEST=2*/
interrupts = <0 0>; /* RR*/
clock-frequency = <50000000>;
baud = <115200>;
reg-shift = <2>;
reg-io-width = <4>;
no-loopback-test = <1>;
};

arcpct0: pct {
compatible = "snps,archs-pct";
#interrupt-cells = <1>;
interrupts = <20>;
};
};
};
3 changes: 3 additions & 0 deletions arch/arc/configs/axs101_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ CONFIG_PERF_EVENTS=y
# CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_ARC_PLAT_AXS10X=y
CONFIG_AXS101=y
Expand Down
3 changes: 3 additions & 0 deletions arch/arc/configs/axs103_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ CONFIG_PERF_EVENTS=y
# CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_ARC_PLAT_AXS10X=y
CONFIG_AXS103=y
Expand Down
3 changes: 3 additions & 0 deletions arch/arc/configs/axs103_smp_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ CONFIG_PERF_EVENTS=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_ARC_PLAT_AXS10X=y
CONFIG_AXS103=y
Expand Down
5 changes: 4 additions & 1 deletion arch/arc/configs/nsim_hs_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,16 @@ CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
# CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE="../arc_initramfs_hs/"
CONFIG_INITRAMFS_SOURCE="../../arc_initramfs_hs/"
CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y
# CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set
CONFIG_KPROBES=y
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_LBDAF is not set
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
Expand Down
3 changes: 3 additions & 0 deletions arch/arc/configs/nsim_hs_smp_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ CONFIG_EMBEDDED=y
# CONFIG_COMPAT_BRK is not set
CONFIG_KPROBES=y
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_LBDAF is not set
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
Expand Down
Loading

0 comments on commit 49deffe

Please sign in to comment.