Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
9caf366e
Commit
9caf366e
authored
Aug 30, 2002
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
http://lia64.bkbits.net/to-linus-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
parents
7c0700ff
7d3b6870
Changes
50
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
50 changed files
with
647 additions
and
757 deletions
+647
-757
arch/ia64/Makefile
arch/ia64/Makefile
+2
-1
arch/ia64/hp/common/sba_iommu.c
arch/ia64/hp/common/sba_iommu.c
+1
-1
arch/ia64/hp/sim/simeth.c
arch/ia64/hp/sim/simeth.c
+1
-1
arch/ia64/hp/sim/simserial.c
arch/ia64/hp/sim/simserial.c
+1
-1
arch/ia64/hp/zx1/hpzx1_misc.c
arch/ia64/hp/zx1/hpzx1_misc.c
+1
-1
arch/ia64/ia32/sys_ia32.c
arch/ia64/ia32/sys_ia32.c
+1
-0
arch/ia64/kernel/acpi.c
arch/ia64/kernel/acpi.c
+79
-46
arch/ia64/kernel/efi.c
arch/ia64/kernel/efi.c
+1
-1
arch/ia64/kernel/efivars.c
arch/ia64/kernel/efivars.c
+1
-1
arch/ia64/kernel/entry.S
arch/ia64/kernel/entry.S
+5
-5
arch/ia64/kernel/fw-emu.c
arch/ia64/kernel/fw-emu.c
+1
-1
arch/ia64/kernel/ia64_ksyms.c
arch/ia64/kernel/ia64_ksyms.c
+1
-1
arch/ia64/kernel/iosapic.c
arch/ia64/kernel/iosapic.c
+370
-298
arch/ia64/kernel/irq.c
arch/ia64/kernel/irq.c
+13
-10
arch/ia64/kernel/irq_ia64.c
arch/ia64/kernel/irq_ia64.c
+5
-10
arch/ia64/kernel/palinfo.c
arch/ia64/kernel/palinfo.c
+1
-1
arch/ia64/kernel/process.c
arch/ia64/kernel/process.c
+1
-1
arch/ia64/kernel/setup.c
arch/ia64/kernel/setup.c
+6
-7
arch/ia64/kernel/smp.c
arch/ia64/kernel/smp.c
+2
-2
arch/ia64/kernel/smpboot.c
arch/ia64/kernel/smpboot.c
+1
-1
arch/ia64/kernel/time.c
arch/ia64/kernel/time.c
+1
-1
arch/ia64/kernel/traps.c
arch/ia64/kernel/traps.c
+2
-3
arch/ia64/lib/memcpy.S
arch/ia64/lib/memcpy.S
+0
-2
arch/ia64/mm/init.c
arch/ia64/mm/init.c
+1
-1
arch/ia64/mm/tlb.c
arch/ia64/mm/tlb.c
+1
-1
arch/ia64/sn/fakeprom/fpmem.c
arch/ia64/sn/fakeprom/fpmem.c
+1
-1
arch/ia64/sn/fakeprom/fw-emu.c
arch/ia64/sn/fakeprom/fw-emu.c
+1
-1
arch/ia64/sn/io/efi-rtc.c
arch/ia64/sn/io/efi-rtc.c
+1
-1
arch/ia64/sn/kernel/llsc4.c
arch/ia64/sn/kernel/llsc4.c
+1
-1
arch/ia64/vmlinux.lds.S
arch/ia64/vmlinux.lds.S
+1
-1
include/asm-ia64/acpi.h
include/asm-ia64/acpi.h
+2
-1
include/asm-ia64/agp.h
include/asm-ia64/agp.h
+3
-0
include/asm-ia64/atomic.h
include/asm-ia64/atomic.h
+2
-2
include/asm-ia64/efi.h
include/asm-ia64/efi.h
+0
-284
include/asm-ia64/fpu.h
include/asm-ia64/fpu.h
+2
-2
include/asm-ia64/hardirq.h
include/asm-ia64/hardirq.h
+6
-6
include/asm-ia64/hw_irq.h
include/asm-ia64/hw_irq.h
+5
-3
include/asm-ia64/ide.h
include/asm-ia64/ide.h
+15
-1
include/asm-ia64/io.h
include/asm-ia64/io.h
+17
-17
include/asm-ia64/iosapic.h
include/asm-ia64/iosapic.h
+18
-11
include/asm-ia64/irq.h
include/asm-ia64/irq.h
+1
-1
include/asm-ia64/kmap_types.h
include/asm-ia64/kmap_types.h
+29
-0
include/asm-ia64/mc146818rtc.h
include/asm-ia64/mc146818rtc.h
+10
-0
include/asm-ia64/mmu_context.h
include/asm-ia64/mmu_context.h
+3
-3
include/asm-ia64/percpu.h
include/asm-ia64/percpu.h
+9
-2
include/asm-ia64/processor.h
include/asm-ia64/processor.h
+3
-4
include/asm-ia64/sal.h
include/asm-ia64/sal.h
+1
-1
include/asm-ia64/system.h
include/asm-ia64/system.h
+3
-3
include/asm-ia64/types.h
include/asm-ia64/types.h
+5
-9
include/asm-ia64/unistd.h
include/asm-ia64/unistd.h
+9
-4
No files found.
arch/ia64/Makefile
View file @
9caf366e
...
...
@@ -96,7 +96,8 @@ MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
vmlinux
:
arch/$(ARCH)/vmlinux.lds.s
CPPFLAGS_arch/ia64/vmlinux.lds.s
:
= -traditional
arch/$(ARCH)/vmlinux.lds.s
:
arch/$(ARCH)/vmlinux.lds.S
$(CPP)
$(CPPFLAGS)
$
(
CPPFLAGS_
$@
)
-D__ASSEMBLY__
-P
-C
-U
$(ARCH)
$<
-o
$@
compressed
:
vmlinux
$(OBJCOPY)
$(OBJCOPYFLAGS)
vmlinux vmlinux-tmp
...
...
arch/ia64/hp/common/sba_iommu.c
View file @
9caf366e
...
...
@@ -30,11 +30,11 @@
#include <linux/string.h>
#include <linux/pci.h>
#include <linux/proc_fs.h>
#include <linux/efi.h>
#include <asm/delay.h>
/* ia64_get_itc() */
#include <asm/io.h>
#include <asm/page.h>
/* PAGE_OFFSET */
#include <asm/efi.h>
#define DRIVER_NAME "SBA"
...
...
arch/ia64/hp/sim/simeth.c
View file @
9caf366e
...
...
@@ -213,7 +213,7 @@ simeth_probe1(void)
memcpy
(
dev
->
dev_addr
,
mac_addr
,
sizeof
(
mac_addr
));
dev
->
irq
=
ia64_alloc_
irq
();
dev
->
irq
=
ia64_alloc_
vector
();
/*
* attach the interrupt in the simulator, this does enable interrupts
...
...
arch/ia64/hp/sim/simserial.c
View file @
9caf366e
...
...
@@ -1076,7 +1076,7 @@ simrs_init (void)
if
(
state
->
type
==
PORT_UNKNOWN
)
continue
;
if
(
!
state
->
irq
)
{
state
->
irq
=
ia64_alloc_
irq
();
state
->
irq
=
ia64_alloc_
vector
();
ia64_ssc_connect_irq
(
KEYBOARD_INTR
,
state
->
irq
);
}
...
...
arch/ia64/hp/zx1/hpzx1_misc.c
View file @
9caf366e
...
...
@@ -12,9 +12,9 @@
#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/acpi.h>
#include <linux/efi.h>
#include <asm/dma.h>
#include <asm/efi.h>
#include <asm/iosapic.h>
extern
acpi_status
acpi_evaluate_integer
(
acpi_handle
,
acpi_string
,
acpi_object_list
*
,
...
...
arch/ia64/ia32/sys_ia32.c
View file @
9caf366e
...
...
@@ -46,6 +46,7 @@
#include <linux/nfsd/syscall.h>
#include <linux/poll.h>
#include <linux/personality.h>
#include <linux/ptrace.h>
#include <linux/stat.h>
#include <linux/ipc.h>
...
...
arch/ia64/kernel/acpi.c
View file @
9caf366e
...
...
@@ -37,7 +37,7 @@
#include <linux/types.h>
#include <linux/irq.h>
#include <linux/acpi.h>
#include <
asm
/efi.h>
#include <
linux
/efi.h>
#include <asm/io.h>
#include <asm/iosapic.h>
#include <asm/machvec.h>
...
...
@@ -47,9 +47,9 @@
#define PREFIX "ACPI: "
asm
(
".weak iosapic_register_i
rq
"
);
asm
(
".weak iosapic_
register_legacy
_irq"
);
asm
(
".weak iosapic_register_platform_i
rq
"
);
asm
(
".weak iosapic_register_i
ntr
"
);
asm
(
".weak iosapic_
override_isa
_irq"
);
asm
(
".weak iosapic_register_platform_i
ntr
"
);
asm
(
".weak iosapic_init"
);
asm
(
".weak iosapic_version"
);
...
...
@@ -173,10 +173,10 @@ acpi_dispose_crs (acpi_buffer *buf)
#ifdef CONFIG_ACPI_BOOT
#define ACPI_MAX_PLATFORM_I
RQ
S 256
#define ACPI_MAX_PLATFORM_I
NTERRUPT
S 256
/* Array to record platform interrupt vectors for generic interrupt routing. */
int
platform_i
rq_list
[
ACPI_MAX_PLATFORM_IRQS
]
=
{
[
0
...
ACPI_MAX_PLATFORM_IRQ
S
-
1
]
=
-
1
};
int
platform_i
ntr_list
[
ACPI_MAX_PLATFORM_INTERRUPTS
]
=
{
[
0
...
ACPI_MAX_PLATFORM_INTERRUPT
S
-
1
]
=
-
1
};
enum
acpi_irq_model_id
acpi_irq_model
=
ACPI_IRQ_MODEL_IOSAPIC
;
...
...
@@ -189,9 +189,9 @@ acpi_request_vector (u32 int_type)
{
int
vector
=
-
1
;
if
(
int_type
<
ACPI_MAX_PLATFORM_I
RQ
S
)
{
if
(
int_type
<
ACPI_MAX_PLATFORM_I
NTERRUPT
S
)
{
/* correctable platform error interrupt */
vector
=
platform_i
rq
_list
[
int_type
];
vector
=
platform_i
ntr
_list
[
int_type
];
}
else
printk
(
"acpi_request_vector(): invalid interrupt type
\n
"
);
return
vector
;
...
...
@@ -210,6 +210,7 @@ __acpi_map_table (unsigned long phys_addr, unsigned long size)
static
int
total_cpus
__initdata
;
static
int
available_cpus
__initdata
;
struct
acpi_table_madt
*
acpi_madt
__initdata
;
static
u8
has_8259
;
static
int
__init
...
...
@@ -284,7 +285,7 @@ acpi_parse_lapic_nmi (acpi_table_entry_header *header)
static
int
__init
acpi_find_iosapic
(
int
global_vector
,
u32
*
irq
_base
,
char
**
iosapic_address
)
acpi_find_iosapic
(
unsigned
int
gsi
,
u32
*
gsi
_base
,
char
**
iosapic_address
)
{
struct
acpi_table_iosapic
*
iosapic
;
int
ver
;
...
...
@@ -292,7 +293,7 @@ acpi_find_iosapic (int global_vector, u32 *irq_base, char **iosapic_address)
char
*
p
;
char
*
end
;
if
(
!
irq
_base
||
!
iosapic_address
)
if
(
!
gsi
_base
||
!
iosapic_address
)
return
-
ENODEV
;
p
=
(
char
*
)
(
acpi_madt
+
1
);
...
...
@@ -302,13 +303,13 @@ acpi_find_iosapic (int global_vector, u32 *irq_base, char **iosapic_address)
if
(
*
p
==
ACPI_MADT_IOSAPIC
)
{
iosapic
=
(
struct
acpi_table_iosapic
*
)
p
;
*
irq
_base
=
iosapic
->
global_irq_base
;
*
gsi
_base
=
iosapic
->
global_irq_base
;
*
iosapic_address
=
ioremap
(
iosapic
->
address
,
0
);
ver
=
iosapic_version
(
*
iosapic_address
);
max_pin
=
(
ver
>>
16
)
&
0xff
;
if
((
g
lobal_vector
-
*
irq
_base
)
<=
max_pin
)
if
((
g
si
-
*
gsi
_base
)
<=
max_pin
)
return
0
;
/* Found it! */
}
p
+=
p
[
1
];
...
...
@@ -347,7 +348,7 @@ acpi_parse_plat_int_src (acpi_table_entry_header *header)
{
struct
acpi_table_plat_int_src
*
plintsrc
;
int
vector
;
u32
irq
_base
;
u32
gsi
_base
;
char
*
iosapic_address
;
plintsrc
=
(
struct
acpi_table_plat_int_src
*
)
header
;
...
...
@@ -356,31 +357,31 @@ acpi_parse_plat_int_src (acpi_table_entry_header *header)
acpi_table_print_madt_entry
(
header
);
if
(
!
iosapic_register_platform_i
rq
)
{
printk
(
KERN_WARNING
PREFIX
"No ACPI platform
IRQ
support
\n
"
);
if
(
!
iosapic_register_platform_i
ntr
)
{
printk
(
KERN_WARNING
PREFIX
"No ACPI platform
interrupt
support
\n
"
);
return
-
ENODEV
;
}
if
(
acpi_find_iosapic
(
plintsrc
->
global_irq
,
&
irq
_base
,
&
iosapic_address
))
{
if
(
acpi_find_iosapic
(
plintsrc
->
global_irq
,
&
gsi
_base
,
&
iosapic_address
))
{
printk
(
KERN_WARNING
PREFIX
"IOSAPIC not found
\n
"
);
return
-
ENODEV
;
}
/*
* Get vector assignment for this
IRQ, set attributes, and program the
* IOSAPIC routing table.
* Get vector assignment for this
interrupt, set attributes,
*
and program the
IOSAPIC routing table.
*/
vector
=
iosapic_register_platform_i
rq
(
plintsrc
->
type
,
plintsrc
->
global_irq
,
plintsrc
->
iosapic_vector
,
plintsrc
->
eid
,
plintsrc
->
id
,
(
plintsrc
->
flags
.
polarity
==
1
)
?
1
:
0
,
(
plintsrc
->
flags
.
trigger
==
1
)
?
1
:
0
,
irq
_base
,
iosapic_address
);
platform_i
rq
_list
[
plintsrc
->
type
]
=
vector
;
vector
=
iosapic_register_platform_i
ntr
(
plintsrc
->
type
,
plintsrc
->
global_irq
,
plintsrc
->
iosapic_vector
,
plintsrc
->
eid
,
plintsrc
->
id
,
(
plintsrc
->
flags
.
polarity
==
1
)
?
1
:
0
,
(
plintsrc
->
flags
.
trigger
==
1
)
?
1
:
0
,
gsi
_base
,
iosapic_address
);
platform_i
ntr
_list
[
plintsrc
->
type
]
=
vector
;
return
0
;
}
...
...
@@ -397,12 +398,12 @@ acpi_parse_int_src_ovr (acpi_table_entry_header *header)
acpi_table_print_madt_entry
(
header
);
/* Ignore if the platform doesn't support overrides */
if
(
!
iosapic_
register_legacy
_irq
)
if
(
!
iosapic_
override_isa
_irq
)
return
0
;
iosapic_
register_legacy
_irq
(
p
->
bus_irq
,
p
->
global_irq
,
(
p
->
flags
.
polarity
==
1
)
?
1
:
0
,
(
p
->
flags
.
trigger
==
1
)
?
1
:
0
);
iosapic_
override_isa
_irq
(
p
->
bus_irq
,
p
->
global_irq
,
(
p
->
flags
.
polarity
==
1
)
?
1
:
0
,
(
p
->
flags
.
trigger
==
1
)
?
1
:
0
);
return
0
;
}
...
...
@@ -431,6 +432,9 @@ acpi_parse_madt (unsigned long phys_addr, unsigned long size)
acpi_madt
=
(
struct
acpi_table_madt
*
)
__va
(
phys_addr
);
/* remember the value for reference after free_initmem() */
has_8259
=
acpi_madt
->
flags
.
pcat_compat
;
/* Get base address of IPI Message Block */
if
(
acpi_madt
->
lapic_address
)
...
...
@@ -440,11 +444,14 @@ acpi_parse_madt (unsigned long phys_addr, unsigned long size)
return
0
;
}
static
int
__init
acpi_parse_fadt
(
unsigned
long
phys_addr
,
unsigned
long
size
)
{
struct
acpi_table_header
*
fadt_header
;
fadt_descriptor_rev2
*
fadt
;
u32
sci_irq
,
gsi_base
;
char
*
iosapic_address
;
if
(
!
phys_addr
||
!
size
)
return
-
EINVAL
;
...
...
@@ -458,9 +465,20 @@ acpi_parse_fadt (unsigned long phys_addr, unsigned long size)
if
(
!
(
fadt
->
iapc_boot_arch
&
BAF_8042_KEYBOARD_CONTROLLER
))
acpi_kbd_controller_present
=
0
;
if
(
!
iosapic_register_intr
)
return
0
;
/* just ignore the rest */
sci_irq
=
fadt
->
sci_int
;
if
(
has_8259
&&
sci_irq
<
16
)
return
0
;
/* legacy, no setup required */
if
(
!
acpi_find_iosapic
(
sci_irq
,
&
gsi_base
,
&
iosapic_address
))
iosapic_register_intr
(
sci_irq
,
0
,
0
,
gsi_base
,
iosapic_address
);
return
0
;
}
unsigned
long
__init
acpi_find_rsdp
(
void
)
{
...
...
@@ -482,12 +500,12 @@ static int __init
acpi_parse_spcr
(
unsigned
long
phys_addr
,
unsigned
long
size
)
{
acpi_ser_t
*
spcr
;
unsigned
long
global_int
;
unsigned
int
gsi
;
if
(
!
phys_addr
||
!
size
)
return
-
EINVAL
;
if
(
!
iosapic_register_i
rq
)
if
(
!
iosapic_register_i
ntr
)
return
-
ENODEV
;
/*
...
...
@@ -500,6 +518,7 @@ acpi_parse_spcr (unsigned long phys_addr, unsigned long size)
*/
spcr
=
(
acpi_ser_t
*
)
__va
(
phys_addr
);
setup_serial_acpi
(
spcr
);
if
(
spcr
->
length
<
sizeof
(
acpi_ser_t
))
...
...
@@ -509,22 +528,22 @@ acpi_parse_spcr (unsigned long phys_addr, unsigned long size)
if
((
spcr
->
base_addr
.
space_id
!=
ACPI_SERIAL_PCICONF_SPACE
)
&&
(
spcr
->
int_type
==
ACPI_SERIAL_INT_SAPIC
))
{
u32
irq
_base
;
u32
gsi
_base
;
char
*
iosapic_address
;
int
vector
;
/* We have a UART in memory space with an SAPIC interrupt */
g
lobal_int
=
(
(
spcr
->
global_int
[
3
]
<<
24
)
|
(
spcr
->
global_int
[
2
]
<<
16
)
|
(
spcr
->
global_int
[
1
]
<<
8
)
|
(
spcr
->
global_int
[
0
])
);
g
si
=
(
(
spcr
->
global_int
[
3
]
<<
24
)
|
(
spcr
->
global_int
[
2
]
<<
16
)
|
(
spcr
->
global_int
[
1
]
<<
8
)
|
(
spcr
->
global_int
[
0
])
);
/* Which iosapic does this
IRQ
belong to? */
/* Which iosapic does this
interrupt
belong to? */
if
(
!
acpi_find_iosapic
(
g
lobal_int
,
&
irq
_base
,
&
iosapic_address
))
vector
=
iosapic_register_i
rq
(
global_int
,
1
,
1
,
irq
_base
,
iosapic_address
);
if
(
!
acpi_find_iosapic
(
g
si
,
&
gsi
_base
,
&
iosapic_address
))
vector
=
iosapic_register_i
ntr
(
gsi
,
1
,
1
,
gsi
_base
,
iosapic_address
);
}
return
0
;
}
...
...
@@ -583,7 +602,12 @@ acpi_boot_init (char *cmdline)
printk
(
KERN_ERR
PREFIX
"Error parsing NMI SRC entry
\n
"
);
skip_madt:
/* FADT says whether a legacy keyboard controller is present. */
/*
* FADT says whether a legacy keyboard controller is present.
* The FADT also contains an SCI_INT line, by which the system
* gets interrupts such as power and sleep buttons. If it's not
* on a Legacy interrupt, it needs to be setup.
*/
if
(
acpi_table_parse
(
ACPI_FACP
,
acpi_parse_fadt
)
<
1
)
printk
(
KERN_ERR
PREFIX
"Can't find FADT
\n
"
);
...
...
@@ -631,7 +655,7 @@ acpi_get_prt (struct pci_vector_struct **vectors, int *count)
*
count
=
0
;
if
(
acpi_prt
.
count
<
0
)
{
printk
(
KERN_ERR
PREFIX
"No PCI
IRQ
routing entries
\n
"
);
printk
(
KERN_ERR
PREFIX
"No PCI
interrupt
routing entries
\n
"
);
return
-
ENODEV
;
}
...
...
@@ -669,4 +693,13 @@ acpi_get_interrupt_model (int *type)
return
0
;
}
int
acpi_irq_to_vector
(
u32
irq
)
{
if
(
has_8259
&&
irq
<
16
)
return
isa_irq_to_vector
(
irq
);
return
gsi_to_vector
(
irq
);
}
#endif
/* CONFIG_ACPI_BOOT */
arch/ia64/kernel/efi.c
View file @
9caf366e
...
...
@@ -24,8 +24,8 @@
#include <linux/types.h>
#include <linux/time.h>
#include <linux/proc_fs.h>
#include <linux/efi.h>
#include <asm/efi.h>
#include <asm/io.h>
#include <asm/kregs.h>
#include <asm/pgtable.h>
...
...
arch/ia64/kernel/efivars.c
View file @
9caf366e
...
...
@@ -65,8 +65,8 @@
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/smp.h>
#include <linux/efi.h>
#include <asm/efi.h>
#include <asm/uaccess.h>
MODULE_AUTHOR
(
"Matt Domsch <Matt_Domsch@Dell.com>"
);
...
...
arch/ia64/kernel/entry.S
View file @
9caf366e
...
...
@@ -1229,11 +1229,11 @@ sys_call_table:
data8
ia64_ni_syscall
//
1235
data8
ia64_ni_syscall
data8
ia64_ni_syscall
data8
ia64_ni_syscall
data8
ia64_ni_syscall
data8
ia64_ni_syscall
//
1240
data8
ia64_ni_syscall
data8
ia64_ni_syscal
l
data8
sys_io_setup
data8
sys_io_destroy
data8
sys_io_getevents
//
1240
data8
sys_io_submit
data8
sys_io_cance
l
data8
ia64_ni_syscall
data8
ia64_ni_syscall
data8
ia64_ni_syscall
//
1245
...
...
arch/ia64/kernel/fw-emu.c
View file @
9caf366e
...
...
@@ -13,7 +13,7 @@
# include <linux/pci.h>
#endif
#include <
asm
/efi.h>
#include <
linux
/efi.h>
#include <asm/io.h>
#include <asm/pal.h>
#include <asm/sal.h>
...
...
arch/ia64/kernel/ia64_ksyms.c
View file @
9caf366e
...
...
@@ -58,7 +58,7 @@ EXPORT_SYMBOL(clear_page);
#include <asm/processor.h>
# ifndef CONFIG_NUMA
EXPORT_SYMBOL
(
cpu_info
);
EXPORT_SYMBOL
(
cpu_info
__per_cpu
);
# endif
EXPORT_SYMBOL
(
kernel_thread
);
...
...
arch/ia64/kernel/iosapic.c
View file @
9caf366e
This diff is collapsed.
Click to expand it.
arch/ia64/kernel/irq.c
View file @
9caf366e
...
...
@@ -802,8 +802,7 @@ static struct proc_dir_entry * irq_dir [NR_IRQS];
#define HEX_DIGITS 8
static
unsigned
int
parse_hex_value
(
const
char
*
buffer
,
unsigned
long
count
,
unsigned
long
*
ret
)
static
int
parse_hex_value
(
const
char
*
buffer
,
unsigned
long
count
,
unsigned
long
*
ret
)
{
unsigned
char
hexnum
[
HEX_DIGITS
];
unsigned
long
value
;
...
...
@@ -846,11 +845,11 @@ static struct proc_dir_entry * smp_affinity_entry [NR_IRQS];
static
unsigned
long
irq_affinity
[
NR_IRQS
]
=
{
[
0
...
NR_IRQS
-
1
]
=
~
0UL
};
static
char
irq_redir
[
NR_IRQS
];
// = { [0 ... NR_IRQS-1] = 1 };
void
set_irq_affinity_info
(
int
irq
,
int
hwid
,
int
redir
)
void
set_irq_affinity_info
(
unsigned
int
irq
,
int
hwid
,
int
redir
)
{
unsigned
long
mask
=
1UL
<<
cpu_logical_id
(
hwid
);
if
(
irq
>=
0
&&
irq
<
NR_IRQS
)
{
if
(
irq
<
NR_IRQS
)
{
irq_affinity
[
irq
]
=
mask
;
irq_redir
[
irq
]
=
(
char
)
(
redir
&
0xff
);
}
...
...
@@ -861,14 +860,15 @@ static int irq_affinity_read_proc (char *page, char **start, off_t off,
{
if
(
count
<
HEX_DIGITS
+
3
)
return
-
EINVAL
;
return
sprintf
(
page
,
"%s%08lx
\n
"
,
irq_redir
[(
long
)
data
]
?
"r "
:
""
,
irq_affinity
[(
long
)
data
]);
return
sprintf
(
page
,
"%s%08lx
\n
"
,
irq_redir
[(
unsigned
long
)
data
]
?
"r "
:
""
,
irq_affinity
[(
unsigned
long
)
data
]);
}
static
int
irq_affinity_write_proc
(
struct
file
*
file
,
const
char
*
buffer
,
unsigned
long
count
,
void
*
data
)
{
int
irq
=
(
long
)
data
,
full_count
=
count
,
err
;
unsigned
int
irq
=
(
unsigned
long
)
data
;
int
full_count
=
count
,
err
;
unsigned
long
new_value
;
const
char
*
buf
=
buffer
;
int
redir
;
...
...
@@ -884,6 +884,8 @@ static int irq_affinity_write_proc (struct file *file, const char *buffer,
redir
=
0
;
err
=
parse_hex_value
(
buf
,
count
,
&
new_value
);
if
(
err
)
return
err
;
/*
* Do not allow disabling IRQs completely - it's a too easy
...
...
@@ -893,7 +895,7 @@ static int irq_affinity_write_proc (struct file *file, const char *buffer,
if
(
!
(
new_value
&
cpu_online_map
))
return
-
EINVAL
;
irq_desc
(
irq
)
->
handler
->
set_affinity
(
irq
|
(
redir
?
(
1
<<
31
)
:
0
),
new_value
);
irq_desc
(
irq
)
->
handler
->
set_affinity
(
irq
|
(
redir
?
IA64_IRQ_REDIRECTED
:
0
),
new_value
);
return
full_count
;
}
...
...
@@ -912,7 +914,8 @@ static int prof_cpu_mask_read_proc (char *page, char **start, off_t off,
static
int
prof_cpu_mask_write_proc
(
struct
file
*
file
,
const
char
*
buffer
,
unsigned
long
count
,
void
*
data
)
{
unsigned
long
*
mask
=
(
unsigned
long
*
)
data
,
full_count
=
count
,
err
;
unsigned
long
*
mask
=
(
unsigned
long
*
)
data
;
int
full_count
=
count
,
err
;
unsigned
long
new_value
;
err
=
parse_hex_value
(
buffer
,
count
,
&
new_value
);
...
...
@@ -946,7 +949,7 @@ static void register_irq_proc (unsigned int irq)
if
(
entry
)
{
entry
->
nlink
=
1
;
entry
->
data
=
(
void
*
)(
long
)
irq
;
entry
->
data
=
(
void
*
)(
unsigned
long
)
irq
;
entry
->
read_proc
=
irq_affinity_read_proc
;
entry
->
write_proc
=
irq_affinity_write_proc
;
}
...
...
arch/ia64/kernel/irq_ia64.c
View file @
9caf366e
...
...
@@ -54,20 +54,15 @@ __u8 isa_irq_to_vector_map[16] = {
0x28
,
0x27
,
0x26
,
0x25
,
0x24
,
0x23
,
0x22
,
0x21
};
/*
* GSI to IA-64 vector translation table.
*/
__u8
gsi_to_vector_map
[
255
];
int
ia64_alloc_
irq
(
void
)
ia64_alloc_
vector
(
void
)
{
static
int
next_
irq
=
IA64_FIRST_DEVICE_VECTOR
;
static
int
next_
vector
=
IA64_FIRST_DEVICE_VECTOR
;
if
(
next_
irq
>
IA64_LAST_DEVICE_VECTOR
)
if
(
next_
vector
>
IA64_LAST_DEVICE_VECTOR
)
/* XXX could look for sharable vectors instead of panic'ing... */
panic
(
"ia64_alloc_
irq
: out of interrupt vectors!"
);
return
next_
irq
++
;
panic
(
"ia64_alloc_
vector
: out of interrupt vectors!"
);
return
next_
vector
++
;
}
extern
unsigned
int
do_IRQ
(
unsigned
long
irq
,
struct
pt_regs
*
regs
);
...
...
arch/ia64/kernel/palinfo.c
View file @
9caf366e
...
...
@@ -21,10 +21,10 @@
#include <linux/proc_fs.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/efi.h>
#include <asm/pal.h>
#include <asm/sal.h>
#include <asm/efi.h>
#include <asm/page.h>
#include <asm/processor.h>
#ifdef CONFIG_SMP
...
...
arch/ia64/kernel/process.c
View file @
9caf366e
...
...
@@ -19,9 +19,9 @@
#include <linux/stddef.h>
#include <linux/thread_info.h>
#include <linux/unistd.h>
#include <linux/efi.h>
#include <asm/delay.h>
#include <asm/efi.h>
#include <asm/elf.h>
#include <asm/perfmon.h>
#include <asm/pgalloc.h>
...
...
arch/ia64/kernel/setup.c
View file @
9caf366e
...
...
@@ -30,6 +30,7 @@
#include <linux/string.h>
#include <linux/threads.h>
#include <linux/tty.h>
#include <linux/efi.h>
#include <asm/ia32.h>
#include <asm/page.h>
...
...
@@ -37,7 +38,6 @@
#include <asm/processor.h>
#include <asm/sal.h>
#include <asm/system.h>
#include <asm/efi.h>
#include <asm/mca.h>
#include <asm/smp.h>
...
...
@@ -58,9 +58,8 @@ extern char _end;
unsigned
long
__per_cpu_offset
[
NR_CPUS
];
#endif
DECLARE_PER_CPU
(
struct
cpuinfo_ia64
,
cpu_info
);
unsigned
long
ia64_phys_stacked_size_p8
;
DEFINE_PER_CPU
(
struct
cpuinfo_ia64
,
cpu_info
);
DEFINE_PER_CPU
(
unsigned
long
,
ia64_phys_stacked_size_p8
);
unsigned
long
ia64_cycles_per_usec
;
struct
ia64_boot_param
*
ia64_boot_param
;
struct
screen_info
screen_info
;
...
...
@@ -564,11 +563,11 @@ cpu_init (void)
my_cpu_data
=
(
void
*
)
get_free_page
(
GFP_KERNEL
);
memcpy
(
my_cpu_data
,
__phys_per_cpu_start
,
__per_cpu_end
-
__per_cpu_start
);
__per_cpu_offset
[
cpu
]
=
(
char
*
)
my_cpu_data
-
__per_cpu_start
;
my_cpu_info
=
my_cpu_data
+
((
char
*
)
&
cpu_info
-
__per_cpu_start
);
my_cpu_info
=
my_cpu_data
+
((
char
*
)
&
__get_cpu_var
(
cpu_info
)
-
__per_cpu_start
);
#else
my_cpu_data
=
__phys_per_cpu_start
;
#endif
my_cpu_info
=
my_cpu_data
+
((
char
*
)
&
cpu_info
-
__per_cpu_start
);
my_cpu_info
=
my_cpu_data
+
((
char
*
)
&
__get_cpu_var
(
cpu_info
)
-
__per_cpu_start
);
/*
* We can't pass "local_cpu_data" to identify_cpu() because we haven't called
...
...
@@ -652,6 +651,6 @@ cpu_init (void)
num_phys_stacked
=
96
;
}
/* size of physical stacked register partition plus 8 bytes: */
ia64_phys_stacked_size_p8
=
num_phys_stacked
*
8
+
8
;
__get_cpu_var
(
ia64_phys_stacked_size_p8
)
=
num_phys_stacked
*
8
+
8
;
platform_cpu_init
();
}
arch/ia64/kernel/smp.c
View file @
9caf366e
...
...
@@ -32,12 +32,12 @@
#include <linux/cache.h>
#include <linux/delay.h>
#include <linux/cache.h>
#include <linux/efi.h>
#include <asm/atomic.h>
#include <asm/bitops.h>
#include <asm/current.h>
#include <asm/delay.h>
#include <asm/efi.h>
#include <asm/machvec.h>
#include <asm/io.h>
#include <asm/irq.h>
...
...
@@ -72,7 +72,7 @@ static volatile struct call_data_struct *call_data;
#define IPI_CPU_STOP 1
/* This needs to be cacheline aligned because it is written to by *other* CPUs. */
static
DE
CLAR
E_PER_CPU
(
__u64
,
ipi_operation
)
____cacheline_aligned
;
static
DE
FIN
E_PER_CPU
(
__u64
,
ipi_operation
)
____cacheline_aligned
;
static
void
stop_this_cpu
(
void
)
...
...
arch/ia64/kernel/smpboot.c
View file @
9caf366e
...
...
@@ -27,13 +27,13 @@
#include <linux/smp.h>
#include <linux/smp_lock.h>
#include <linux/spinlock.h>
#include <linux/efi.h>
#include <asm/atomic.h>
#include <asm/bitops.h>
#include <asm/cache.h>
#include <asm/current.h>
#include <asm/delay.h>
#include <asm/efi.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/machvec.h>
...
...
arch/ia64/kernel/time.c
View file @
9caf366e
...
...
@@ -15,9 +15,9 @@
#include <linux/sched.h>
#include <linux/time.h>
#include <linux/interrupt.h>
#include <linux/efi.h>
#include <asm/delay.h>
#include <asm/efi.h>
#include <asm/hw_irq.h>
#include <asm/ptrace.h>
#include <asm/sal.h>
...
...
arch/ia64/kernel/traps.c
View file @
9caf366e
...
...
@@ -135,8 +135,6 @@ ia64_bad_break (unsigned long break_num, struct pt_regs *regs)
siginfo_t
siginfo
;
int
sig
,
code
;
die_if_kernel
(
"bad break"
,
regs
,
break_num
);
/* SIGILL, SIGFPE, SIGSEGV, and SIGBUS want these field initialized: */
siginfo
.
si_addr
=
(
void
*
)
(
regs
->
cr_iip
+
ia64_psr
(
regs
)
->
ri
);
siginfo
.
si_imm
=
break_num
;
...
...
@@ -144,7 +142,8 @@ ia64_bad_break (unsigned long break_num, struct pt_regs *regs)
siginfo
.
si_isr
=
0
;
switch
(
break_num
)
{
case
0
:
/* unknown error */
case
0
:
/* unknown error (used by GCC for __builtin_abort()) */
die_if_kernel
(
"bad break"
,
regs
,
break_num
);
sig
=
SIGILL
;
code
=
ILL_ILLOPC
;
break
;
...
...
arch/ia64/lib/memcpy.S
View file @
9caf366e
...
...
@@ -13,8 +13,6 @@
*
Stephane
Eranian
<
eranian
@
hpl
.
hp
.
com
>
*
David
Mosberger
-
Tang
<
davidm
@
hpl
.
hp
.
com
>
*/
#include <linux/config.h>
#include <asm/asmmacro.h>
GLOBAL_ENTRY
(
bcopy
)
...
...
arch/ia64/mm/init.c
View file @
9caf366e
...
...
@@ -14,11 +14,11 @@
#include <linux/reboot.h>
#include <linux/slab.h>
#include <linux/swap.h>
#include <linux/efi.h>
#include <asm/a.out.h>
#include <asm/bitops.h>
#include <asm/dma.h>
#include <asm/efi.h>
#include <asm/ia32.h>
#include <asm/io.h>
#include <asm/machvec.h>
...
...
arch/ia64/mm/tlb.c
View file @
9caf366e
...
...
@@ -41,7 +41,7 @@ struct ia64_ctx ia64_ctx = {
.
max_ctx
=
~
0U
};
u8
ia64_need_tlb_flush
__per_cpu_data
;
DEFINE_PER_CPU
(
u8
,
ia64_need_tlb_flush
)
;
/*
* Acquire the ia64_ctx.lock before calling this function!
...
...
arch/ia64/sn/fakeprom/fpmem.c
View file @
9caf366e
...
...
@@ -18,7 +18,7 @@
*/
#include <linux/config.h>
#include <
asm
/efi.h>
#include <
linux
/efi.h>
#include "fpmem.h"
/*
...
...
arch/ia64/sn/fakeprom/fw-emu.c
View file @
9caf366e
...
...
@@ -36,7 +36,7 @@
* http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
#include <linux/config.h>
#include <
asm
/efi.h>
#include <
linux
/efi.h>
#include <asm/pal.h>
#include <asm/sal.h>
#include <asm/sn/sn_sal.h>
...
...
arch/ia64/sn/io/efi-rtc.c
View file @
9caf366e
...
...
@@ -12,7 +12,7 @@
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/errno.h>
#include <
asm
/efi.h>
#include <
linux
/efi.h>
#include <asm/sn/klclock.h>
/*
...
...
arch/ia64/sn/kernel/llsc4.c
View file @
9caf366e
...
...
@@ -17,7 +17,7 @@
#include <linux/mm.h>
#include <linux/delay.h>
#include <linux/string.h>
#include <
asm
/efi.h>
#include <
linux
/efi.h>
#include <asm/page.h>
#include <linux/threads.h>
#include <asm/sn/simulator.h>
...
...
arch/ia64/vmlinux.lds.S
View file @
9caf366e
...
...
@@ -7,7 +7,7 @@
OUTPUT_FORMAT
("
elf64
-
ia64
-
little
")
OUTPUT_ARCH
(
ia64
)
ENTRY
(
phys_start
)
jiffies
=
jiffies_64
;
jiffies
=
jiffies_64
;
SECTIONS
{
/
*
Sections
to
be
discarded
*/
...
...
include/asm-ia64/acpi.h
View file @
9caf366e
...
...
@@ -100,7 +100,8 @@ const char *acpi_get_sysname (void);
int
acpi_boot_init
(
char
*
cdline
);
int
acpi_request_vector
(
u32
int_type
);
int
acpi_get_prt
(
struct
pci_vector_struct
**
vectors
,
int
*
count
);
int
acpi_get_interrupt_model
(
int
*
type
);
int
acpi_get_interrupt_model
(
int
*
type
);
int
acpi_irq_to_vector
(
u32
irq
);
#ifdef CONFIG_DISCONTIGMEM
#define NODE_ARRAY_INDEX(x) ((x) / 8)
/* 8 bits/char */
...
...
include/asm-ia64/agp.h
View file @
9caf366e
...
...
@@ -18,4 +18,7 @@
#define flush_agp_mappings()
/* nothing */
#define flush_agp_cache() mb()
/* Page-protection value to be used for AGP memory mapped into kernel space. */
#define PAGE_AGP PAGE_KERNEL
#endif
/* _ASM_IA64_AGP_H */
include/asm-ia64/atomic.h
View file @
9caf366e
...
...
@@ -9,8 +9,8 @@
* "int" types were carefully placed so as to ensure proper operation
* of the macros.
*
* Copyright (C) 1998, 1999 Hewlett-Packard Co
*
Copyright (C) 1998, 1999
David Mosberger-Tang <davidm@hpl.hp.com>
* Copyright (C) 1998, 1999
, 2002
Hewlett-Packard Co
*
David Mosberger-Tang <davidm@hpl.hp.com>
*/
#include <linux/types.h>
...
...
include/asm-ia64/efi.h
deleted
100644 → 0
View file @
7c0700ff
#ifndef _ASM_IA64_EFI_H
#define _ASM_IA64_EFI_H
/*
* Extensible Firmware Interface
* Based on 'Extensible Firmware Interface Specification' version 0.9, April 30, 1999
*
* Copyright (C) 1999 VA Linux Systems
* Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
* Copyright (C) 1999, 2002 Hewlett-Packard Co.
* David Mosberger-Tang <davidm@hpl.hp.com>
* Stephane Eranian <eranian@hpl.hp.com>
*/
#include <linux/init.h>
#include <linux/string.h>
#include <linux/time.h>
#include <linux/types.h>
#include <linux/proc_fs.h>
#include <asm/page.h>
#include <asm/system.h>
#define EFI_SUCCESS 0
#define EFI_LOAD_ERROR (1L | (1L << 63))
#define EFI_INVALID_PARAMETER (2L | (1L << 63))
#define EFI_UNSUPPORTED (3L | (1L << 63))
#define EFI_BAD_BUFFER_SIZE (4L | (1L << 63))
#define EFI_BUFFER_TOO_SMALL (5L | (1L << 63))
#define EFI_NOT_FOUND (14L | (1L << 63))
typedef
unsigned
long
efi_status_t
;
typedef
u8
efi_bool_t
;
typedef
u16
efi_char16_t
;
/* UNICODE character */
typedef
struct
{
u8
b
[
16
];
}
efi_guid_t
;
#define EFI_GUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \
((efi_guid_t) \
{{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \
(b) & 0xff, ((b) >> 8) & 0xff, \
(c) & 0xff, ((c) >> 8) & 0xff, \
(d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }})
/*
* Generic EFI table header
*/
typedef
struct
{
u64
signature
;
u32
revision
;
u32
headersize
;
u32
crc32
;
u32
reserved
;
}
efi_table_hdr_t
;
/*
* Memory map descriptor:
*/
/* Memory types: */
#define EFI_RESERVED_TYPE 0
#define EFI_LOADER_CODE 1
#define EFI_LOADER_DATA 2
#define EFI_BOOT_SERVICES_CODE 3
#define EFI_BOOT_SERVICES_DATA 4
#define EFI_RUNTIME_SERVICES_CODE 5
#define EFI_RUNTIME_SERVICES_DATA 6
#define EFI_CONVENTIONAL_MEMORY 7
#define EFI_UNUSABLE_MEMORY 8
#define EFI_ACPI_RECLAIM_MEMORY 9
#define EFI_ACPI_MEMORY_NVS 10
#define EFI_MEMORY_MAPPED_IO 11
#define EFI_MEMORY_MAPPED_IO_PORT_SPACE 12
#define EFI_PAL_CODE 13
#define EFI_MAX_MEMORY_TYPE 14
/* Attribute values: */
#define EFI_MEMORY_UC 0x0000000000000001
/* uncached */
#define EFI_MEMORY_WC 0x0000000000000002
/* write-coalescing */
#define EFI_MEMORY_WT 0x0000000000000004
/* write-through */
#define EFI_MEMORY_WB 0x0000000000000008
/* write-back */
#define EFI_MEMORY_WP 0x0000000000001000
/* write-protect */
#define EFI_MEMORY_RP 0x0000000000002000
/* read-protect */
#define EFI_MEMORY_XP 0x0000000000004000
/* execute-protect */
#define EFI_MEMORY_RUNTIME 0x8000000000000000
/* range requires runtime mapping */
#define EFI_MEMORY_DESCRIPTOR_VERSION 1
#define EFI_PAGE_SHIFT 12
typedef
struct
{
u32
type
;
u32
pad
;
u64
phys_addr
;
u64
virt_addr
;
u64
num_pages
;
u64
attribute
;
}
efi_memory_desc_t
;
typedef
int
efi_freemem_callback_t
(
u64
start
,
u64
end
,
void
*
arg
);
/*
* Types and defines for Time Services
*/
#define EFI_TIME_ADJUST_DAYLIGHT 0x1
#define EFI_TIME_IN_DAYLIGHT 0x2
#define EFI_UNSPECIFIED_TIMEZONE 0x07ff
typedef
struct
{
u16
year
;
u8
month
;
u8
day
;
u8
hour
;
u8
minute
;
u8
second
;
u8
pad1
;
u32
nanosecond
;
s16
timezone
;
u8
daylight
;
u8
pad2
;
}
efi_time_t
;
typedef
struct
{
u32
resolution
;
u32
accuracy
;
u8
sets_to_zero
;
}
efi_time_cap_t
;
/*
* Types and defines for EFI ResetSystem
*/
#define EFI_RESET_COLD 0
#define EFI_RESET_WARM 1
/*
* EFI Runtime Services table
*/
#define EFI_RUNTIME_SERVICES_SIGNATURE 0x5652453544e5552
#define EFI_RUNTIME_SERVICES_REVISION 0x00010000
typedef
struct
{
efi_table_hdr_t
hdr
;
u64
get_time
;
u64
set_time
;
u64
get_wakeup_time
;
u64
set_wakeup_time
;
u64
set_virtual_address_map
;
u64
convert_pointer
;
u64
get_variable
;
u64
get_next_variable
;
u64
set_variable
;
u64
get_next_high_mono_count
;
u64
reset_system
;
}
efi_runtime_services_t
;
typedef
efi_status_t
efi_get_time_t
(
efi_time_t
*
tm
,
efi_time_cap_t
*
tc
);
typedef
efi_status_t
efi_set_time_t
(
efi_time_t
*
tm
);
typedef
efi_status_t
efi_get_wakeup_time_t
(
efi_bool_t
*
enabled
,
efi_bool_t
*
pending
,
efi_time_t
*
tm
);
typedef
efi_status_t
efi_set_wakeup_time_t
(
efi_bool_t
enabled
,
efi_time_t
*
tm
);
typedef
efi_status_t
efi_get_variable_t
(
efi_char16_t
*
name
,
efi_guid_t
*
vendor
,
u32
*
attr
,
unsigned
long
*
data_size
,
void
*
data
);
typedef
efi_status_t
efi_get_next_variable_t
(
unsigned
long
*
name_size
,
efi_char16_t
*
name
,
efi_guid_t
*
vendor
);
typedef
efi_status_t
efi_set_variable_t
(
efi_char16_t
*
name
,
efi_guid_t
*
vendor
,
u32
attr
,
unsigned
long
data_size
,
void
*
data
);
typedef
efi_status_t
efi_get_next_high_mono_count_t
(
u64
*
count
);
typedef
void
efi_reset_system_t
(
int
reset_type
,
efi_status_t
status
,
unsigned
long
data_size
,
efi_char16_t
*
data
);
/*
* EFI Configuration Table and GUID definitions
*/
#define NULL_GUID \
EFI_GUID( 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 )
#define MPS_TABLE_GUID \
EFI_GUID( 0xeb9d2d2f, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d )
#define ACPI_TABLE_GUID \
EFI_GUID( 0xeb9d2d30, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d )
#define ACPI_20_TABLE_GUID \
EFI_GUID( 0x8868e871, 0xe4f1, 0x11d3, 0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 )
#define SMBIOS_TABLE_GUID \
EFI_GUID( 0xeb9d2d31, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d )
#define SAL_SYSTEM_TABLE_GUID \
EFI_GUID( 0xeb9d2d32, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d )
#define HCDP_TABLE_GUID \
EFI_GUID( 0xf951938d, 0x620b, 0x42ef, 0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98 )
typedef
struct
{
efi_guid_t
guid
;
u64
table
;
}
efi_config_table_t
;
#define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249
#define EFI_SYSTEM_TABLE_REVISION ((1 << 16) | 00)
typedef
struct
{
efi_table_hdr_t
hdr
;
u64
fw_vendor
;
/* physical addr of CHAR16 vendor string */
u32
fw_revision
;
u64
con_in_handle
;
u64
con_in
;
u64
con_out_handle
;
u64
con_out
;
u64
stderr_handle
;
u64
stderr
;
u64
runtime
;
u64
boottime
;
u64
nr_tables
;
u64
tables
;
}
efi_system_table_t
;
/*
* All runtime access to EFI goes through this structure:
*/
extern
struct
efi
{
efi_system_table_t
*
systab
;
/* EFI system table */
void
*
mps
;
/* MPS table */
void
*
acpi
;
/* ACPI table (IA64 ext 0.71) */
void
*
acpi20
;
/* ACPI table (ACPI 2.0) */
void
*
smbios
;
/* SM BIOS table */
void
*
sal_systab
;
/* SAL system table */
void
*
boot_info
;
/* boot info table */
void
*
hcdp
;
/* HCDP table */
efi_get_time_t
*
get_time
;
efi_set_time_t
*
set_time
;
efi_get_wakeup_time_t
*
get_wakeup_time
;
efi_set_wakeup_time_t
*
set_wakeup_time
;
efi_get_variable_t
*
get_variable
;
efi_get_next_variable_t
*
get_next_variable
;
efi_set_variable_t
*
set_variable
;
efi_get_next_high_mono_count_t
*
get_next_high_mono_count
;
efi_reset_system_t
*
reset_system
;
}
efi
;
static
inline
int
efi_guidcmp
(
efi_guid_t
left
,
efi_guid_t
right
)
{
return
memcmp
(
&
left
,
&
right
,
sizeof
(
efi_guid_t
));
}
static
inline
char
*
efi_guid_unparse
(
efi_guid_t
*
guid
,
char
*
out
)
{
sprintf
(
out
,
"%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x"
,
guid
->
b
[
3
],
guid
->
b
[
2
],
guid
->
b
[
1
],
guid
->
b
[
0
],
guid
->
b
[
5
],
guid
->
b
[
4
],
guid
->
b
[
7
],
guid
->
b
[
6
],
guid
->
b
[
8
],
guid
->
b
[
9
],
guid
->
b
[
10
],
guid
->
b
[
11
],
guid
->
b
[
12
],
guid
->
b
[
13
],
guid
->
b
[
14
],
guid
->
b
[
15
]);
return
out
;
}
extern
void
efi_init
(
void
);
extern
void
efi_map_pal_code
(
void
);
extern
void
efi_memmap_walk
(
efi_freemem_callback_t
callback
,
void
*
arg
);
extern
void
efi_gettimeofday
(
struct
timeval
*
tv
);
extern
void
efi_enter_virtual_mode
(
void
);
/* switch EFI to virtual mode, if possible */
extern
u64
efi_get_iobase
(
void
);
extern
u32
efi_mem_type
(
unsigned
long
phys_addr
);
extern
u64
efi_mem_attributes
(
unsigned
long
phys_addr
);
/*
* Variable Attributes
*/
#define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001
#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002
#define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004
/*
* efi_dir is allocated in arch/ia64/kernel/efi.c.
*/
#ifdef CONFIG_PROC_FS
extern
struct
proc_dir_entry
*
efi_dir
;
#endif
#endif
/* _ASM_IA64_EFI_H */
include/asm-ia64/fpu.h
View file @
9caf366e
...
...
@@ -2,8 +2,8 @@
#define _ASM_IA64_FPU_H
/*
* Copyright (C) 1998, 1999 Hewlett-Packard Co
*
Copyright (C) 1998, 1999
David Mosberger-Tang <davidm@hpl.hp.com>
* Copyright (C) 1998, 1999
, 2002
Hewlett-Packard Co
*
David Mosberger-Tang <davidm@hpl.hp.com>
*/
#include <asm/types.h>
...
...
include/asm-ia64/hardirq.h
View file @
9caf366e
...
...
@@ -92,12 +92,12 @@
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
#define irq_exit()
\
do {
\
preempt_count() -= IRQ_EXIT_OFFSET;
\
if (!in_interrupt() &&
softirq_pending(smp_processor_id()
)) \
do_softirq();
\
preempt_enable_no_resched();
\
#define irq_exit() \
do { \
preempt_count() -= IRQ_EXIT_OFFSET; \
if (!in_interrupt() &&
local_softirq_pending(
)) \
do_softirq(); \
preempt_enable_no_resched(); \
} while (0)
#ifdef CONFIG_SMP
...
...
include/asm-ia64/hw_irq.h
View file @
9caf366e
...
...
@@ -53,6 +53,10 @@ typedef u8 ia64_vector;
#define IA64_IPI_RESCHEDULE 0xfd
/* SMP reschedule */
#define IA64_IPI_VECTOR 0xfe
/* inter-processor interrupt vector */
/* Used for encoding redirected irqs */
#define IA64_IRQ_REDIRECTED (1 << 31)
/* IA64 inter-cpu interrupt related definitions */
#define IA64_IPI_DEFAULT_BASE_ADDR 0xfee00000
...
...
@@ -68,14 +72,12 @@ enum {
extern
__u8
isa_irq_to_vector_map
[
16
];
#define isa_irq_to_vector(x) isa_irq_to_vector_map[(x)]
extern
__u8
gsi_to_vector_map
[
255
];
#define gsi_to_vector(x) gsi_to_vector_map[(x)]
extern
unsigned
long
ipi_base_addr
;
extern
struct
hw_interrupt_type
irq_type_ia64_lsapic
;
/* CPU-internal interrupt controller */
extern
int
ia64_alloc_
irq
(
void
);
/* allocate a free irq
*/
extern
int
ia64_alloc_
vector
(
void
);
/* allocate a free vector
*/
extern
void
ia64_send_ipi
(
int
cpu
,
int
vector
,
int
delivery_mode
,
int
redirect
);
extern
void
register_percpu_irq
(
ia64_vector
vec
,
struct
irqaction
*
action
);
...
...
include/asm-ia64/ide.h
View file @
9caf366e
...
...
@@ -85,11 +85,25 @@ ide_init_default_hwifs (void)
for
(
index
=
0
;
index
<
MAX_HWIFS
;
index
++
)
{
ide_init_hwif_ports
(
&
hw
,
ide_default_io_base
(
index
),
0
,
NULL
);
hw
.
irq
=
ide_default_irq
(
ide_default_io_base
(
index
));
ide_register_hw
(
&
hw
);
ide_register_hw
(
&
hw
,
NULL
);
}
#endif
}
#define ide_request_irq(irq,hand,flg,dev,id) request_irq((irq),(hand),(flg),(dev),(id))
#define ide_free_irq(irq,dev_id) free_irq((irq), (dev_id))
#define ide_check_region(from,extent) check_region((from), (extent))
#define ide_request_region(from,extent,name) request_region((from), (extent), (name))
#define ide_release_region(from,extent) release_region((from), (extent))
/*
* The following are not needed for the non-m68k ports
*/
#define ide_ack_intr(hwif) (1)
#define ide_fix_driveid(id) do {} while (0)
#define ide_release_lock(lock) do {} while (0)
#define ide_get_lock(lock, hdlr, data) do {} while (0)
#endif
/* __KERNEL__ */
#endif
/* __ASM_IA64_IDE_H */
include/asm-ia64/io.h
View file @
9caf366e
...
...
@@ -13,7 +13,7 @@
* over and over again with slight variations and possibly making a
* mistake somewhere.
*
* Copyright (C) 1998-200
1
Hewlett-Packard Co
* Copyright (C) 1998-200
2
Hewlett-Packard Co
* David Mosberger-Tang <davidm@hpl.hp.com>
* Copyright (C) 1999 Asit Mallick <asit.k.mallick@intel.com>
* Copyright (C) 1999 Don Dugger <don.dugger@intel.com>
...
...
@@ -277,9 +277,9 @@ __outsl (unsigned long port, void *src, unsigned long count)
}
/*
* Unfortunately, some platforms are broken and do not follow the
*
IA-64 architecture specification regarding legacy I/O support.
*
Thus, we have to make these operations
platform dependent...
* Unfortunately, some platforms are broken and do not follow the
IA-64 architecture
*
specification regarding legacy I/O support. Thus, we have to make these operations
* platform dependent...
*/
#define __inb platform_inb
#define __inw platform_inw
...
...
@@ -289,19 +289,19 @@ __outsl (unsigned long port, void *src, unsigned long count)
#define __outl platform_outl
#define __mmiob platform_mmiob
#define inb
__inb
#define inw
__inw
#define inl
__inl
#define insb
__insb
#define insw
__insw
#define insl
__insl
#define outb
__outb
#define outw
__outw
#define outl
__outl
#define outsb
__outsb
#define outsw
__outsw
#define outsl
__outsl
#define mmiob
__mmiob
#define inb
(p) __inb(p)
#define inw
(p) __inw(p)
#define inl
(p) __inl(p)
#define insb
(p,d,c) __insb(p,d,c)
#define insw
(p,d,c) __insw(p,d,c)
#define insl
(p,d,c) __insl(p,d,c)
#define outb
(v,p) __outb(v,p)
#define outw
(v,p) __outw(v,p)
#define outl
(v,p) __outl(v,p)
#define outsb
(p,s,c) __outsb(p,s,c)
#define outsw
(p,s,c) __outsw(p,s,c)
#define outsl
(p,s,c) __outsl(p,s,c)
#define mmiob
() __mmiob()
/*
* The address passed to these functions are ioremap()ped already.
...
...
include/asm-ia64/iosapic.h
View file @
9caf366e
...
...
@@ -51,17 +51,24 @@
#ifndef __ASSEMBLY__
extern
void
__init
iosapic_init
(
unsigned
long
address
,
unsigned
int
base_irq
,
int
pcat_compat
);
extern
int
iosapic_register_irq
(
u32
global_vector
,
unsigned
long
polarity
,
unsigned
long
edge_triggered
,
u32
base_irq
,
char
*
iosapic_address
);
extern
void
iosapic_register_legacy_irq
(
unsigned
long
irq
,
unsigned
long
pin
,
unsigned
long
polarity
,
unsigned
long
trigger
);
extern
int
iosapic_register_platform_irq
(
u32
int_type
,
u32
global_vector
,
u32
iosapic_vector
,
u16
eid
,
u16
id
,
unsigned
long
polarity
,
unsigned
long
edge_triggered
,
u32
base_irq
,
char
*
iosapic_address
);
extern
void
__devinit
iosapic_init
(
unsigned
long
address
,
unsigned
int
gsi_base
,
int
pcat_compat
);
extern
int
gsi_to_vector
(
unsigned
int
gsi
);
extern
int
iosapic_register_intr
(
unsigned
int
gsi
,
unsigned
long
polarity
,
unsigned
long
edge_triggered
,
u32
gsi_base
,
char
*
iosapic_address
);
extern
void
iosapic_override_isa_irq
(
unsigned
int
isa_irq
,
unsigned
int
gsi
,
unsigned
long
polarity
,
unsigned
long
edge_triggered
);
extern
int
iosapic_register_platform_intr
(
u32
int_type
,
unsigned
int
gsi
,
int
pmi_vector
,
u16
eid
,
u16
id
,
unsigned
long
polarity
,
unsigned
long
edge_triggered
,
unsigned
int
gsi_base
,
char
*
iosapic_address
);
extern
unsigned
int
iosapic_version
(
char
*
addr
);
extern
void
iosapic_pci_fixup
(
int
);
...
...
include/asm-ia64/irq.h
View file @
9caf366e
...
...
@@ -27,6 +27,6 @@ irq_cannonicalize (int irq)
extern
void
disable_irq
(
unsigned
int
);
extern
void
disable_irq_nosync
(
unsigned
int
);
extern
void
enable_irq
(
unsigned
int
);
extern
void
set_irq_affinity_info
(
int
irq
,
int
dest
,
int
redir
);
extern
void
set_irq_affinity_info
(
unsigned
int
irq
,
int
dest
,
int
redir
);
#endif
/* _ASM_IA64_IRQ_H */
include/asm-ia64/kmap_types.h
0 → 100644
View file @
9caf366e
#ifndef _ASM_IA64_KMAP_TYPES_H
#define _ASM_IA64_KMAP_TYPES_H
#include <linux/config.h>
#if CONFIG_DEBUG_HIGHMEM
# define D(n) __KM_FENCE_##n ,
#else
# define D(n)
#endif
enum
km_type
{
D
(
0
)
KM_BOUNCE_READ
,
D
(
1
)
KM_SKB_SUNRPC_DATA
,
D
(
2
)
KM_SKB_DATA_SOFTIRQ
,
D
(
3
)
KM_USER0
,
D
(
4
)
KM_USER1
,
D
(
5
)
KM_BIO_SRC_IRQ
,
D
(
6
)
KM_BIO_DST_IRQ
,
D
(
7
)
KM_PTE0
,
D
(
8
)
KM_PTE1
,
D
(
9
)
KM_IRQ0
,
D
(
10
)
KM_IRQ1
,
D
(
11
)
KM_TYPE_NR
};
#undef D
#endif
/* _ASM_IA64_KMAP_TYPES_H */
include/asm-ia64/mc146818rtc.h
0 → 100644
View file @
9caf366e
#ifndef _ASM_IA64_MC146818RTC_H
#define _ASM_IA64_MC146818RTC_H
/*
* Machine dependent access functions for RTC registers.
*/
/* empty include file to satisfy the include in genrtc.c */
#endif
/* _ASM_IA64_MC146818RTC_H */
include/asm-ia64/mmu_context.h
View file @
9caf366e
...
...
@@ -36,7 +36,7 @@ struct ia64_ctx {
};
extern
struct
ia64_ctx
ia64_ctx
;
extern
u8
ia64_need_tlb_flush
__per_cpu_data
;
DECLARE_PER_CPU
(
u8
,
ia64_need_tlb_flush
)
;
extern
void
wrap_mmu_context
(
struct
mm_struct
*
mm
);
...
...
@@ -56,9 +56,9 @@ delayed_tlb_flush (void)
{
extern
void
__flush_tlb_all
(
void
);
if
(
unlikely
(
ia64_need_tlb_flush
))
{
if
(
unlikely
(
__get_cpu_var
(
ia64_need_tlb_flush
)
))
{
__flush_tlb_all
();
ia64_need_tlb_flush
=
0
;
__get_cpu_var
(
ia64_need_tlb_flush
)
=
0
;
}
}
...
...
include/asm-ia64/percpu.h
View file @
9caf366e
#ifndef _ASM_IA64_PERCPU_H
#define _ASM_IA64_PERCPU_H
#include <linux/config.h>
#include <linux/compiler.h>
/*
* Copyright (C) 2002 Hewlett-Packard Co
* David Mosberger-Tang <davidm@hpl.hp.com>
...
...
@@ -8,7 +11,7 @@
#ifdef __ASSEMBLY__
#define THIS_CPU(var) (var##__per_cpu)
/* use this to mark accesses to per-CPU variables... */
#define THIS_CPU(var) (var##__per_cpu)
/* use this to mark accesses to per-CPU variables... */
#else
/* !__ASSEMBLY__ */
...
...
@@ -22,8 +25,12 @@ extern unsigned long __per_cpu_offset[NR_CPUS];
#endif
#define DECLARE_PER_CPU(type, name) extern __typeof__(type) name##__per_cpu
#define per_cpu(var, cpu) (*RELOC_HIDE(&var##__per_cpu, __per_cpu_offset[cpu]))
#define __get_cpu_var(var) (var##__per_cpu)
#ifdef CONFIG_SMP
# define per_cpu(var, cpu) (*RELOC_HIDE(&var##__per_cpu, __per_cpu_offset[cpu]))
#else
# define per_cpu(var, cpu) __get_cpu_var(var)
#endif
#endif
/* !__ASSEMBLY__ */
...
...
include/asm-ia64/processor.h
View file @
9caf366e
...
...
@@ -15,9 +15,6 @@
#include <linux/config.h>
#include <linux/percpu.h>
#include <linux/compiler.h>
#include <asm/ptrace.h>
#include <asm/kregs.h>
#include <asm/system.h>
...
...
@@ -81,8 +78,10 @@
#ifndef __ASSEMBLY__
#include <linux/threads.h>
#include <linux/cache.h>
#include <linux/compiler.h>
#include <linux/percpu.h>
#include <linux/threads.h>
#include <asm/fpu.h>
#include <asm/offsets.h>
...
...
include/asm-ia64/sal.h
View file @
9caf366e
...
...
@@ -24,9 +24,9 @@
*/
#include <linux/spinlock.h>
#include <linux/efi.h>
#include <asm/pal.h>
#include <asm/efi.h>
#include <asm/system.h>
#include <asm/fpu.h>
...
...
include/asm-ia64/system.h
View file @
9caf366e
...
...
@@ -13,7 +13,6 @@
* Copyright (C) 1999 Don Dugger <don.dugger@intel.com>
*/
#include <linux/config.h>
#include <linux/percpu.h>
#include <asm/kregs.h>
#include <asm/page.h>
...
...
@@ -26,6 +25,7 @@
#ifndef __ASSEMBLY__
#include <linux/percpu.h>
#include <linux/kernel.h>
#include <linux/types.h>
...
...
@@ -368,8 +368,8 @@ extern void ia64_save_extra (struct task_struct *task);
extern
void
ia64_load_extra
(
struct
task_struct
*
task
);
#if defined(CONFIG_SMP) && defined(CONFIG_PERFMON)
extern
int
__per_cpu_data
pfm_syst_wide
;
# define PERFMON_IS_SYSWIDE() (
this_cpu
(pfm_syst_wide) != 0)
DECLARE_PER_CPU
(
int
,
pfm_syst_wide
)
;
# define PERFMON_IS_SYSWIDE() (
get_cpu_var
(pfm_syst_wide) != 0)
#else
# define PERFMON_IS_SYSWIDE() (0)
#endif
...
...
include/asm-ia64/types.h
View file @
9caf366e
...
...
@@ -2,14 +2,13 @@
#define _ASM_IA64_TYPES_H
/*
* This file is never included by application software unless
* explicitly requested (e.g., via linux/types.h) in which case the
* application is Linux specific so (user-) name space pollution is
* not a major issue. However, for interoperability, libraries still
* This file is never included by application software unless explicitly requested (e.g.,
* via linux/types.h) in which case the application is Linux specific so (user-) name
* space pollution is not a major issue. However, for interoperability, libraries still
* need to be careful to avoid a name clashes.
*
* Copyright (C) 1998-2000 Hewlett-Packard Co
*
Copyright (C) 1998-2000
David Mosberger-Tang <davidm@hpl.hp.com>
* Copyright (C) 1998-2000
, 2002
Hewlett-Packard Co
*
David Mosberger-Tang <davidm@hpl.hp.com>
*/
#ifdef __ASSEMBLY__
...
...
@@ -18,9 +17,6 @@
#else
# define __IA64_UL(x) ((unsigned long)(x))
# define __IA64_UL_CONST(x) x##UL
#endif
#ifndef __ASSEMBLY__
typedef
unsigned
int
umode_t
;
...
...
include/asm-ia64/unistd.h
View file @
9caf366e
...
...
@@ -223,10 +223,15 @@
#define __NR_sched_setaffinity 1231
#define __NR_sched_getaffinity 1232
#define __NR_security 1233
#define __NR_get_large_pages 1234
#define __NR_free_large_pages 1235
#define __NR_share_large_pages 1236
#define __NR_unshare_large_pages 1237
#define __NR_alloc_hugepages 1234
#define __NR_free_hugepages 1235
/* 1236 currently unused */
/* 1237 currently unused */
#define __NR_io_setup 1238
#define __NR_io_destroy 1239
#define __NR_io_getevents 1240
#define __NR_io_submit 1241
#define __NR_io_cancel 1242
#if !defined(__ASSEMBLY__) && !defined(ASSEMBLER)
...
...
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