Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
SPARC U-Boot Custodian Tree
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
U-Boot
Custodians
SPARC U-Boot Custodian Tree
Commits
cdc7fea1
Commit
cdc7fea1
authored
Jul 11, 2004
by
wdenk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Patch by Curt Brune, 07 Jul 2004:
relocate exception vectors on arm720t if needed
parent
a1f4a3dd
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
58 additions
and
45 deletions
+58
-45
CHANGELOG
CHANGELOG
+3
-0
cpu/arm720t/start.S
cpu/arm720t/start.S
+55
-45
No files found.
CHANGELOG
View file @
cdc7fea1
...
...
@@ -2,6 +2,9 @@
Changes since U-Boot 1.1.1:
======================================================================
* Patch by Curt Brune, 07 Jul 2004:
relocate exception vectors on arm720t if needed
* Patch by George G. Davis, 06 Jul 2004:
- update mach-types.h to latest arm.linux.org.uk master list
- Set correct OMAP1610 bi_arch_number for build target
...
...
cpu/arm720t/start.S
View file @
cdc7fea1
...
...
@@ -14,7 +14,7 @@
*
*
This
program
is
distributed
in
the
hope
that
it
will
be
useful
,
*
but
WITHOUT
ANY
WARRANTY
; without even the implied warranty of
*
MERCHANTABILITY
or
FITNESS
FOR
A
PARTICULAR
PURPOSE
.
See
the
*
MERCHANTABILITY
or
FITNESS
FOR
A
PARTICULAR
PURPOSE
.
See
the
*
GNU
General
Public
License
for
more
details
.
*
*
You
should
have
received
a
copy
of
the
GNU
General
Public
License
...
...
@@ -38,7 +38,7 @@
.
globl
_start
_start
:
b
reset
_start
:
b
reset
ldr
pc
,
_undefined_instruction
ldr
pc
,
_software_interrupt
ldr
pc
,
_prefetch_abort
...
...
@@ -47,7 +47,7 @@ _start: b reset
ldr
pc
,
_irq
ldr
pc
,
_fiq
_undefined_instruction
:
.
word
undefined_instruction
_undefined_instruction
:
.
word
undefined_instruction
_software_interrupt
:
.
word
software_interrupt
_prefetch_abort
:
.
word
prefetch_abort
_data_abort
:
.
word
data_abort
...
...
@@ -126,13 +126,23 @@ reset:
relocate
:
/
*
relocate
U
-
Boot
to
RAM
*/
adr
r0
,
_start
/*
r0
<-
current
position
of
code
*/
ldr
r1
,
_TEXT_BASE
/*
test
if
we
run
from
flash
or
RAM
*/
cmp
r0
,
r1
/*
don
't reloc during debug */
beq
stack_setup
cmp
r0
,
r1
/*
don
't reloc during debug */
beq
stack_setup
#if TEXT_BASE
ldr
r2
,
=
0x0
/*
Relocate
the
exception
vectors
*/
cmp
r1
,
r2
/*
and
associated
data
to
address
*/
ldmneia
r0
!,
{
r3
-
r10
}
/*
0x0
.
Do
nothing
if
TEXT_BASE
is
*/
stmneia
r2
!,
{
r3
-
r10
}
/*
0x0
.
Copy
the
first
15
words
.
*/
ldmneia
r0
,
{
r3
-
r9
}
stmneia
r2
,
{
r3
-
r9
}
adrne
r0
,
_start
/*
restore
r0
*/
#endif
ldr
r2
,
_armboot_start
ldr
r3
,
_bss_start
sub
r2
,
r3
,
r2
/*
r2
<-
size
of
armboot
*/
add
r2
,
r0
,
r2
/*
r2
<-
source
end
address
*/
sub
r2
,
r3
,
r2
/*
r2
<-
size
of
armboot
*/
add
r2
,
r0
,
r2
/*
r2
<-
source
end
address
*/
copy_loop
:
ldmia
r0
!,
{
r3
-
r10
}
/*
copy
from
source
address
[
r0
]
*/
...
...
@@ -143,26 +153,26 @@ copy_loop:
/
*
Set
up
the
stack
*/
stack_setup
:
ldr
r0
,
_TEXT_BASE
/*
upper
128
KiB
:
relocated
uboot
*/
sub
r0
,
r0
,
#
CFG_MALLOC_LEN
/*
malloc
area
*/
sub
r0
,
r0
,
#
CFG_GBL_DATA_SIZE
/*
bdinfo
*/
sub
r0
,
r0
,
#
CFG_MALLOC_LEN
/*
malloc
area
*/
sub
r0
,
r0
,
#
CFG_GBL_DATA_SIZE
/*
bdinfo
*/
#ifdef CONFIG_USE_IRQ
sub
r0
,
r0
,
#(
CONFIG_STACKSIZE_IRQ
+
CONFIG_STACKSIZE_FIQ
)
#endif
sub
sp
,
r0
,
#
12
/*
leave
3
words
for
abort
-
stack
*/
clear_bss
:
ldr
r0
,
_bss_start
/*
find
start
of
bss
segment
*/
ldr
r1
,
_bss_end
/*
stop
here
*/
mov
r2
,
#
0x00000000
/*
clear
*/
ldr
r0
,
_bss_start
/*
find
start
of
bss
segment
*/
ldr
r1
,
_bss_end
/*
stop
here
*/
mov
r2
,
#
0x00000000
/*
clear
*/
clbss_l
:
str
r2
,
[
r0
]
/*
clear
loop
...
*/
clbss_l
:
str
r2
,
[
r0
]
/*
clear
loop
...
*/
add
r0
,
r0
,
#
4
cmp
r0
,
r1
bne
clbss_l
ldr
pc
,
_start_armboot
_start_armboot
:
.
word
start_armboot
_start_armboot
:
.
word
start_armboot
/*
************************************************************************
*
...
...
@@ -234,7 +244,7 @@ cpu_init_crit:
str
r1
,
[
r0
,
#+
NETARM_GEN_PORTC
]
/
*
*
software
reset
:
see
HW
Ref
.
Guide
8
.2.4
:
Software
Service
register
*
for
an
explanation
of
this
process
*
for
an
explanation
of
this
process
*/
ldr
r0
,
=
NETARM_GEN_MODULE_BASE
ldr
r1
,
=
NETARM_GEN_SW_SVC_RESETA
...
...
@@ -285,7 +295,7 @@ cpu_init_crit:
*
Disable
Cache
*/
ldr
r0
,
=
REG_SYSCFG
ldr
r1
,
=
0x83ffffa0
/*
cache
-
disabled
*/
ldr
r1
,
=
0x83ffffa0
/*
cache
-
disabled
*/
str
r1
,
[
r0
]
#else
...
...
@@ -359,29 +369,29 @@ cpu_init_crit:
.
macro
bad_save_user_regs
sub
sp
,
sp
,
#
S_FRAME_SIZE
stmia
sp
,
{
r0
-
r12
}
@
Calling
r0
-
r12
add
r8
,
sp
,
#
S_PC
add
r8
,
sp
,
#
S_PC
ldr
r2
,
_armboot_start
sub
r2
,
r2
,
#(
CONFIG_STACKSIZE
+
CFG_MALLOC_LEN
)
sub
r2
,
r2
,
#(
CFG_GBL_DATA_SIZE
+
8
)
@
set
base
2
words
into
abort
stack
ldmia
r2
,
{
r2
-
r4
}
@
get
pc
,
cpsr
,
old_r0
sub
r2
,
r2
,
#(
CFG_GBL_DATA_SIZE
+
8
)
@
set
base
2
words
into
abort
stack
ldmia
r2
,
{
r2
-
r4
}
@
get
pc
,
cpsr
,
old_r0
add
r0
,
sp
,
#
S_FRAME_SIZE
@
restore
sp_SVC
add
r5
,
sp
,
#
S_SP
mov
r1
,
lr
stmia
r5
,
{
r0
-
r4
}
@
save
sp_SVC
,
lr_SVC
,
pc
,
cpsr
,
old_r
stmia
r5
,
{
r0
-
r4
}
@
save
sp_SVC
,
lr_SVC
,
pc
,
cpsr
,
old_r
mov
r0
,
sp
.
endm
.
macro
irq_save_user_regs
sub
sp
,
sp
,
#
S_FRAME_SIZE
stmia
sp
,
{
r0
-
r12
}
@
Calling
r0
-
r12
add
r8
,
sp
,
#
S_PC
stmdb
r8
,
{
sp
,
lr
}^
@
Calling
SP
,
LR
str
lr
,
[
r8
,
#
0
]
@
Save
calling
PC
mrs
r6
,
spsr
str
r6
,
[
r8
,
#
4
]
@
Save
CPSR
str
r0
,
[
r8
,
#
8
]
@
Save
OLD_R0
add
r8
,
sp
,
#
S_PC
stmdb
r8
,
{
sp
,
lr
}^
@
Calling
SP
,
LR
str
lr
,
[
r8
,
#
0
]
@
Save
calling
PC
mrs
r6
,
spsr
str
r6
,
[
r8
,
#
4
]
@
Save
CPSR
str
r0
,
[
r8
,
#
8
]
@
Save
OLD_R0
mov
r0
,
sp
.
endm
...
...
@@ -400,7 +410,7 @@ cpu_init_crit:
str
lr
,
[
r13
]
@
save
caller
lr
/
spsr
mrs
lr
,
spsr
str
lr
,
[
r13
,
#
4
]
str
lr
,
[
r13
,
#
4
]
mov
r13
,
#
MODE_SVC
@
prepare
SVC
-
Mode
msr
spsr_c
,
r13
...
...
@@ -419,35 +429,35 @@ cpu_init_crit:
/*
*
exception
handlers
*/
.
align
5
.
align
5
undefined_instruction
:
get_bad_stack
bad_save_user_regs
bl
do_undefined_instruction
bl
do_undefined_instruction
.
align
5
software_interrupt
:
get_bad_stack
bad_save_user_regs
bl
do_software_interrupt
bl
do_software_interrupt
.
align
5
prefetch_abort
:
get_bad_stack
bad_save_user_regs
bl
do_prefetch_abort
bl
do_prefetch_abort
.
align
5
data_abort
:
get_bad_stack
bad_save_user_regs
bl
do_data_abort
bl
do_data_abort
.
align
5
not_used
:
get_bad_stack
bad_save_user_regs
bl
do_not_used
bl
do_not_used
#ifdef CONFIG_USE_IRQ
...
...
@@ -455,7 +465,7 @@ not_used:
irq
:
get_irq_stack
irq_save_user_regs
bl
do_irq
bl
do_irq
irq_restore_user_regs
.
align
5
...
...
@@ -463,7 +473,7 @@ fiq:
get_fiq_stack
/
*
someone
ought
to
write
a
more
effiction
fiq_save_user_regs
*/
irq_save_user_regs
bl
do_fiq
bl
do_fiq
irq_restore_user_regs
#else
...
...
@@ -472,13 +482,13 @@ fiq:
irq
:
get_bad_stack
bad_save_user_regs
bl
do_irq
bl
do_irq
.
align
5
fiq
:
get_bad_stack
bad_save_user_regs
bl
do_fiq
bl
do_fiq
#endif
...
...
@@ -486,14 +496,14 @@ fiq:
.
align
5
.
globl
reset_cpu
reset_cpu
:
mov
ip
,
#
0
mcr
p15
,
0
,
ip
,
c7
,
c7
,
0
@
invalidate
cache
mcr
p15
,
0
,
ip
,
c8
,
c7
,
0
@
flush
TLB
(
v4
)
mrc
p15
,
0
,
ip
,
c1
,
c0
,
0
@
get
ctrl
register
bic
ip
,
ip
,
#
0x000f
@
............
wcam
bic
ip
,
ip
,
#
0x2100
@
..
v
....
s
........
mcr
p15
,
0
,
ip
,
c1
,
c0
,
0
@
ctrl
register
mov
pc
,
r0
mov
ip
,
#
0
mcr
p15
,
0
,
ip
,
c7
,
c7
,
0
@
invalidate
cache
mcr
p15
,
0
,
ip
,
c8
,
c7
,
0
@
flush
TLB
(
v4
)
mrc
p15
,
0
,
ip
,
c1
,
c0
,
0
@
get
ctrl
register
bic
ip
,
ip
,
#
0x000f
@
............
wcam
bic
ip
,
ip
,
#
0x2100
@
..
v
....
s
........
mcr
p15
,
0
,
ip
,
c1
,
c0
,
0
@
ctrl
register
mov
pc
,
r0
#elif defined(CONFIG_NETARM)
.
align
5
.
globl
reset_cpu
...
...
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