projects/linux·commit bdab2250

Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-mn10300

bdab2250 · Linus Torvalds <[email protected]> · 2010-10-27 18:53:26 -07:00

* git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-mn10300: (44 commits)
  MN10300: Save frame pointer in thread_info struct rather than global var
  MN10300: Change "Matsushita" to "Panasonic".
  MN10300: Create a defconfig for the ASB2364 board
  MN10300: Update the ASB2303 defconfig
  MN10300: ASB2364: Add support for SMSC911X and SMC911X
  MN10300: ASB2364: Handle the IRQ multiplexer in the FPGA
  MN10300: Generic time support
  MN10300: Specify an ELF HWCAP flag for MN10300 Atomic Operations Unit support
  MN10300: Map userspace atomic op regs as a vmalloc page
  MN10300: And Panasonic AM34 subarch and implement SMP
  MN10300: Delete idle_timestamp from irq_cpustat_t
  MN10300: Make various interrupt priority settings configurable
  MN10300: Optimise do_csum()
  MN10300: Implement atomic ops using atomic ops unit
  MN10300: Make the FPU operate in non-lazy mode under SMP
  MN10300: SMP TLB flushing
  MN10300: Use the [ID]PTEL2 registers rather than [ID]PTEL for TLB control
  MN10300: Make the use of PIDR to mark TLB entries controllable
  MN10300: Rename __flush_tlb*() to local_flush_tlb*()
  MN10300: AM34 erratum requires MMUCTR read and write on exception entry
  ...
Commit
bdab225015fbbb45ccd8913f5d7c01b2bf67d8b2
Parents
7c5814c7 · 7c7fcf76

Merge commit. Changes below are compared with the first parent: 7c5814c7.

Changes

144 files changed · +9274 −1813

