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
nexedi
linux
Commits
027febaf
Commit
027febaf
authored
Feb 09, 2005
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://bk.arm.linux.org.uk/linux-2.6-rmk
into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents
1b1fe8f6
15d0e3b5
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
77 additions
and
43 deletions
+77
-43
arch/arm/boot/compressed/ofw-shark.c
arch/arm/boot/compressed/ofw-shark.c
+2
-0
arch/arm/common/via82c505.c
arch/arm/common/via82c505.c
+1
-1
arch/arm/kernel/entry-armv.S
arch/arm/kernel/entry-armv.S
+4
-5
arch/arm/mach-h720x/Kconfig
arch/arm/mach-h720x/Kconfig
+7
-0
arch/arm/mach-h720x/cpu-h7202.c
arch/arm/mach-h720x/cpu-h7202.c
+19
-5
arch/arm/mach-shark/core.c
arch/arm/mach-shark/core.c
+0
-2
arch/arm/mach-shark/irq.c
arch/arm/mach-shark/irq.c
+2
-2
arch/arm/mach-shark/pci.c
arch/arm/mach-shark/pci.c
+2
-2
arch/arm/vfp/vfphw.S
arch/arm/vfp/vfphw.S
+14
-14
include/asm-arm/arch-h720x/h7202-regs.h
include/asm-arm/arch-h720x/h7202-regs.h
+6
-2
include/asm-arm/arch-h720x/hardware.h
include/asm-arm/arch-h720x/hardware.h
+17
-7
include/asm-arm/arch-ixp2000/io.h
include/asm-arm/arch-ixp2000/io.h
+3
-3
No files found.
arch/arm/boot/compressed/ofw-shark.c
View file @
027febaf
...
@@ -24,6 +24,8 @@ create_params (unsigned long *buffer)
...
@@ -24,6 +24,8 @@ create_params (unsigned long *buffer)
int
j
,
i
,
m
,
k
,
nr_banks
,
size
;
int
j
,
i
,
m
,
k
,
nr_banks
,
size
;
unsigned
char
*
c
;
unsigned
char
*
c
;
k
=
0
;
/* Head of the taglist */
/* Head of the taglist */
tag
->
hdr
.
tag
=
ATAG_CORE
;
tag
->
hdr
.
tag
=
ATAG_CORE
;
tag
->
hdr
.
size
=
tag_size
(
tag_core
);
tag
->
hdr
.
size
=
tag_size
(
tag_core
);
...
...
arch/arm/common/via82c505.c
View file @
027febaf
...
@@ -59,7 +59,7 @@ static struct pci_ops via82c505_ops = {
...
@@ -59,7 +59,7 @@ static struct pci_ops via82c505_ops = {
.
write
=
via82c505_write_config
,
.
write
=
via82c505_write_config
,
};
};
void
__init
via82c505_preinit
(
void
*
sysdata
)
void
__init
via82c505_preinit
(
void
)
{
{
printk
(
KERN_DEBUG
"PCI: VIA 82c505
\n
"
);
printk
(
KERN_DEBUG
"PCI: VIA 82c505
\n
"
);
if
(
!
request_region
(
0xA8
,
2
,
"via config"
))
{
if
(
!
request_region
(
0xA8
,
2
,
"via config"
))
{
...
...
arch/arm/kernel/entry-armv.S
View file @
027febaf
...
@@ -379,8 +379,6 @@ __und_usr:
...
@@ -379,8 +379,6 @@ __und_usr:
.
previous
.
previous
/*
/*
*
r0
=
instruction
.
*
*
Check
whether
the
instruction
is
a
co
-
processor
instruction
.
*
Check
whether
the
instruction
is
a
co
-
processor
instruction
.
*
If
yes
,
we
need
to
call
the
relevant
co
-
processor
handler
.
*
If
yes
,
we
need
to
call
the
relevant
co
-
processor
handler
.
*
*
...
@@ -391,8 +389,9 @@ __und_usr:
...
@@ -391,8 +389,9 @@ __und_usr:
*
for
the
ARM6
/
ARM7
SWI
bug
.
*
for
the
ARM6
/
ARM7
SWI
bug
.
*
*
*
Emulators
may
wish
to
make
use
of
the
following
registers
:
*
Emulators
may
wish
to
make
use
of
the
following
registers
:
*
r0
-
instruction
opcode
.
*
r0
=
instruction
opcode
.
*
r10
-
this
threads
thread_info
structure
.
*
r2
=
PC
+
4
*
r10
=
this
threads
thread_info
structure
.
*/
*/
call_fpe
:
call_fpe
:
tst
r0
,
#
0x08000000
@
only
CDP
/
CPRT
/
LDC
/
STC
have
bit
27
tst
r0
,
#
0x08000000
@
only
CDP
/
CPRT
/
LDC
/
STC
have
bit
27
...
@@ -447,7 +446,7 @@ do_fpe:
...
@@ -447,7 +446,7 @@ do_fpe:
/*
/*
*
The
FP
module
is
called
with
these
registers
set
:
*
The
FP
module
is
called
with
these
registers
set
:
*
r0
=
instruction
*
r0
=
instruction
*
r
5
=
PC
*
r
2
=
PC
+
4
*
r9
=
normal
"successful"
return
address
*
r9
=
normal
"successful"
return
address
*
r10
=
FP
workspace
*
r10
=
FP
workspace
*
lr
=
unrecognised
FP
instruction
return
address
*
lr
=
unrecognised
FP
instruction
return
address
...
...
arch/arm/mach-h720x/Kconfig
View file @
027febaf
...
@@ -27,5 +27,12 @@ config CPU_H7202
...
@@ -27,5 +27,12 @@ config CPU_H7202
bool
bool
help
help
Select code specific to h7202 variants
Select code specific to h7202 variants
config H7202_SERIAL23
depends on CPU_H7202
bool "Use serial ports 2+3"
help
Say Y here if you wish to use serial ports 2+3. They share their
pins with the keyboard matrix controller, so you have to decide.
endif
endif
arch/arm/mach-h720x/cpu-h7202.c
View file @
027febaf
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
* 2003 Robert Schwebel <r.schwebel@pengutronix.de>
* 2003 Robert Schwebel <r.schwebel@pengutronix.de>
* 2004 Sascha Hauer <s.hauer@pengutronix.de>
* 2004 Sascha Hauer <s.hauer@pengutronix.de>
*
*
* processor specific stuff for the Hynix h720
1
* processor specific stuff for the Hynix h720
2
*
*
* This program is free software; you can redistribute it and/or modify
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* it under the terms of the GNU General Public License version 2 as
...
@@ -48,7 +48,8 @@ static struct platform_device h7202ps2_device = {
...
@@ -48,7 +48,8 @@ static struct platform_device h7202ps2_device = {
static
struct
plat_serial8250_port
serial_platform_data
[]
=
{
static
struct
plat_serial8250_port
serial_platform_data
[]
=
{
{
{
.
membase
=
SERIAL0_BASE
,
.
membase
=
(
void
*
)
SERIAL0_VIRT
,
.
mapbase
=
SERIAL0_BASE
,
.
irq
=
IRQ_UART0
,
.
irq
=
IRQ_UART0
,
.
uartclk
=
2
*
1843200
,
.
uartclk
=
2
*
1843200
,
.
regshift
=
2
,
.
regshift
=
2
,
...
@@ -56,15 +57,18 @@ static struct plat_serial8250_port serial_platform_data[] = {
...
@@ -56,15 +57,18 @@ static struct plat_serial8250_port serial_platform_data[] = {
.
flags
=
UPF_BOOT_AUTOCONF
|
UPF_SKIP_TEST
,
.
flags
=
UPF_BOOT_AUTOCONF
|
UPF_SKIP_TEST
,
},
},
{
{
.
membase
=
SERIAL1_BASE
,
.
membase
=
(
void
*
)
SERIAL1_VIRT
,
.
mapbase
=
SERIAL1_BASE
,
.
irq
=
IRQ_UART1
,
.
irq
=
IRQ_UART1
,
.
uartclk
=
2
*
1843200
,
.
uartclk
=
2
*
1843200
,
.
regshift
=
2
,
.
regshift
=
2
,
.
iotype
=
UPIO_MEM
,
.
iotype
=
UPIO_MEM
,
.
flags
=
UPF_BOOT_AUTOCONF
|
UPF_SKIP_TEST
,
.
flags
=
UPF_BOOT_AUTOCONF
|
UPF_SKIP_TEST
,
},
},
#ifdef CONFIG_H7202_SERIAL23
{
{
.
membase
=
SERIAL2_BASE
,
.
membase
=
(
void
*
)
SERIAL2_VIRT
,
.
mapbase
=
SERIAL2_BASE
,
.
irq
=
IRQ_UART2
,
.
irq
=
IRQ_UART2
,
.
uartclk
=
2
*
1843200
,
.
uartclk
=
2
*
1843200
,
.
regshift
=
2
,
.
regshift
=
2
,
...
@@ -72,13 +76,15 @@ static struct plat_serial8250_port serial_platform_data[] = {
...
@@ -72,13 +76,15 @@ static struct plat_serial8250_port serial_platform_data[] = {
.
flags
=
UPF_BOOT_AUTOCONF
|
UPF_SKIP_TEST
,
.
flags
=
UPF_BOOT_AUTOCONF
|
UPF_SKIP_TEST
,
},
},
{
{
.
membase
=
SERIAL3_BASE
,
.
membase
=
(
void
*
)
SERIAL3_VIRT
,
.
mapbase
=
SERIAL3_BASE
,
.
irq
=
IRQ_UART3
,
.
irq
=
IRQ_UART3
,
.
uartclk
=
2
*
1843200
,
.
uartclk
=
2
*
1843200
,
.
regshift
=
2
,
.
regshift
=
2
,
.
iotype
=
UPIO_MEM
,
.
iotype
=
UPIO_MEM
,
.
flags
=
UPF_BOOT_AUTOCONF
|
UPF_SKIP_TEST
,
.
flags
=
UPF_BOOT_AUTOCONF
|
UPF_SKIP_TEST
,
},
},
#endif
{
},
{
},
};
};
...
@@ -210,5 +216,13 @@ void __init init_hw_h7202(void)
...
@@ -210,5 +216,13 @@ void __init init_hw_h7202(void)
/* Enable clocks */
/* Enable clocks */
CPU_REG
(
PMU_BASE
,
PMU_PLL_CTRL
)
|=
PLL_2_EN
|
PLL_1_EN
|
PLL_3_MUTE
;
CPU_REG
(
PMU_BASE
,
PMU_PLL_CTRL
)
|=
PLL_2_EN
|
PLL_1_EN
|
PLL_3_MUTE
;
CPU_REG
(
SERIAL0_VIRT
,
SERIAL_ENABLE
)
=
SERIAL_ENABLE_EN
;
CPU_REG
(
SERIAL1_VIRT
,
SERIAL_ENABLE
)
=
SERIAL_ENABLE_EN
;
#ifdef CONFIG_H7202_SERIAL23
CPU_REG
(
SERIAL2_VIRT
,
SERIAL_ENABLE
)
=
SERIAL_ENABLE_EN
;
CPU_REG
(
SERIAL3_VIRT
,
SERIAL_ENABLE
)
=
SERIAL_ENABLE_EN
;
CPU_IO
(
GPIO_AMULSEL
)
=
AMULSEL_USIN2
|
AMULSEL_USOUT2
|
AMULSEL_USIN3
|
AMULSEL_USOUT3
;
#endif
(
void
)
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
(
void
)
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
}
}
arch/arm/mach-shark/core.c
View file @
027febaf
...
@@ -93,8 +93,6 @@ static struct irqaction shark_timer_irq = {
...
@@ -93,8 +93,6 @@ static struct irqaction shark_timer_irq = {
*/
*/
static
void
__init
shark_timer_init
(
void
)
static
void
__init
shark_timer_init
(
void
)
{
{
unsigned
long
flags
;
outb
(
0x34
,
0x43
);
/* binary, mode 0, LSB/MSB, Ch 0 */
outb
(
0x34
,
0x43
);
/* binary, mode 0, LSB/MSB, Ch 0 */
outb
(
HZ_TIME
&
0xff
,
0x40
);
/* LSB of count */
outb
(
HZ_TIME
&
0xff
,
0x40
);
/* LSB of count */
outb
(
HZ_TIME
>>
8
,
0x40
);
outb
(
HZ_TIME
>>
8
,
0x40
);
...
...
arch/arm/mach-shark/irq.c
View file @
027febaf
...
@@ -61,9 +61,10 @@ static void shark_enable_8259A_irq(unsigned int irq)
...
@@ -61,9 +61,10 @@ static void shark_enable_8259A_irq(unsigned int irq)
static
void
shark_ack_8259A_irq
(
unsigned
int
irq
){}
static
void
shark_ack_8259A_irq
(
unsigned
int
irq
){}
static
void
bogus_int
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
bogus_int
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
{
printk
(
"Got interrupt %i!
\n
"
,
irq
);
printk
(
"Got interrupt %i!
\n
"
,
irq
);
return
IRQ_NONE
;
}
}
static
struct
irqaction
cascade
;
static
struct
irqaction
cascade
;
...
@@ -103,7 +104,6 @@ void __init shark_init_irq(void)
...
@@ -103,7 +104,6 @@ void __init shark_init_irq(void)
cascade
.
handler
=
bogus_int
;
cascade
.
handler
=
bogus_int
;
cascade
.
flags
=
0
;
cascade
.
flags
=
0
;
cascade
.
mask
=
0
;
cascade
.
name
=
"cascade"
;
cascade
.
name
=
"cascade"
;
cascade
.
next
=
NULL
;
cascade
.
next
=
NULL
;
cascade
.
dev_id
=
NULL
;
cascade
.
dev_id
=
NULL
;
...
...
arch/arm/mach-shark/pci.c
View file @
027febaf
...
@@ -21,7 +21,7 @@ static int __init shark_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
...
@@ -21,7 +21,7 @@ static int __init shark_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
else
return
255
;
else
return
255
;
}
}
extern
void
__init
via82c505_preinit
(
void
*
sysdata
);
extern
void
__init
via82c505_preinit
(
void
);
static
struct
hw_pci
shark_pci
__initdata
=
{
static
struct
hw_pci
shark_pci
__initdata
=
{
.
setup
=
via82c505_setup
,
.
setup
=
via82c505_setup
,
...
@@ -29,7 +29,7 @@ static struct hw_pci shark_pci __initdata = {
...
@@ -29,7 +29,7 @@ static struct hw_pci shark_pci __initdata = {
.
map_irq
=
shark_map_irq
,
.
map_irq
=
shark_map_irq
,
.
nr_controllers
=
1
,
.
nr_controllers
=
1
,
.
scan
=
via82c505_scan_bus
,
.
scan
=
via82c505_scan_bus
,
.
preinit
=
via82c505_preinit
.
preinit
=
via82c505_preinit
,
};
};
static
int
__init
shark_pci_init
(
void
)
static
int
__init
shark_pci_init
(
void
)
...
...
arch/arm/vfp/vfphw.S
View file @
027febaf
...
@@ -62,14 +62,14 @@
...
@@ -62,14 +62,14 @@
@
VFP
hardware
support
entry
point
.
@
VFP
hardware
support
entry
point
.
@
@
@
r0
=
faulted
instruction
@
r0
=
faulted
instruction
@
r
5
=
faulted
PC
+
4
@
r
2
=
faulted
PC
+
4
@
r9
=
successful
return
@
r9
=
successful
return
@
r10
=
vfp_state
union
@
r10
=
vfp_state
union
@
lr
=
failure
return
@
lr
=
failure
return
.
globl
vfp_support_entry
.
globl
vfp_support_entry
vfp_support_entry
:
vfp_support_entry
:
DBGSTR3
"instr %08x pc %08x state %p"
,
r0
,
r
5
,
r10
DBGSTR3
"instr %08x pc %08x state %p"
,
r0
,
r
2
,
r10
VFPFMRX
r1
,
FPEXC
@
Is
the
VFP
enabled
?
VFPFMRX
r1
,
FPEXC
@
Is
the
VFP
enabled
?
DBGSTR1
"fpexc %08x"
,
r1
DBGSTR1
"fpexc %08x"
,
r1
...
@@ -80,14 +80,14 @@ vfp_support_entry:
...
@@ -80,14 +80,14 @@ vfp_support_entry:
ldr
r3
,
last_VFP_context_address
ldr
r3
,
last_VFP_context_address
orr
r1
,
r1
,
#
FPEXC_ENABLE
@
user
FPEXC
has
the
enable
bit
set
orr
r1
,
r1
,
#
FPEXC_ENABLE
@
user
FPEXC
has
the
enable
bit
set
ldr
r4
,
[
r3
]
@
last_VFP_context
pointer
ldr
r4
,
[
r3
]
@
last_VFP_context
pointer
bic
r
2
,
r1
,
#
FPEXC_EXCEPTION
@
make
sure
exceptions
are
disabled
bic
r
5
,
r1
,
#
FPEXC_EXCEPTION
@
make
sure
exceptions
are
disabled
cmp
r4
,
r10
cmp
r4
,
r10
beq
check_for_exception
@
we
are
returning
to
the
same
beq
check_for_exception
@
we
are
returning
to
the
same
@
process
,
so
the
registers
are
@
process
,
so
the
registers
are
@
still
there
.
In
this
case
,
we
do
@
still
there
.
In
this
case
,
we
do
@
not
want
to
drop
a
pending
exception
.
@
not
want
to
drop
a
pending
exception
.
VFPFMXR
FPEXC
,
r
2
@
enable
VFP
,
disable
any
pending
VFPFMXR
FPEXC
,
r
5
@
enable
VFP
,
disable
any
pending
@
exceptions
,
so
we
can
get
at
the
@
exceptions
,
so
we
can
get
at
the
@
rest
of
it
@
rest
of
it
...
@@ -96,14 +96,14 @@ vfp_support_entry:
...
@@ -96,14 +96,14 @@ vfp_support_entry:
DBGSTR1
"save old state %p"
,
r4
DBGSTR1
"save old state %p"
,
r4
cmp
r4
,
#
0
cmp
r4
,
#
0
beq
no_old_VFP_process
beq
no_old_VFP_process
VFPFMRX
r
2
,
FPSCR
@
current
status
VFPFMRX
r
5
,
FPSCR
@
current
status
VFPFMRX
r6
,
FPINST
@
FPINST
(
always
there
,
rev0
onwards
)
VFPFMRX
r6
,
FPINST
@
FPINST
(
always
there
,
rev0
onwards
)
tst
r1
,
#
FPEXC_FPV2
@
is
there
an
FPINST2
to
read
?
tst
r1
,
#
FPEXC_FPV2
@
is
there
an
FPINST2
to
read
?
VFPFMRX
r8
,
FPINST2
,
NE
@
FPINST2
if
needed
-
avoids
reading
VFPFMRX
r8
,
FPINST2
,
NE
@
FPINST2
if
needed
-
avoids
reading
@
nonexistant
reg
on
rev0
@
nonexistant
reg
on
rev0
VFPFSTMIA
r4
@
save
the
working
registers
VFPFSTMIA
r4
@
save
the
working
registers
add
r4
,
r4
,
#
8
*
16
+
4
add
r4
,
r4
,
#
8
*
16
+
4
stmia
r4
,
{
r1
,
r
2
,
r6
,
r8
}
@
save
FPEXC
,
FPSCR
,
FPINST
,
FPINST2
stmia
r4
,
{
r1
,
r
5
,
r6
,
r8
}
@
save
FPEXC
,
FPSCR
,
FPINST
,
FPINST2
@
and
point
r4
at
the
word
at
the
@
and
point
r4
at
the
word
at
the
@
start
of
the
register
dump
@
start
of
the
register
dump
...
@@ -112,14 +112,14 @@ no_old_VFP_process:
...
@@ -112,14 +112,14 @@ no_old_VFP_process:
str
r10
,
[
r3
]
@
update
the
last_VFP_context
pointer
str
r10
,
[
r3
]
@
update
the
last_VFP_context
pointer
@
Load
the
saved
state
back
into
the
VFP
@
Load
the
saved
state
back
into
the
VFP
add
r4
,
r10
,
#
8
*
16
+
4
add
r4
,
r10
,
#
8
*
16
+
4
ldmia
r4
,
{
r1
,
r
2
,
r6
,
r8
}
@
load
FPEXC
,
FPSCR
,
FPINST
,
FPINST2
ldmia
r4
,
{
r1
,
r
5
,
r6
,
r8
}
@
load
FPEXC
,
FPSCR
,
FPINST
,
FPINST2
VFPFLDMIA
r10
@
reload
the
working
registers
while
VFPFLDMIA
r10
@
reload
the
working
registers
while
@
FPEXC
is
in
a
safe
state
@
FPEXC
is
in
a
safe
state
tst
r1
,
#
FPEXC_FPV2
@
is
there
an
FPINST2
to
write
?
tst
r1
,
#
FPEXC_FPV2
@
is
there
an
FPINST2
to
write
?
VFPFMXR
FPINST2
,
r8
,
NE
@
FPINST2
if
needed
-
avoids
writing
VFPFMXR
FPINST2
,
r8
,
NE
@
FPINST2
if
needed
-
avoids
writing
@
nonexistant
reg
on
rev0
@
nonexistant
reg
on
rev0
VFPFMXR
FPINST
,
r6
VFPFMXR
FPINST
,
r6
VFPFMXR
FPSCR
,
r
2
@
restore
status
VFPFMXR
FPSCR
,
r
5
@
restore
status
check_for_exception
:
check_for_exception
:
tst
r1
,
#
FPEXC_EXCEPTION
tst
r1
,
#
FPEXC_EXCEPTION
...
@@ -128,16 +128,16 @@ check_for_exception:
...
@@ -128,16 +128,16 @@ check_for_exception:
@
out
before
setting
an
FPEXC
that
@
out
before
setting
an
FPEXC
that
@
stops
us
reading
stuff
@
stops
us
reading
stuff
VFPFMXR
FPEXC
,
r1
@
restore
FPEXC
last
VFPFMXR
FPEXC
,
r1
@
restore
FPEXC
last
sub
r
5
,
r5
,
#
4
sub
r
2
,
r2
,
#
4
str
r
5
,
[
sp
,
#
S_PC
]
@
retry
the
instruction
str
r
2
,
[
sp
,
#
S_PC
]
@
retry
the
instruction
mov
pc
,
r9
@
we
think
we
have
handled
things
mov
pc
,
r9
@
we
think
we
have
handled
things
look_for_VFP_exceptions
:
look_for_VFP_exceptions
:
tst
r1
,
#
FPEXC_EXCEPTION
tst
r1
,
#
FPEXC_EXCEPTION
bne
process_exception
bne
process_exception
VFPFMRX
r
2
,
FPSCR
VFPFMRX
r
5
,
FPSCR
tst
r
2
,
#
FPSCR_IXE
@
IXE
doesn
't set FPEXC_EXCEPTION !
tst
r
5
,
#
FPSCR_IXE
@
IXE
doesn
't set FPEXC_EXCEPTION !
bne
process_exception
bne
process_exception
@
Fall
into
hand
on
to
next
handler
-
appropriate
coproc
instr
@
Fall
into
hand
on
to
next
handler
-
appropriate
coproc
instr
...
@@ -148,8 +148,8 @@ look_for_VFP_exceptions:
...
@@ -148,8 +148,8 @@ look_for_VFP_exceptions:
process_exception
:
process_exception
:
DBGSTR
"bounce"
DBGSTR
"bounce"
sub
r
5
,
r5
,
#
4
sub
r
2
,
r2
,
#
4
str
r
5
,
[
sp
,
#
S_PC
]
@
retry
the
instruction
on
exit
from
str
r
2
,
[
sp
,
#
S_PC
]
@
retry
the
instruction
on
exit
from
@
the
imprecise
exception
handling
in
@
the
imprecise
exception
handling
in
@
the
support
code
@
the
support
code
mov
r2
,
sp
@
nothing
stacked
-
regdump
is
at
TOS
mov
r2
,
sp
@
nothing
stacked
-
regdump
is
at
TOS
...
...
include/asm-arm/arch-h720x/h7202-regs.h
View file @
027febaf
...
@@ -17,8 +17,12 @@
...
@@ -17,8 +17,12 @@
* which is included by this file.
* which is included by this file.
*/
*/
#define SERIAL2_VIRT (IO_VIRT + 0x2d000)
#define SERIAL2_OFS 0x2d000
#define SERIAL3_VIRT (IO_VIRT + 0x2e000)
#define SERIAL2_BASE (IO_PHYS + SERIAL2_OFS)
#define SERIAL2_VIRT (IO_VIRT + SERIAL2_OFS)
#define SERIAL3_OFS 0x2e000
#define SERIAL3_BASE (IO_PHYS + SERIAL3_OFS)
#define SERIAL3_VIRT (IO_VIRT + SERIAL3_OFS)
/* Matrix Keyboard Controller */
/* Matrix Keyboard Controller */
#define KBD_VIRT (IO_VIRT + 0x22000)
#define KBD_VIRT (IO_VIRT + 0x22000)
...
...
include/asm-arm/arch-h720x/hardware.h
View file @
027febaf
...
@@ -52,7 +52,15 @@
...
@@ -52,7 +52,15 @@
#define GPIO_C_VIRT (GPIO_VIRT(2))
#define GPIO_C_VIRT (GPIO_VIRT(2))
#define GPIO_D_VIRT (GPIO_VIRT(3))
#define GPIO_D_VIRT (GPIO_VIRT(3))
#define GPIO_E_VIRT (GPIO_VIRT(4))
#define GPIO_E_VIRT (GPIO_VIRT(4))
#define GPIO_AMULSEL (GPIO_VIRT + 0xA4)
#define GPIO_AMULSEL (GPIO_VIRT(0) + 0xA4)
#define AMULSEL_USIN2 (1<<5)
#define AMULSEL_USOUT2 (1<<6)
#define AMULSEL_USIN3 (1<<13)
#define AMULSEL_USOUT3 (1<<14)
#define AMULSEL_IRDIN (1<<15)
#define AMULSEL_IRDOUT (1<<7)
/* Register offsets general purpose I/O */
/* Register offsets general purpose I/O */
#define GPIO_DATA 0x00
#define GPIO_DATA 0x00
#define GPIO_DIR 0x04
#define GPIO_DIR 0x04
...
@@ -162,14 +170,16 @@
...
@@ -162,14 +170,16 @@
#define LCD_PALETTE_BASE (IO_VIRT + 0x10400)
#define LCD_PALETTE_BASE (IO_VIRT + 0x10400)
/* Serial ports */
/* Serial ports */
#define SERIAL0_VIRT (IO_VIRT + 0x20000)
#define SERIAL0_OFS 0x20000
#define SERIAL1_VIRT (IO_VIRT + 0x21000)
#define SERIAL0_VIRT (IO_VIRT + SERIAL0_OFS)
#define SERIAL0_BASE (IO_PHYS + SERIAL0_OFS)
#define SERIAL0_BASE SERIAL0_VIRT
#define SERIAL1_OFS 0x21000
#define SERIAL1_BASE SERIAL1_VIRT
#define SERIAL1_VIRT (IO_VIRT + SERIAL1_OFS)
#define SERIAL2_BASE SERIAL2_VIRT
#define SERIAL1_BASE (IO_PHYS + SERIAL1_OFS)
#define SERIAL3_BASE SERIAL3_VIRT
#define SERIAL_ENABLE 0x30
#define SERIAL_ENABLE_EN (1<<0)
/* General defines to pacify gcc */
/* General defines to pacify gcc */
#define PCIO_BASE (0)
/* for inb, outb and friends */
#define PCIO_BASE (0)
/* for inb, outb and friends */
...
...
include/asm-arm/arch-ixp2000/io.h
View file @
027febaf
...
@@ -21,14 +21,14 @@
...
@@ -21,14 +21,14 @@
/*
/*
* Pick up VMALLOC_END
* Pick up VMALLOC_END
*/
*/
#define ___io(p) ((
unsigned long
)((p)+IXP2000_PCI_IO_VIRT_BASE))
#define ___io(p) ((
void __iomem *
)((p)+IXP2000_PCI_IO_VIRT_BASE))
/*
/*
* IXP2000 does not do proper byte-lane conversion for PCI addresses,
* IXP2000 does not do proper byte-lane conversion for PCI addresses,
* so we need to override standard functions.
* so we need to override standard functions.
*/
*/
#define alignb(addr) ((
addr & ~3) + (3 - (
addr & 3)))
#define alignb(addr) ((
(unsigned long)addr & ~3) + (3 - ((unsigned long)
addr & 3)))
#define alignw(addr) ((
addr & ~2) + (2 - (
addr & 2)))
#define alignw(addr) ((
(unsigned long)addr & ~2) + (2 - ((unsigned long)
addr & 2)))
#define outb(v,p) __raw_writeb(v,alignb(___io(p)))
#define outb(v,p) __raw_writeb(v,alignb(___io(p)))
#define outw(v,p) __raw_writew((v),alignw(___io(p)))
#define outw(v,p) __raw_writew((v),alignw(___io(p)))
...
...
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