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
00be0f30
Commit
00be0f30
authored
Jul 31, 2007
by
Ralf Baechle
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[MIPS] Kexec: Fix several 64-bit bugs.
Signed-off-by:
Ralf Baechle
<
ralf@linux-mips.org
>
parent
1065932f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
38 deletions
+40
-38
arch/mips/kernel/relocate_kernel.S
arch/mips/kernel/relocate_kernel.S
+40
-38
No files found.
arch/mips/kernel/relocate_kernel.S
View file @
00be0f30
...
@@ -14,67 +14,69 @@
...
@@ -14,67 +14,69 @@
#include <asm/stackframe.h>
#include <asm/stackframe.h>
#include <asm/addrspace.h>
#include <asm/addrspace.h>
.
globl
relocate_new_kernel
LEAF
(
relocate_new_kernel
)
relocate_new_kernel
:
PTR_L
s0
,
kexec_indirection_page
PTR_L
s1
,
kexec_start_address
PTR_L
s0
,
kexec_indirection_page
PTR_L
s1
,
kexec_start_address
process_entry
:
process_entry
:
PTR_L
s2
,
(
s0
)
PTR_L
s2
,
(
s0
)
PTR_ADD
s0
,
s0
,
SZREG
PTR_ADD
s0
,
s0
,
SZREG
/
*
destination
page
*/
/
*
destination
page
*/
and
s3
,
s2
,
0x1
and
s3
,
s2
,
0x1
beq
s3
,
zero
,
1
f
beq
s3
,
zero
,
1
f
and
s4
,
s2
,
~
0x1
/*
store
destination
addr
in
s4
*/
and
s4
,
s2
,
~
0x1
/*
store
destination
addr
in
s4
*/
move
a0
,
s4
move
a0
,
s4
b
process_entry
b
process_entry
1
:
1
:
/
*
indirection
page
,
update
s0
*/
/
*
indirection
page
,
update
s0
*/
and
s3
,
s2
,
0x2
and
s3
,
s2
,
0x2
beq
s3
,
zero
,
1
f
beq
s3
,
zero
,
1
f
and
s0
,
s2
,
~
0x2
and
s0
,
s2
,
~
0x2
b
process_entry
b
process_entry
1
:
1
:
/
*
done
page
*/
/
*
done
page
*/
and
s3
,
s2
,
0x4
and
s3
,
s2
,
0x4
beq
s3
,
zero
,
1
f
beq
s3
,
zero
,
1
f
b
done
b
done
1
:
1
:
/
*
source
page
*/
/
*
source
page
*/
and
s3
,
s2
,
0x8
and
s3
,
s2
,
0x8
beq
s3
,
zero
,
process_entry
beq
s3
,
zero
,
process_entry
and
s2
,
s2
,
~
0x8
and
s2
,
s2
,
~
0x8
li
s6
,
(
1
<<
PAGE_SHIFT
)
/
SZREG
li
s6
,
(
1
<<
PAGE_SHIFT
)
/
SZREG
copy_word
:
copy_word
:
/
*
copy
page
word
by
word
*/
/
*
copy
page
word
by
word
*/
REG_L
s5
,
(
s2
)
REG_L
s5
,
(
s2
)
REG_S
s5
,
(
s4
)
REG_S
s5
,
(
s4
)
INT_ADD
s4
,
s4
,
SZREG
PTR_ADD
s4
,
s4
,
SZREG
INT_ADD
s2
,
s2
,
SZREG
PTR_ADD
s2
,
s2
,
SZREG
INT
_SUB
s6
,
s6
,
1
LONG
_SUB
s6
,
s6
,
1
beq
s6
,
zero
,
process_entry
beq
s6
,
zero
,
process_entry
b
copy_word
b
copy_word
b
process_entry
b
process_entry
done
:
done
:
/
*
jump
to
kexec_start_address
*/
/
*
jump
to
kexec_start_address
*/
j
s1
j
s1
END
(
relocate_new_kernel
)
.
globl
kexec_start_address
kexec_start_address
:
kexec_start_address
:
.
long
0x0
EXPORT
(
kexec_start_address
)
PTR
0x0
.
size
kexec_start_address
,
PTRSIZE
.
globl
kexec_indirection_page
kexec_indirection_page
:
kexec_indirection_page
:
.
long
0x0
EXPORT
(
kexec_indirection_page
)
PTR
0
.
size
kexec_indirection_page
,
PTRSIZE
relocate_new_kernel_end
:
relocate_new_kernel_end
:
.
globl
relocate_new_kernel_size
relocate_new_kernel_size
:
relocate_new_kernel_size
:
.
long
relocate_new_kernel_end
-
relocate_new_kernel
EXPORT
(
relocate_new_kernel_size
)
PTR
relocate_new_kernel_end
-
relocate_new_kernel
.
size
relocate_new_kernel_size
,
PTRSIZE
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