FileStatusAddDelContent
Kbuildmodified+1−1View file
MAINTAINERSmodified+1−1View file
arch/mn10300/Kconfigmodified+219−60View file
arch/mn10300/Makefilemodified+6−0View file
arch/mn10300/boot/compressed/head.Smodified+67−2View file
arch/mn10300/configs/asb2303_defconfigmodified+2−0View file
arch/mn10300/configs/asb2364_defconfigadded+98−0View file
arch/mn10300/include/asm/atomic.hmodified+350−0View file
arch/mn10300/include/asm/bitops.hmodified+7−7View file
arch/mn10300/include/asm/cache.hmodified+9−5View file
arch/mn10300/include/asm/cacheflush.hmodified+109−55View file
arch/mn10300/include/asm/cpu-regs.hmodified+77−14View file
arch/mn10300/include/asm/dmactl-regs.hmodified+1−86View file
arch/mn10300/include/asm/elf.hmodified+10−2View file
arch/mn10300/include/asm/exceptions.hmodified+4−4View file
arch/mn10300/include/asm/fpu.hmodified+104−53View file
arch/mn10300/include/asm/frame.incmodified+13−7View file
arch/mn10300/include/asm/gdb-stub.hmodified+1−1View file
arch/mn10300/include/asm/hardirq.hmodified+2−1View file
arch/mn10300/include/asm/highmem.hmodified+2−2View file
arch/mn10300/include/asm/intctl-regs.hmodified+20−17View file
arch/mn10300/include/asm/io.hmodified+13−0View file
arch/mn10300/include/asm/irq.hmodified+10−2View file
arch/mn10300/include/asm/irq_regs.hmodified+5−1View file
arch/mn10300/include/asm/irqflags.hmodified+102−9View file
arch/mn10300/include/asm/mmu_context.hmodified+48−25View file
arch/mn10300/include/asm/pgalloc.hmodified+0−1View file
arch/mn10300/include/asm/pgtable.hmodified+52−36View file
arch/mn10300/include/asm/processor.hmodified+39−27View file
arch/mn10300/include/asm/ptrace.hmodified+2−11View file
arch/mn10300/include/asm/reset-regs.hmodified+1−1View file
arch/mn10300/include/asm/rtc.hmodified+0−11View file
arch/mn10300/include/asm/rwlock.hadded+125−0View file
arch/mn10300/include/asm/serial-regs.hmodified+41−10View file
arch/mn10300/include/asm/serial.hmodified+4−4View file
arch/mn10300/include/asm/smp.hmodified+89−2View file
arch/mn10300/include/asm/smsc911x.hadded+1−0View file
arch/mn10300/include/asm/spinlock.hmodified+178−1View file
arch/mn10300/include/asm/spinlock_types.hadded+20−0View file
arch/mn10300/include/asm/system.hmodified+22−51View file
arch/mn10300/include/asm/thread_info.hmodified+14−4View file
arch/mn10300/include/asm/timer-regs.hmodified+175−16View file
arch/mn10300/include/asm/timex.hmodified+16−4View file
arch/mn10300/include/asm/tlbflush.hmodified+124−50View file
arch/mn10300/include/asm/uaccess.hmodified+2−4View file
arch/mn10300/kernel/Makefilemodified+10−5View file
arch/mn10300/kernel/asm-offsets.cmodified+10−1View file
arch/mn10300/kernel/cevt-mn10300.cadded+131−0View file
arch/mn10300/kernel/csrc-mn10300.cadded+35−0View file
arch/mn10300/kernel/entry.Smodified+98−48View file
arch/mn10300/kernel/fpu-low.Smodified+163−102View file
arch/mn10300/kernel/fpu-nofpu-low.Sadded+39−0View file
arch/mn10300/kernel/fpu-nofpu.cadded+30−0View file
arch/mn10300/kernel/fpu.cmodified+56−85View file
arch/mn10300/kernel/gdb-io-serial-low.Smodified+3−2View file
arch/mn10300/kernel/gdb-io-serial.cmodified+27−10View file
arch/mn10300/kernel/gdb-io-ttysm.cmodified+13−11View file
arch/mn10300/kernel/gdb-stub.cmodified+6−11View file
arch/mn10300/kernel/head.Smodified+198−4View file
arch/mn10300/kernel/internal.hmodified+25−0View file
arch/mn10300/kernel/irq.cmodified+246−30View file
arch/mn10300/kernel/kprobes.cmodified+4−0View file
arch/mn10300/kernel/mn10300-serial-low.Smodified+3−3View file
arch/mn10300/kernel/mn10300-serial.cmodified+181−29View file
arch/mn10300/kernel/mn10300-watchdog-low.Smodified+8−1View file
arch/mn10300/kernel/mn10300-watchdog.cmodified+61−39View file
arch/mn10300/kernel/process.cmodified+47−14View file
arch/mn10300/kernel/profile.cmodified+1−1View file
arch/mn10300/kernel/rtc.cmodified+10−31View file
arch/mn10300/kernel/setup.cmodified+43−36View file
arch/mn10300/kernel/signal.cmodified+11−9View file
arch/mn10300/kernel/smp-low.Sadded+97−0View file
arch/mn10300/kernel/smp.cadded+1152−0View file
arch/mn10300/kernel/switch_to.Smodified+3−4View file
arch/mn10300/kernel/time.cmodified+85−27View file
arch/mn10300/kernel/traps.cmodified+13−29View file
arch/mn10300/lib/bitops.cmodified+2−2View file
arch/mn10300/lib/delay.cmodified+4−4View file
arch/mn10300/lib/do_csum.Smodified+22−27View file
arch/mn10300/mm/Kconfig.cacheadded+101−0View file
arch/mn10300/mm/Makefilemodified+12−2View file
arch/mn10300/mm/cache-flush-by-reg.Sadded+308−0View file
arch/mn10300/mm/cache-flush-mn10300.S → arch/mn10300/mm/cache-flush-by-tag.Srenamed+101−42View file
arch/mn10300/mm/cache-flush-icache.cadded+155−0View file
arch/mn10300/mm/cache-inv-by-reg.Sadded+356−0View file
arch/mn10300/mm/cache-inv-by-tag.Sadded+348−0View file
arch/mn10300/mm/cache-inv-icache.cadded+129−0View file
arch/mn10300/mm/cache-mn10300.Sdeleted+0−289View before deletion
arch/mn10300/mm/cache-smp-flush.cadded+156−0View file
arch/mn10300/mm/cache-smp-inv.cadded+153−0View file
arch/mn10300/mm/cache-smp.cadded+105−0View file
arch/mn10300/mm/cache-smp.hadded+69−0View file
arch/mn10300/mm/cache.cmodified+5−90View file
arch/mn10300/mm/fault.cmodified+4−13View file
arch/mn10300/mm/init.cmodified+23−3View file
arch/mn10300/mm/misalignment.cmodified+1−2View file
arch/mn10300/mm/mmu-context.cmodified+11−30View file
arch/mn10300/mm/pgtable.cmodified+1−1View file
arch/mn10300/mm/tlb-mn10300.Smodified+45−14View file
arch/mn10300/mm/tlb-smp.cadded+214−0View file
arch/mn10300/proc-mn103e010/include/proc/cache.hmodified+9−0View file
arch/mn10300/proc-mn103e010/include/proc/clock.hmodified+0−2View file
arch/mn10300/proc-mn103e010/include/proc/dmactl-regs.hadded+102−0View file
arch/mn10300/proc-mn103e010/include/proc/intctl-regs.hadded+29−0View file
arch/mn10300/proc-mn103e010/include/proc/proc.hmodified+1−1View file
arch/mn10300/proc-mn103e010/proc-init.cmodified+37−0View file
arch/mn10300/proc-mn2ws0050/Makefileadded+5−0View file
arch/mn10300/proc-mn2ws0050/include/proc/cache.hadded+48−0View file
arch/mn10300/proc-mn2ws0050/include/proc/clock.hadded+20−0View file
arch/mn10300/proc-mn2ws0050/include/proc/dmactl-regs.hadded+103−0View file
arch/mn10300/proc-mn2ws0050/include/proc/intctl-regs.hadded+29−0View file
arch/mn10300/proc-mn2ws0050/include/proc/irq.hadded+49−0View file
arch/mn10300/proc-mn2ws0050/include/proc/nand-regs.hadded+120−0View file
arch/mn10300/proc-mn2ws0050/include/proc/proc.hadded+18−0View file
arch/mn10300/proc-mn2ws0050/include/proc/smp-regs.hadded+51−0View file
arch/mn10300/proc-mn2ws0050/proc-init.cadded+134−0View file
arch/mn10300/unit-asb2303/include/unit/clock.hmodified+2−23View file
arch/mn10300/unit-asb2303/include/unit/serial.hmodified+5−0View file
arch/mn10300/unit-asb2303/include/unit/timex.hmodified+62−47View file
arch/mn10300/unit-asb2303/unit-init.cmodified+9−1View file
arch/mn10300/unit-asb2305/include/unit/clock.hmodified+2−23View file
arch/mn10300/unit-asb2305/include/unit/serial.hmodified+5−0View file
arch/mn10300/unit-asb2305/include/unit/timex.hmodified+62−47View file
arch/mn10300/unit-asb2305/pci-asb2305.cmodified+6−10View file
arch/mn10300/unit-asb2305/pci.cmodified+1−1View file
arch/mn10300/unit-asb2305/unit-init.cmodified+4−2View file
arch/mn10300/unit-asb2364/Makefileadded+12−0View file
arch/mn10300/unit-asb2364/include/unit/clock.hadded+29−0View file
arch/mn10300/unit-asb2364/include/unit/fpga-regs.hadded+52−0View file
arch/mn10300/unit-asb2364/include/unit/irq.hadded+35−0View file
arch/mn10300/unit-asb2364/include/unit/leds.hadded+54−0View file
arch/mn10300/unit-asb2364/include/unit/serial.hadded+151−0View file
arch/mn10300/unit-asb2364/include/unit/smsc911x.hadded+171−0View file
arch/mn10300/unit-asb2364/include/unit/timex.hadded+159−0View file
arch/mn10300/unit-asb2364/irq-fpga.cadded+96−0View file
arch/mn10300/unit-asb2364/leds.cadded+98−0View file
arch/mn10300/unit-asb2364/smsc911x.cadded+58−0View file
arch/mn10300/unit-asb2364/unit-init.cadded+88−0View file
drivers/net/Kconfigmodified+10−2View file
drivers/net/smsc911x.cmodified+2−1View file
drivers/net/smsc911x.hmodified+11−0View file
include/linux/smp.hmodified+10−9View file
kernel/smp.cmodified+4−4View file
mm/maccess.cmodified+1−1View file

