Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
cebb469b
Commit
cebb469b
authored
Feb 17, 2009
by
Ingo Molnar
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'x86/apic' into perfcounters/core
parents
0b6de009
9be1b56a
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
148 additions
and
152 deletions
+148
-152
arch/x86/kernel/Makefile
arch/x86/kernel/Makefile
+2
-6
arch/x86/kernel/apic/Makefile
arch/x86/kernel/apic/Makefile
+6
-2
arch/x86/kernel/apic/bigsmp_32.c
arch/x86/kernel/apic/bigsmp_32.c
+0
-0
arch/x86/kernel/apic/es7000_32.c
arch/x86/kernel/apic/es7000_32.c
+0
-0
arch/x86/kernel/apic/numaq_32.c
arch/x86/kernel/apic/numaq_32.c
+0
-0
arch/x86/kernel/apic/probe_32.c
arch/x86/kernel/apic/probe_32.c
+16
-144
arch/x86/kernel/apic/probe_64.c
arch/x86/kernel/apic/probe_64.c
+0
-0
arch/x86/kernel/apic/summit_32.c
arch/x86/kernel/apic/summit_32.c
+0
-0
arch/x86/kernel/setup.c
arch/x86/kernel/setup.c
+124
-0
No files found.
arch/x86/kernel/Makefile
View file @
cebb469b
...
...
@@ -30,7 +30,7 @@ obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o
obj-y
+=
time_
$(BITS)
.o ioport.o ldt.o dumpstack.o
obj-y
+=
setup.o i8259.o irqinit_
$(BITS)
.o
obj-$(CONFIG_X86_VISWS)
+=
visws_quirks.o
obj-$(CONFIG_X86_32)
+=
probe_
32.o probe_
roms_32.o
obj-$(CONFIG_X86_32)
+=
probe_roms_32.o
obj-$(CONFIG_X86_32)
+=
sys_i386_32.o i386_ksyms_32.o
obj-$(CONFIG_X86_64)
+=
sys_x86_64.o x8664_ksyms_64.o
obj-$(CONFIG_X86_64)
+=
syscall_64.o vsyscall_64.o
...
...
@@ -63,17 +63,13 @@ obj-$(CONFIG_SMP) += setup_percpu.o
obj-$(CONFIG_X86_64_SMP)
+=
tsc_sync.o
obj-$(CONFIG_X86_TRAMPOLINE)
+=
trampoline_
$(BITS)
.o
obj-$(CONFIG_X86_MPPARSE)
+=
mpparse.o
obj-
$(CONFIG_X86_LOCAL_APIC)
+=
apic/
obj-
y
+=
apic/
obj-$(CONFIG_X86_REBOOTFIXUPS)
+=
reboot_fixups_32.o
obj-$(CONFIG_DYNAMIC_FTRACE)
+=
ftrace.o
obj-$(CONFIG_FUNCTION_GRAPH_TRACER)
+=
ftrace.o
obj-$(CONFIG_KEXEC)
+=
machine_kexec_
$(BITS)
.o
obj-$(CONFIG_KEXEC)
+=
relocate_kernel_
$(BITS)
.o crash.o
obj-$(CONFIG_CRASH_DUMP)
+=
crash_dump_
$(BITS)
.o
obj-$(CONFIG_X86_BIGSMP)
+=
bigsmp_32.o
obj-$(CONFIG_X86_NUMAQ)
+=
numaq_32.o
obj-$(CONFIG_X86_ES7000)
+=
es7000_32.o
obj-$(CONFIG_X86_SUMMIT)
+=
summit_32.o
obj-y
+=
vsmp_64.o
obj-$(CONFIG_KPROBES)
+=
kprobes.o
obj-$(CONFIG_MODULES)
+=
module_
$(BITS)
.o
...
...
arch/x86/kernel/apic/Makefile
View file @
cebb469b
...
...
@@ -2,14 +2,18 @@
# Makefile for local APIC drivers and for the IO-APIC code
#
obj-
y
:=
apic
.o ipi.o nmi.o
obj-
$(CONFIG_X86_LOCAL_APIC)
+=
apic.o probe_
$(BITS)
.o ipi.o nmi.o
obj-$(CONFIG_X86_IO_APIC)
+=
io_apic.o
obj-$(CONFIG_SMP)
+=
ipi.o
ifeq
($(CONFIG_X86_64),y)
obj-y
+=
apic_
64.o apic_
flat_64.o
obj-y
+=
apic_flat_64.o
obj-$(CONFIG_X86_X2APIC)
+=
x2apic_cluster.o
obj-$(CONFIG_X86_X2APIC)
+=
x2apic_phys.o
obj-$(CONFIG_X86_UV)
+=
x2apic_uv_x.o
endif
obj-$(CONFIG_X86_BIGSMP)
+=
bigsmp_32.o
obj-$(CONFIG_X86_NUMAQ)
+=
numaq_32.o
obj-$(CONFIG_X86_ES7000)
+=
es7000_32.o
obj-$(CONFIG_X86_SUMMIT)
+=
summit_32.o
arch/x86/kernel/bigsmp_32.c
→
arch/x86/kernel/
apic/
bigsmp_32.c
View file @
cebb469b
File moved
arch/x86/kernel/es7000_32.c
→
arch/x86/kernel/
apic/
es7000_32.c
View file @
cebb469b
File moved
arch/x86/kernel/numaq_32.c
→
arch/x86/kernel/
apic/
numaq_32.c
View file @
cebb469b
File moved
arch/x86/kernel/probe_32.c
→
arch/x86/kernel/
apic/
probe_32.c
View file @
cebb469b
...
...
@@ -47,7 +47,22 @@
int
no_broadcast
=
DEFAULT_SEND_IPI
;
#ifdef CONFIG_X86_LOCAL_APIC
static
__init
int
no_ipi_broadcast
(
char
*
str
)
{
get_option
(
&
str
,
&
no_broadcast
);
pr_info
(
"Using %s mode
\n
"
,
no_broadcast
?
"No IPI Broadcast"
:
"IPI Broadcast"
);
return
1
;
}
__setup
(
"no_ipi_broadcast="
,
no_ipi_broadcast
);
static
int
__init
print_ipi_mode
(
void
)
{
pr_info
(
"Using IPI %s mode
\n
"
,
no_broadcast
?
"No-Shortcut"
:
"Shortcut"
);
return
0
;
}
late_initcall
(
print_ipi_mode
);
void
default_setup_apic_routing
(
void
)
{
...
...
@@ -279,146 +294,3 @@ int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
}
return
0
;
}
#endif
/* CONFIG_X86_LOCAL_APIC */
/**
* pre_intr_init_hook - initialisation prior to setting up interrupt vectors
*
* Description:
* Perform any necessary interrupt initialisation prior to setting up
* the "ordinary" interrupt call gates. For legacy reasons, the ISA
* interrupts should be initialised here if the machine emulates a PC
* in any way.
**/
void
__init
pre_intr_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_pre_intr_init
)
{
if
(
x86_quirks
->
arch_pre_intr_init
())
return
;
}
init_ISA_irqs
();
}
/**
* intr_init_hook - post gate setup interrupt initialisation
*
* Description:
* Fill in any interrupts that may have been left out by the general
* init_IRQ() routine. interrupts having to do with the machine rather
* than the devices on the I/O bus (like APIC interrupts in intel MP
* systems) are started here.
**/
void
__init
intr_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_intr_init
)
{
if
(
x86_quirks
->
arch_intr_init
())
return
;
}
}
/**
* pre_setup_arch_hook - hook called prior to any setup_arch() execution
*
* Description:
* generally used to activate any machine specific identification
* routines that may be needed before setup_arch() runs. On Voyager
* this is used to get the board revision and type.
**/
void
__init
pre_setup_arch_hook
(
void
)
{
}
/**
* trap_init_hook - initialise system specific traps
*
* Description:
* Called as the final act of trap_init(). Used in VISWS to initialise
* the various board specific APIC traps.
**/
void
__init
trap_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_trap_init
)
{
if
(
x86_quirks
->
arch_trap_init
())
return
;
}
}
static
struct
irqaction
irq0
=
{
.
handler
=
timer_interrupt
,
.
flags
=
IRQF_DISABLED
|
IRQF_NOBALANCING
|
IRQF_IRQPOLL
,
.
mask
=
CPU_MASK_NONE
,
.
name
=
"timer"
};
/**
* pre_time_init_hook - do any specific initialisations before.
*
**/
void
__init
pre_time_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_pre_time_init
)
x86_quirks
->
arch_pre_time_init
();
}
/**
* time_init_hook - do any specific initialisations for the system timer.
*
* Description:
* Must plug the system timer interrupt source at HZ into the IRQ listed
* in irq_vectors.h:TIMER_IRQ
**/
void
__init
time_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_time_init
)
{
/*
* A nonzero return code does not mean failure, it means
* that the architecture quirk does not want any
* generic (timer) setup to be performed after this:
*/
if
(
x86_quirks
->
arch_time_init
())
return
;
}
irq0
.
mask
=
cpumask_of_cpu
(
0
);
setup_irq
(
0
,
&
irq0
);
}
#ifdef CONFIG_MCA
/**
* mca_nmi_hook - hook into MCA specific NMI chain
*
* Description:
* The MCA (Microchannel Architecture) has an NMI chain for NMI sources
* along the MCA bus. Use this to hook into that chain if you will need
* it.
**/
void
mca_nmi_hook
(
void
)
{
/*
* If I recall correctly, there's a whole bunch of other things that
* we can do to check for NMI problems, but that's all I know about
* at the moment.
*/
pr_warning
(
"NMI generated from unknown source!
\n
"
);
}
#endif
static
__init
int
no_ipi_broadcast
(
char
*
str
)
{
get_option
(
&
str
,
&
no_broadcast
);
pr_info
(
"Using %s mode
\n
"
,
no_broadcast
?
"No IPI Broadcast"
:
"IPI Broadcast"
);
return
1
;
}
__setup
(
"no_ipi_broadcast="
,
no_ipi_broadcast
);
static
int
__init
print_ipi_mode
(
void
)
{
pr_info
(
"Using IPI %s mode
\n
"
,
no_broadcast
?
"No-Shortcut"
:
"Shortcut"
);
return
0
;
}
late_initcall
(
print_ipi_mode
);
arch/x86/kernel/apic/
apic
_64.c
→
arch/x86/kernel/apic/
probe
_64.c
View file @
cebb469b
File moved
arch/x86/kernel/summit_32.c
→
arch/x86/kernel/
apic/
summit_32.c
View file @
cebb469b
File moved
arch/x86/kernel/setup.c
View file @
cebb469b
...
...
@@ -985,4 +985,128 @@ void __init setup_arch(char **cmdline_p)
#endif
}
#ifdef CONFIG_X86_32
/**
* pre_intr_init_hook - initialisation prior to setting up interrupt vectors
*
* Description:
* Perform any necessary interrupt initialisation prior to setting up
* the "ordinary" interrupt call gates. For legacy reasons, the ISA
* interrupts should be initialised here if the machine emulates a PC
* in any way.
**/
void
__init
pre_intr_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_pre_intr_init
)
{
if
(
x86_quirks
->
arch_pre_intr_init
())
return
;
}
init_ISA_irqs
();
}
/**
* intr_init_hook - post gate setup interrupt initialisation
*
* Description:
* Fill in any interrupts that may have been left out by the general
* init_IRQ() routine. interrupts having to do with the machine rather
* than the devices on the I/O bus (like APIC interrupts in intel MP
* systems) are started here.
**/
void
__init
intr_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_intr_init
)
{
if
(
x86_quirks
->
arch_intr_init
())
return
;
}
}
/**
* pre_setup_arch_hook - hook called prior to any setup_arch() execution
*
* Description:
* generally used to activate any machine specific identification
* routines that may be needed before setup_arch() runs. On Voyager
* this is used to get the board revision and type.
**/
void
__init
pre_setup_arch_hook
(
void
)
{
}
/**
* trap_init_hook - initialise system specific traps
*
* Description:
* Called as the final act of trap_init(). Used in VISWS to initialise
* the various board specific APIC traps.
**/
void
__init
trap_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_trap_init
)
{
if
(
x86_quirks
->
arch_trap_init
())
return
;
}
}
static
struct
irqaction
irq0
=
{
.
handler
=
timer_interrupt
,
.
flags
=
IRQF_DISABLED
|
IRQF_NOBALANCING
|
IRQF_IRQPOLL
,
.
mask
=
CPU_MASK_NONE
,
.
name
=
"timer"
};
/**
* pre_time_init_hook - do any specific initialisations before.
*
**/
void
__init
pre_time_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_pre_time_init
)
x86_quirks
->
arch_pre_time_init
();
}
/**
* time_init_hook - do any specific initialisations for the system timer.
*
* Description:
* Must plug the system timer interrupt source at HZ into the IRQ listed
* in irq_vectors.h:TIMER_IRQ
**/
void
__init
time_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_time_init
)
{
/*
* A nonzero return code does not mean failure, it means
* that the architecture quirk does not want any
* generic (timer) setup to be performed after this:
*/
if
(
x86_quirks
->
arch_time_init
())
return
;
}
irq0
.
mask
=
cpumask_of_cpu
(
0
);
setup_irq
(
0
,
&
irq0
);
}
#ifdef CONFIG_MCA
/**
* mca_nmi_hook - hook into MCA specific NMI chain
*
* Description:
* The MCA (Microchannel Architecture) has an NMI chain for NMI sources
* along the MCA bus. Use this to hook into that chain if you will need
* it.
**/
void
mca_nmi_hook
(
void
)
{
/*
* If I recall correctly, there's a whole bunch of other things that
* we can do to check for NMI problems, but that's all I know about
* at the moment.
*/
pr_warning
(
"NMI generated from unknown source!
\n
"
);
}
#endif
/* CONFIG_MCA */
#endif
/* CONFIG_X86_32 */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment