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
2c522955
Commit
2c522955
authored
Apr 23, 2002
by
David Mosberger
Browse files
Options
Browse Files
Download
Plain Diff
Merge wailua.hpl.hp.com:/bk/vanilla/linux-2.5
into wailua.hpl.hp.com:/bk/lia64/to-linus-2.5
parents
45fbecb1
25439a10
Changes
12
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
145 additions
and
1877 deletions
+145
-1877
arch/ia64/config.in
arch/ia64/config.in
+2
-1
arch/ia64/hp/common/sba_iommu.c
arch/ia64/hp/common/sba_iommu.c
+10
-1848
arch/ia64/hp/zx1/hpzx1_misc.c
arch/ia64/hp/zx1/hpzx1_misc.c
+7
-7
arch/ia64/kernel/acpi.c
arch/ia64/kernel/acpi.c
+93
-5
arch/ia64/kernel/iosapic.c
arch/ia64/kernel/iosapic.c
+7
-1
arch/ia64/kernel/traps.c
arch/ia64/kernel/traps.c
+4
-0
arch/ia64/lib/copy_page.S
arch/ia64/lib/copy_page.S
+6
-2
include/asm-ia64/acpi.h
include/asm-ia64/acpi.h
+1
-0
include/asm-ia64/page.h
include/asm-ia64/page.h
+1
-1
include/asm-ia64/siginfo.h
include/asm-ia64/siginfo.h
+2
-1
include/asm-ia64/sn/sn2/shub_md.h
include/asm-ia64/sn/sn2/shub_md.h
+9
-11
include/asm-ia64/system.h
include/asm-ia64/system.h
+3
-0
No files found.
arch/ia64/config.in
View file @
2c522955
...
...
@@ -83,7 +83,7 @@ fi
define_bool CONFIG_KCORE_ELF y # On IA-64, we always want an ELF /proc/kcore.
bool 'SMP support' CONFIG_SMP
tristate
'Support running of Linux/x86 binaries' CONFIG_IA32_SUPPORT
bool
'Support running of Linux/x86 binaries' CONFIG_IA32_SUPPORT
bool 'Performance monitor support' CONFIG_PERFMON
tristate '/proc/pal support' CONFIG_IA64_PALINFO
tristate '/proc/efi/vars support' CONFIG_EFI_VARS
...
...
@@ -123,6 +123,7 @@ source drivers/block/Config.in
source drivers/ieee1394/Config.in
source drivers/message/i2o/Config.in
source drivers/md/Config.in
source drivers/message/fusion/Config.in
mainmenu_option next_comment
comment 'ATA/IDE/MFM/RLL support'
...
...
arch/ia64/hp/common/sba_iommu.c
View file @
2c522955
This diff is collapsed.
Click to expand it.
arch/ia64/hp/zx1/hpzx1_misc.c
View file @
2c522955
...
...
@@ -42,7 +42,7 @@ struct fake_pci_dev {
static
struct
fake_pci_dev
*
fake_pci_head
,
**
fake_pci_tail
=
&
fake_pci_head
;
static
struct
pci_ops
orig_pci_ops
;
static
struct
pci_ops
*
orig_pci_ops
;
static
inline
struct
fake_pci_dev
*
fake_pci_find_slot
(
unsigned
char
bus
,
unsigned
int
devfn
)
...
...
@@ -77,7 +77,7 @@ static int hp_cfg_read##sz (struct pci_dev *dev, int where, u##bits *value) \
{ \
struct fake_pci_dev *fake_dev; \
if (!(fake_dev = fake_pci_find_slot(dev->bus->number, dev->devfn))) \
return orig_pci_ops
.
name(dev, where, value); \
return orig_pci_ops
->
name(dev, where, value); \
\
switch (where) { \
case PCI_COMMAND: \
...
...
@@ -105,7 +105,7 @@ static int hp_cfg_write##sz (struct pci_dev *dev, int where, u##bits value) \
{ \
struct fake_pci_dev *fake_dev; \
if (!(fake_dev = fake_pci_find_slot(dev->bus->number, dev->devfn))) \
return orig_pci_ops
.
name(dev, where, value); \
return orig_pci_ops
->
name(dev, where, value); \
\
switch (where) { \
case PCI_BASE_ADDRESS_0: \
...
...
@@ -295,7 +295,7 @@ hpzx1_lba_probe(acpi_handle obj, u32 depth, void *context, void **ret)
if
(
status
!=
AE_OK
)
return
status
;
status
=
acpi_
cf_evaluate_method
(
obj
,
METHOD_NAME__BBN
,
&
busnum
);
status
=
acpi_
evaluate_integer
(
obj
,
METHOD_NAME__BBN
,
NULL
,
&
busnum
);
if
(
ACPI_FAILURE
(
status
))
{
printk
(
KERN_ERR
PFX
"evaluate _BBN fail=0x%x
\n
"
,
status
);
busnum
=
0
;
// no _BBN; stick it on bus 0
...
...
@@ -313,7 +313,7 @@ hpzx1_lba_probe(acpi_handle obj, u32 depth, void *context, void **ret)
static
void
hpzx1_acpi_dev_init
(
void
)
{
extern
struct
pci_ops
pci_conf
;
extern
struct
pci_ops
*
pci_root_ops
;
/*
* Make fake PCI devices for the following hardware in the
...
...
@@ -383,8 +383,8 @@ hpzx1_acpi_dev_init(void)
/*
* Replace PCI ops, but only if we made fake devices.
*/
orig_pci_ops
=
pci_
conf
;
pci_
conf
=
hp_pci_conf
;
orig_pci_ops
=
pci_
root_ops
;
pci_
root_ops
=
&
hp_pci_conf
;
}
extern
void
sba_init
(
void
);
...
...
arch/ia64/kernel/acpi.c
View file @
2c522955
...
...
@@ -56,18 +56,43 @@ asm (".weak iosapic_version");
void
(
*
pm_idle
)
(
void
);
void
(
*
pm_power_off
)
(
void
);
/*
* TBD: Should go away once we have an ACPI parser.
*/
const
char
*
acpi_get_sysname
(
void
)
{
#ifdef CONFIG_IA64_GENERIC
return
"hpsim"
;
unsigned
long
rsdp_phys
=
0
;
struct
acpi20_table_rsdp
*
rsdp
;
struct
acpi_table_xsdt
*
xsdt
;
struct
acpi_table_header
*
hdr
;
if
((
0
!=
acpi_find_rsdp
(
&
rsdp_phys
))
||
!
rsdp_phys
)
{
printk
(
"ACPI 2.0 RSDP not found, default to
\"
dig
\"\n
"
);
return
"dig"
;
}
rsdp
=
(
struct
acpi20_table_rsdp
*
)
__va
(
rsdp_phys
);
if
(
strncmp
(
rsdp
->
signature
,
RSDP_SIG
,
sizeof
(
RSDP_SIG
)
-
1
))
{
printk
(
"ACPI 2.0 RSDP signature incorrect, default to
\"
dig
\"\n
"
);
return
"dig"
;
}
xsdt
=
(
struct
acpi_table_xsdt
*
)
__va
(
rsdp
->
xsdt_address
);
hdr
=
&
xsdt
->
header
;
if
(
strncmp
(
hdr
->
signature
,
XSDT_SIG
,
sizeof
(
XSDT_SIG
)
-
1
))
{
printk
(
"ACPI 2.0 XSDT signature incorrect, default to
\"
dig
\"\n
"
);
return
"dig"
;
}
if
(
!
strcmp
(
hdr
->
oem_id
,
"HP"
))
{
return
"hpzx1"
;
}
return
"dig"
;
#else
# if defined (CONFIG_IA64_HP_SIM)
return
"hpsim"
;
# elif defined (CONFIG_IA64_HP_ZX1)
return
"hpzx1"
;
# elif defined (CONFIG_IA64_SGI_SN1)
return
"sn1"
;
# elif defined (CONFIG_IA64_SGI_SN2)
...
...
@@ -80,6 +105,69 @@ acpi_get_sysname (void)
#endif
}
#ifdef CONFIG_ACPI
/**
* acpi_get_crs - Return the current resource settings for a device
* obj: A handle for this device
* buf: A buffer to be populated by this call.
*
* Pass a valid handle, typically obtained by walking the namespace and a
* pointer to an allocated buffer, and this function will fill in the buffer
* with a list of acpi_resource structures.
*/
acpi_status
acpi_get_crs
(
acpi_handle
obj
,
acpi_buffer
*
buf
)
{
acpi_status
result
;
buf
->
length
=
0
;
buf
->
pointer
=
NULL
;
result
=
acpi_get_current_resources
(
obj
,
buf
);
if
(
result
!=
AE_BUFFER_OVERFLOW
)
return
result
;
buf
->
pointer
=
kmalloc
(
buf
->
length
,
GFP_KERNEL
);
if
(
!
buf
->
pointer
)
return
-
ENOMEM
;
result
=
acpi_get_current_resources
(
obj
,
buf
);
return
result
;
}
acpi_resource
*
acpi_get_crs_next
(
acpi_buffer
*
buf
,
int
*
offset
)
{
acpi_resource
*
res
;
if
(
*
offset
>=
buf
->
length
)
return
NULL
;
res
=
buf
->
pointer
+
*
offset
;
*
offset
+=
res
->
length
;
return
res
;
}
acpi_resource_data
*
acpi_get_crs_type
(
acpi_buffer
*
buf
,
int
*
offset
,
int
type
)
{
for
(;;)
{
acpi_resource
*
res
=
acpi_get_crs_next
(
buf
,
offset
);
if
(
!
res
)
return
NULL
;
if
(
res
->
id
==
type
)
return
&
res
->
data
;
}
}
void
acpi_dispose_crs
(
acpi_buffer
*
buf
)
{
kfree
(
buf
->
pointer
);
}
#endif
/* CONFIG_ACPI */
#ifdef CONFIG_ACPI_BOOT
#define ACPI_MAX_PLATFORM_IRQS 256
...
...
arch/ia64/kernel/iosapic.c
View file @
2c522955
...
...
@@ -23,6 +23,7 @@
* iosapic_set_affinity(), initializations for
* /proc/irq/#/smp_affinity
* 02/04/02 P. Diefenbaugh Cleaned up ACPI PCI IRQ routing.
* 02/04/18 J.I. Lee bug fix in iosapic_init_pci_irq
*/
/*
* Here is what the interrupt logic between a PCI device and the CPU looks like:
...
...
@@ -676,6 +677,11 @@ iosapic_init_pci_irq (void)
pci_irq
.
route
[
i
].
bus
,
pci_irq
.
route
[
i
].
pci_id
>>
16
,
pci_irq
.
route
[
i
].
pin
,
iosapic_irq
[
vector
].
base_irq
+
iosapic_irq
[
vector
].
pin
,
vector
);
#endif
/*
* Forget not to program the IOSAPIC RTE per ACPI _PRT
*/
set_rte
(
vector
,
(
ia64_get_lid
()
>>
16
)
&
0xffff
);
}
}
...
...
arch/ia64/kernel/traps.c
View file @
2c522955
...
...
@@ -186,6 +186,10 @@ ia64_bad_break (unsigned long break_num, struct pt_regs *regs)
sig
=
SIGSEGV
;
code
=
__SEGV_PSTKOVF
;
break
;
case
0x3f000
...
0x3ffff
:
/* bundle-update in progress */
sig
=
SIGILL
;
code
=
__ILL_BNDMOD
;
break
;
default:
if
(
break_num
<
0x40000
||
break_num
>
0x100000
)
die_if_kernel
(
"Bad break"
,
regs
,
break_num
);
...
...
arch/ia64/lib/copy_page.S
View file @
2c522955
...
...
@@ -30,6 +30,7 @@
#define tgt2 r23
#define srcf r24
#define tgtf r25
#define tgt_last r26
#define Nrot ((8*PIPE_DEPTH+7)&~7)
...
...
@@ -55,18 +56,21 @@ GLOBAL_ENTRY(copy_page)
mov
src1
=
in1
adds
src2
=
8
,
in1
mov
tgt_last
=
PAGE_SIZE
;;
adds
tgt2
=
8
,
in0
add
srcf
=
512
,
in1
mov
ar
.
lc
=
lcount
mov
tgt1
=
in0
add
tgtf
=
512
,
in0
add
tgt_last
=
tgt_last
,
in0
;;
1
:
(
p
[
0
])
ld8
t1
[
0
]=[
src1
],
16
(
EPI
)
st8
[
tgt1
]=
t1
[
PIPE_DEPTH
-
1
],
16
(
p
[
0
])
ld8
t2
[
0
]=[
src2
],
16
(
EPI
)
st8
[
tgt2
]=
t2
[
PIPE_DEPTH
-
1
],
16
cmp.ltu
p6
,
p0
=
tgtf
,
tgt_last
;;
(
p
[
0
])
ld8
t3
[
0
]=[
src1
],
16
(
EPI
)
st8
[
tgt1
]=
t3
[
PIPE_DEPTH
-
1
],
16
...
...
@@ -83,8 +87,8 @@ GLOBAL_ENTRY(copy_page)
(
p
[
0
])
ld8
t8
[
0
]=[
src2
],
16
(
EPI
)
st8
[
tgt2
]=
t8
[
PIPE_DEPTH
-
1
],
16
lfetch
[
srcf
],
64
lfetch
[
tgtf
],
64
(
p6
)
lfetch
[
srcf
],
64
(
p6
)
lfetch
[
tgtf
],
64
br.ctop.sptk.few
1
b
;;
mov
pr
=
saved_pr
,
0xffffffffffff0000
//
restore
predicates
...
...
include/asm-ia64/acpi.h
View file @
2c522955
...
...
@@ -32,6 +32,7 @@
#define __acpi_map_table(phys_addr, size) __va(phys_addr)
const
char
*
acpi_get_sysname
(
void
);
int
acpi_boot_init
(
char
*
cdline
);
int
acpi_find_rsdp
(
unsigned
long
*
phys_addr
);
int
acpi_request_vector
(
u32
int_type
);
...
...
include/asm-ia64/page.h
View file @
2c522955
...
...
@@ -71,7 +71,7 @@ do { \
#ifdef CONFIG_IA64_GENERIC
# include <asm/machvec.h>
# define virt_to_page(kaddr) (mem_map + platform_map_nr(kaddr))
# define page_to_phys(page)
XXX fix me
# define page_to_phys(page)
((page - mem_map) << PAGE_SHIFT)
#elif defined (CONFIG_IA64_SGI_SN1)
# ifndef CONFIG_DISCONTIGMEM
# define virt_to_page(kaddr) (mem_map + MAP_NR_DENSE(kaddr))
...
...
include/asm-ia64/siginfo.h
View file @
2c522955
...
...
@@ -154,7 +154,8 @@ typedef struct siginfo {
#define ILL_BADSTK (__SI_FAULT|8)
/* internal stack error */
#define ILL_BADIADDR (__SI_FAULT|9)
/* unimplemented instruction address */
#define __ILL_BREAK (__SI_FAULT|10)
/* illegal break */
#define NSIGILL 10
#define __ILL_BNDMOD (__SI_FAULT|11)
/* bundle-update (modification) in progress */
#define NSIGILL 11
/*
* SIGFPE si_codes
...
...
include/asm-ia64/sn/sn2/shub_md.h
View file @
2c522955
/**************************************************************************
* *
* Copyright (C) 2001 Silicon Graphics, Inc. All rights reserved. *
* *
* These coded instructions, statements, and computer programs contain *
* unpublished proprietary information of Silicon Graphics, Inc., and *
* are protected by Federal copyright law. They may not be disclosed *
* to third parties or copied or duplicated in any form, in whole or *
* in part, without the prior written consent of Silicon Graphics, Inc. *
* *
**************************************************************************/
/*
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
* Copyright (c) 2001, 2002 Silicon Graphics, Inc. All rights reserved.
*/
#ifndef _SHUB_MD_H
#define _SHUB_MD_H
...
...
include/asm-ia64/system.h
View file @
2c522955
...
...
@@ -353,6 +353,9 @@ extern long __cmpxchg_called_with_bad_pointer(void);
# define IS_IA32_PROCESS(regs) (ia64_psr(regs)->is != 0)
#else
# define IS_IA32_PROCESS(regs) 0
struct
task_struct
;
static
inline
void
ia32_save_state
(
struct
task_struct
*
t
__attribute__
((
unused
))){}
static
inline
void
ia32_load_state
(
struct
task_struct
*
t
__attribute__
((
unused
))){}
#endif
/*
...
...
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