Only the first 600 diff lines are shown. Download the complete patch.

Kbuild

View file
diff --git a/Kbuild b/Kbuild
index 431f7ca..b00037a 100644
--- a/Kbuild
+++ b/Kbuild
@@ -53,7 +53,7 @@ targets += arch/$(SRCARCH)/kernel/asm-offsets.s
# Default sed regexp - multiline due to syntax constraints
define sed-y
"/^->/{s:->#\(.*\):/* \1 */:; \
- s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 (\2) /* \3 */:; \
+ s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:->::; p;}"
endef

MAINTAINERS

View file
diff --git a/MAINTAINERS b/MAINTAINERS
index debde01..1e6b6bd 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -4448,7 +4448,7 @@ L: [email protected]
S: Maintained
F: drivers/platform/x86/panasonic-laptop.c
-PANASONIC MN10300/AM33 PORT
+PANASONIC MN10300/AM33/AM34 PORT
M: David Howells <[email protected]>
M: Koichi Yasutake <[email protected]>
L: [email protected] (moderated for non-subscribers)

arch/mn10300/Kconfig

View file
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig
index 7c2a2f7..365766a 100644
--- a/arch/mn10300/Kconfig
+++ b/arch/mn10300/Kconfig
@@ -9,8 +9,19 @@ config MN10300
def_bool y
select HAVE_OPROFILE
-config AM33
- def_bool y
+config AM33_2
+ def_bool n
+
+config AM33_3
+ def_bool n
+
+config AM34_2
+ def_bool n
+ select MN10300_HAS_ATOMIC_OPS_UNIT
+ select MN10300_HAS_CACHE_SNOOP
+
+config ERRATUM_NEED_TO_RELOAD_MMUCTR
+ def_bool y if AM33_3 || AM34_2
config MMU
def_bool y
@@ -37,7 +48,7 @@ config GENERIC_CALIBRATE_DELAY
def_bool y
config GENERIC_CMOS_UPDATE
- def_bool y
+ def_bool n
config GENERIC_FIND_NEXT_BIT
def_bool y
@@ -45,6 +56,27 @@ config GENERIC_FIND_NEXT_BIT
config GENERIC_HWEIGHT
def_bool y
+config GENERIC_TIME
+ def_bool y
+
+config GENERIC_CLOCKEVENTS
+ def_bool y
+
+config GENERIC_CLOCKEVENTS_BUILD
+ def_bool y
+ depends on GENERIC_CLOCKEVENTS
+
+config GENERIC_CLOCKEVENTS_BROADCAST
+ bool
+
+config CEVT_MN10300
+ def_bool y
+ depends on GENERIC_CLOCKEVENTS
+
+config CSRC_MN10300
+ def_bool y
+ depends on GENERIC_TIME
+
config GENERIC_BUG
def_bool y
@@ -61,18 +93,14 @@ config GENERIC_HARDIRQS
config HOTPLUG_CPU
def_bool n
-config HZ
- int
- default 1000
-
-mainmenu "Matsushita MN10300/AM33 Kernel Configuration"
+mainmenu "Panasonic MN10300/AM33 Kernel Configuration"
source "init/Kconfig"
source "kernel/Kconfig.freezer"
-menu "Matsushita MN10300 system setup"
+menu "Panasonic MN10300 system setup"
choice
prompt "Unit type"
@@ -87,6 +115,10 @@ config MN10300_UNIT_ASB2303
config MN10300_UNIT_ASB2305
bool "ASB2305"
+config MN10300_UNIT_ASB2364
+ bool "ASB2364"
+ select SMSC911X_ARCH_HOOKS if SMSC911X
+
endchoice
choice
@@ -99,57 +131,51 @@ choice
config MN10300_PROC_MN103E010
bool "MN103E010"
depends on MN10300_UNIT_ASB2303 || MN10300_UNIT_ASB2305
+ select AM33_2
+ select MN10300_PROC_HAS_TTYSM0
+ select MN10300_PROC_HAS_TTYSM1
+ select MN10300_PROC_HAS_TTYSM2
+
+config MN10300_PROC_MN2WS0050
+ bool "MN2WS0050"
+ depends on MN10300_UNIT_ASB2364
+ select AM34_2
select MN10300_PROC_HAS_TTYSM0
select MN10300_PROC_HAS_TTYSM1
select MN10300_PROC_HAS_TTYSM2
endchoice
-choice
- prompt "Processor core support"
- default MN10300_CPU_AM33V2
+config MN10300_HAS_ATOMIC_OPS_UNIT
+ def_bool n
help
- This option specifies the processor core for which the kernel will be
- compiled. It affects the instruction set used.
-
-config MN10300_CPU_AM33V2
- bool "AM33v2"
-
-endchoice
+ This should be enabled if the processor has an atomic ops unit
+ capable of doing LL/SC equivalent operations.
config FPU
bool "FPU present"
default y
- depends on MN10300_PROC_MN103E010
+ depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
-choice
- prompt "CPU Caching mode"
- default MN10300_CACHE_WBACK
+config LAZY_SAVE_FPU
+ bool "Save FPU state lazily"
+ default y
+ depends on FPU && !SMP
help
- This option determines the caching mode for the kernel.
-
- Write-Back caching mode involves the all reads and writes causing
- the affected cacheline to be read into the cache first before being
- operated upon. Memory is not then updated by a write until the cache
- is filled and a cacheline needs to be displaced from the cache to
- make room. Only at that point is it written back.
-
- Write-Through caching only fetches cachelines from memory on a
- read. Writes always get written directly to memory. If the affected
- cacheline is also in cache, it will be updated too.
-
- The final option is to turn of caching entirely.
+ Enable this to be lazy in the saving of the FPU state to the owning
+ task's thread struct. This is useful if most tasks on the system
+ don't use the FPU as only those tasks that use it will pass it
+ between them, and the state needn't be saved for a task that isn't
+ using it.
-config MN10300_CACHE_WBACK
- bool "Write-Back"
+ This can't be so easily used on SMP as the process that owns the FPU
+ state on a CPU may be currently running on another CPU, so for the
+ moment, it is disabled.
-config MN10300_CACHE_WTHRU
- bool "Write-Through"
+source "arch/mn10300/mm/Kconfig.cache"
-config MN10300_CACHE_DISABLED
- bool "Disabled"
-
-endchoice
+config MN10300_TLB_USE_PIDR
+ def_bool y
menu "Memory layout options"
@@ -170,24 +196,55 @@ config KERNEL_TEXT_ADDRESS
config KERNEL_ZIMAGE_BASE_ADDRESS
hex "Base address of compressed vmlinux image"
- default "0x90700000"
+ default "0x50700000"
+config BOOT_STACK_OFFSET
+ hex
+ default "0xF00" if SMP
+ default "0xFF0" if !SMP
+
+config BOOT_STACK_SIZE
+ hex
+ depends on SMP
+ default "0x100"
endmenu
-config PREEMPT
- bool "Preemptible Kernel"
- help
- This option reduces the latency of the kernel when reacting to
- real-time or interactive events by allowing a low priority process to
- be preempted even if it is in kernel mode executing a system call.
- This allows applications to run more reliably even when the system is
- under load.
+config SMP
+ bool "Symmetric multi-processing support"
+ default y
+ depends on MN10300_PROC_MN2WS0038 || MN10300_PROC_MN2WS0050
+ ---help---
+ This enables support for systems with more than one CPU. If you have
+ a system with only one CPU, like most personal computers, say N. If
+ you have a system with more than one CPU, say Y.
+
+ If you say N here, the kernel will run on single and multiprocessor
+ machines, but will use only one CPU of a multiprocessor machine. If
+ you say Y here, the kernel will run on many, but not all,
+ singleprocessor machines. On a singleprocessor machine, the kernel
+ will run faster if you say N here.
- Say Y here if you are building a kernel for a desktop, embedded
- or real-time system. Say N if you are unsure.
+ See also <file:Documentation/i386/IO-APIC.txt>,
+ <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
+ <http://www.tldp.org/docs.html#howto>.
+
+ If you don't know what to do here, say N.
+
+config NR_CPUS
+ int
+ depends on SMP
+ default "2"
+
+config USE_GENERIC_SMP_HELPERS
+ bool
+ depends on SMP
+ default y
+
+source "kernel/Kconfig.preempt"
config MN10300_CURRENT_IN_E2
bool "Hold current task address in E2 register"
+ depends on !SMP
default y
help
This option removes the E2/R2 register from the set available to gcc
@@ -209,12 +266,15 @@ config MN10300_USING_JTAG
suppresses the use of certain hardware debugging features, such as
single-stepping, which are taken over completely by the JTAG unit.
+source "kernel/Kconfig.hz"
+source "kernel/time/Kconfig"
+
config MN10300_RTC
bool "Using MN10300 RTC"
- depends on MN10300_PROC_MN103E010
+ depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
+ select GENERIC_CMOS_UPDATE
default n
help
-
This option enables support for the RTC, thus enabling time to be
tracked, even when system is powered down. This is available on-chip
on the MN103E010.
@@ -306,14 +366,23 @@ config MN10300_TTYSM1
choice
prompt "Select the timer to supply the clock for SIF1"
- default MN10300_TTYSM0_TIMER9
+ default MN10300_TTYSM1_TIMER12 \
+ if !(AM33_2 || AM33_3)
+ default MN10300_TTYSM1_TIMER9 \
+ if AM33_2 || AM33_3
depends on MN10300_TTYSM1
+config MN10300_TTYSM1_TIMER12
+ bool "Use timer 12 (16-bit)"
+ depends on !(AM33_2 || AM33_3)
+
config MN10300_TTYSM1_TIMER9
bool "Use timer 9 (16-bit)"
+ depends on AM33_2 || AM33_3
config MN10300_TTYSM1_TIMER3
bool "Use timer 3 (8-bit)"
+ depends on AM33_2 || AM33_3
endchoice
@@ -328,17 +397,107 @@ config MN10300_TTYSM2
choice
prompt "Select the timer to supply the clock for SIF2"
- default MN10300_TTYSM0_TIMER10
+ default MN10300_TTYSM2_TIMER3 \
+ if !(AM33_2 || AM33_3)
+ default MN10300_TTYSM2_TIMER10 \
+ if AM33_2 || AM33_3
depends on MN10300_TTYSM2
+config MN10300_TTYSM2_TIMER9
+ bool "Use timer 9 (16-bit)"
+ depends on !(AM33_2 || AM33_3)
+
+config MN10300_TTYSM2_TIMER1
+ bool "Use timer 1 (8-bit)"
+ depends on !(AM33_2 || AM33_3)
+
+config MN10300_TTYSM2_TIMER3
+ bool "Use timer 3 (8-bit)"
+ depends on !(AM33_2 || AM33_3)
+
config MN10300_TTYSM2_TIMER10
bool "Use timer 10 (16-bit)"
+ depends on AM33_2 || AM33_3
endchoice
config MN10300_TTYSM2_CTS
bool "Enable the use of the CTS line /dev/ttySM2"
- depends on MN10300_TTYSM2
+ depends on MN10300_TTYSM2 && AM33_2
+
+endmenu
+
+menu "Interrupt request priority options"
+
+comment "[!] NOTE: A lower number/level indicates a higher priority (0 is highest, 6 is lowest)"
+
+comment "____Non-maskable interrupt levels____"
+comment "The following must be set to a higher priority than local_irq_disable() and on-chip serial"
+
+config GDBSTUB_IRQ_LEVEL
+ int "GDBSTUB interrupt priority"
+ depends on GDBSTUB
+ range 0 1 if LINUX_CLI_LEVEL = 2
+ range 0 2 if LINUX_CLI_LEVEL = 3
+ range 0 3 if LINUX_CLI_LEVEL = 4
+ range 0 4 if LINUX_CLI_LEVEL = 5
+ range 0 5 if LINUX_CLI_LEVEL = 6
+ default 0
+
+comment "The following must be set to a higher priority than local_irq_disable()"
+
+config MN10300_SERIAL_IRQ_LEVEL
+ int "MN10300 on-chip serial interrupt priority"
+ depends on MN10300_TTYSM
+ range 1 1 if LINUX_CLI_LEVEL = 2
+ range 1 2 if LINUX_CLI_LEVEL = 3
+ range 1 3 if LINUX_CLI_LEVEL = 4
+ range 1 4 if LINUX_CLI_LEVEL = 5
+ range 1 5 if LINUX_CLI_LEVEL = 6
+ default 1
+
+comment "-"
+comment "____Maskable interrupt levels____"
+
+config LINUX_CLI_LEVEL
+ int "The highest interrupt priority excluded by local_irq_disable() (2-6)"
+ range 2 6
+ default 2
+ help
+ local_irq_disable() doesn't actually disable maskable interrupts -
+ what it does is restrict the levels of interrupt which are permitted
+ (a lower level indicates a higher priority) by lowering the value in
+ EPSW.IM from 7. Any interrupt is permitted for which the level is
+ lower than EPSW.IM.
+
+ Certain interrupts, such as GDBSTUB and virtual MN10300 on-chip
+ serial DMA interrupts are allowed to interrupt normal disabled
+ sections.
+
+comment "The following must be set to a equal to or lower priority than LINUX_CLI_LEVEL"
+
+config TIMER_IRQ_LEVEL
+ int "Kernel timer interrupt priority"
+ range LINUX_CLI_LEVEL 6
+ default 4
+
+config PCI_IRQ_LEVEL
+ int "PCI interrupt priority"
+ depends on PCI
+ range LINUX_CLI_LEVEL 6
+ default 5
+
+config ETHERNET_IRQ_LEVEL
+ int "Ethernet interrupt priority"
+ depends on SMC91X || SMC911X || SMSC911X
+ range LINUX_CLI_LEVEL 6
+ default 6
+
+config EXT_SERIAL_IRQ_LEVEL
+ int "External serial port interrupt priority"
+ depends on SERIAL_8250
+ range LINUX_CLI_LEVEL 6
+ default 6
endmenu

arch/mn10300/Makefile

View file
diff --git a/arch/mn10300/Makefile b/arch/mn10300/Makefile
index ac5c6bd..7120282 100644
--- a/arch/mn10300/Makefile
+++ b/arch/mn10300/Makefile
@@ -36,6 +36,9 @@ endif
ifeq ($(CONFIG_MN10300_PROC_MN103E010),y)
PROCESSOR := mn103e010
endif
+ifeq ($(CONFIG_MN10300_PROC_MN2WS0050),y)
+PROCESSOR := mn2ws0050
+endif
ifeq ($(CONFIG_MN10300_UNIT_ASB2303),y)
UNIT := asb2303
@@ -43,6 +46,9 @@ endif
ifeq ($(CONFIG_MN10300_UNIT_ASB2305),y)
UNIT := asb2305
endif
+ifeq ($(CONFIG_MN10300_UNIT_ASB2364),y)
+UNIT := asb2364
+endif
head-y := arch/mn10300/kernel/head.o arch/mn10300/kernel/init_task.o

arch/mn10300/boot/compressed/head.S

View file
diff --git a/arch/mn10300/boot/compressed/head.S b/arch/mn10300/boot/compressed/head.S
index 502e1eb..7b50345 100644
--- a/arch/mn10300/boot/compressed/head.S
+++ b/arch/mn10300/boot/compressed/head.S
@@ -14,10 +14,29 @@
#include <linux/linkage.h>
#include <asm/cpu-regs.h>
+#include <asm/cache.h>
+#ifdef CONFIG_SMP
+#include <proc/smp-regs.h>
+#endif
.globl startup_32
startup_32:
- # first save off parameters from bootloader
+#ifdef CONFIG_SMP
+ #
+ # Secondary CPUs jump directly to the kernel entry point
+ #
+ # Must save primary CPU's D0-D2 registers as they hold boot parameters
+ #
+ mov (CPUID), d3
+ and CPUID_MASK,d3
+ beq startup_primary
+ mov CONFIG_KERNEL_TEXT_ADDRESS,a0
+ jmp (a0)
+
+startup_primary:
+#endif /* CONFIG_SMP */
+
+ # first save parameters from bootloader
mov param_save_area,a0
mov d0,(a0)
mov d1,(4,a0)
@@ -37,8 +56,15 @@ startup_32:
mov (a0),d0
btst CHCTR_ICBUSY|CHCTR_DCBUSY,d0 # wait till not busy
lne
- mov CHCTR_ICEN|CHCTR_DCEN|CHCTR_DCWTMD,d0 # writethru dcache
+
+#ifdef CONFIG_MN10300_CACHE_ENABLED
+#ifdef CONFIG_MN10300_CACHE_WBACK
+ mov CHCTR_ICEN|CHCTR_DCEN|CHCTR_DCWTMD_WRBACK,d0
+#else
+ mov CHCTR_ICEN|CHCTR_DCEN|CHCTR_DCWTMD_WRTHROUGH,d0
+#endif /* WBACK */
movhu d0,(a0) # enable
+#endif /* !ENABLED */
# clear the BSS area
mov __bss_start,a0
@@ -54,6 +80,9 @@ bssclear_end:
# decompress the kernel
call decompress_kernel[],0
+#ifdef CONFIG_MN10300_CACHE_WBACK
+ call mn10300_dcache_flush_inv[],0
+#endif
# disable caches again
mov CHCTR,a0
@@ -69,10 +98,46 @@ bssclear_end:
mov (4,a0),d1
mov (8,a0),d2
+ # jump to the kernel proper entry point
mov a3,sp
mov CONFIG_KERNEL_TEXT_ADDRESS,a0
jmp (a0)
+
+###############################################################################
+#
+# Cache flush routines
+#
+###############################################################################
+#ifdef CONFIG_MN10300_CACHE_WBACK
+mn10300_dcache_flush_inv:
+ movhu (CHCTR),d0
+ btst CHCTR_DCEN,d0
+ beq mn10300_dcache_flush_inv_end
+
+ mov L1_CACHE_NENTRIES,d1
+ clr a1
+
+mn10300_dcache_flush_inv_loop:
+ mov (DCACHE_PURGE_WAY0(0),a1),d0 # unconditional purge
+ mov (DCACHE_PURGE_WAY1(0),a1),d0 # unconditional purge
+ mov (DCACHE_PURGE_WAY2(0),a1),d0 # unconditional purge
+ mov (DCACHE_PURGE_WAY3(0),a1),d0 # unconditional purge
+
+ add L1_CACHE_BYTES,a1
+ add -1,d1
+ bne mn10300_dcache_flush_inv_loop
+
+mn10300_dcache_flush_inv_end:
+ ret [],0
+#endif /* CONFIG_MN10300_CACHE_WBACK */
+
+
+###############################################################################
+#
+# Data areas
+#
+###############################################################################
.data
.align 4
param_save_area:

arch/mn10300/configs/asb2303_defconfig

View file
diff --git a/arch/mn10300/configs/asb2303_defconfig b/arch/mn10300/configs/asb2303_defconfig
index d80dfcb..3f749b6 100644
--- a/arch/mn10300/configs/asb2303_defconfig
+++ b/arch/mn10300/configs/asb2303_defconfig
@@ -12,6 +12,8 @@ CONFIG_SLAB=y
CONFIG_PROFILING=y
# CONFIG_BLOCK is not set
CONFIG_PREEMPT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
CONFIG_MN10300_RTC=y
CONFIG_MN10300_TTYSM_CONSOLE=y
CONFIG_MN10300_TTYSM0=y

arch/mn10300/configs/asb2364_defconfig

View file
diff --git a/arch/mn10300/configs/asb2364_defconfig b/arch/mn10300/configs/asb2364_defconfig
new file mode 100644
index 0000000..83ce2f2
--- /dev/null
+++ b/arch/mn10300/configs/asb2364_defconfig
@@ -0,0 +1,98 @@
+CONFIG_EXPERIMENTAL=y
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_NS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_RELAY=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_EMBEDDED=y
+# CONFIG_KALLSYMS is not set
+# CONFIG_VM_EVENT_COUNTERS is not set

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/atomic.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/bitops.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/cache.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/cacheflush.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/cpu-regs.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/dmactl-regs.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/elf.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/exceptions.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/fpu.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/frame.inc

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/gdb-stub.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/hardirq.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/highmem.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/intctl-regs.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/io.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/irq.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/irq_regs.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/irqflags.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/mmu_context.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/pgalloc.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/processor.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/ptrace.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/reset-regs.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/rtc.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/rwlock.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/serial-regs.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/serial.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/smp.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/smsc911x.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/spinlock.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/spinlock_types.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/system.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/thread_info.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/timer-regs.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/timex.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/tlbflush.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/uaccess.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/asm-offsets.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/cevt-mn10300.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/csrc-mn10300.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/entry.S

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/fpu-low.S

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/fpu-nofpu-low.S

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/fpu-nofpu.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/fpu.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/gdb-io-serial-low.S

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/gdb-io-serial.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/gdb-io-ttysm.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/gdb-stub.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/head.S

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/internal.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/irq.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/kprobes.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/mn10300-serial-low.S

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/mn10300-serial.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/mn10300-watchdog-low.S

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/mn10300-watchdog.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/process.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/profile.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/rtc.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/setup.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/signal.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/smp-low.S

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/smp.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/switch_to.S

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/time.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/traps.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/lib/bitops.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/lib/delay.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/lib/do_csum.S

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/Kconfig.cache

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/cache-flush-by-reg.S

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/cache-flush-by-tag.S

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/cache-flush-icache.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/cache-inv-by-reg.S

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/cache-inv-by-tag.S

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/cache-inv-icache.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/cache-mn10300.S

View before deletion

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/cache-smp-flush.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/cache-smp-inv.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/cache-smp.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/cache-smp.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/cache.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/fault.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/init.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/misalignment.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/mmu-context.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/pgtable.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/tlb-mn10300.S

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/mm/tlb-smp.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/proc-mn103e010/include/proc/cache.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/proc-mn103e010/include/proc/clock.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/proc-mn103e010/include/proc/dmactl-regs.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/proc-mn103e010/include/proc/intctl-regs.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/proc-mn103e010/include/proc/proc.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/proc-mn103e010/proc-init.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/proc-mn2ws0050/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/proc-mn2ws0050/include/proc/cache.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/proc-mn2ws0050/include/proc/clock.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/proc-mn2ws0050/include/proc/dmactl-regs.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/proc-mn2ws0050/include/proc/intctl-regs.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/proc-mn2ws0050/include/proc/irq.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/proc-mn2ws0050/include/proc/nand-regs.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/proc-mn2ws0050/include/proc/proc.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/proc-mn2ws0050/include/proc/smp-regs.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/proc-mn2ws0050/proc-init.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2303/include/unit/clock.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2303/include/unit/serial.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2303/include/unit/timex.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2303/unit-init.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2305/include/unit/clock.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2305/include/unit/serial.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2305/include/unit/timex.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2305/pci-asb2305.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2305/pci.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2305/unit-init.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2364/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2364/include/unit/clock.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2364/include/unit/fpga-regs.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2364/include/unit/irq.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2364/include/unit/leds.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2364/include/unit/serial.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2364/include/unit/smsc911x.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2364/include/unit/timex.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2364/irq-fpga.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2364/leds.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2364/smsc911x.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/unit-asb2364/unit-init.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/net/smsc911x.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/smsc911x.h

View file

This diff is incomplete. Download the complete patch.

include/linux/smp.h

View file

This diff is incomplete. Download the complete patch.

kernel/smp.c

View file

This diff is incomplete. Download the complete patch.

mm/maccess.c

View file

This diff is incomplete. Download the complete patch.