You need to sign in or sign up before continuing.
提交 e11d1314 编写于 作者: N Nicolas Pitre 提交者: Russell King

ARM: 8703/1: debug.S: move hexbuf to a writable section

This was located in .text which is meant to be read-only. And in the XIP
case this shortcut simply doesn't work and may trigger a Flash controller
mode switch and crash the kernel. Move it to the .bss area.
Signed-off-by: NNicolas Pitre <nico@linaro.org>
Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
上级 c7725687
...@@ -55,7 +55,9 @@ ENDPROC(printhex4) ...@@ -55,7 +55,9 @@ ENDPROC(printhex4)
ENTRY(printhex2) ENTRY(printhex2)
mov r1, #2 mov r1, #2
printhex: adr r2, hexbuf printhex: adr r2, hexbuf_rel
ldr r3, [r2]
add r2, r2, r3
add r3, r2, r1 add r3, r2, r1
mov r1, #0 mov r1, #0
strb r1, [r3] strb r1, [r3]
...@@ -71,7 +73,11 @@ printhex: adr r2, hexbuf ...@@ -71,7 +73,11 @@ printhex: adr r2, hexbuf
b printascii b printascii
ENDPROC(printhex2) ENDPROC(printhex2)
hexbuf: .space 16 .pushsection .bss
hexbuf_addr: .space 16
.popsection
.align
hexbuf_rel: .long hexbuf_addr - .
.ltorg .ltorg
...@@ -120,7 +126,9 @@ ENTRY(printascii) ...@@ -120,7 +126,9 @@ ENTRY(printascii)
ENDPROC(printascii) ENDPROC(printascii)
ENTRY(printch) ENTRY(printch)
adr r1, hexbuf adr r1, hexbuf_rel
ldr r2, [r1]
add r1, r1, r2
strb r0, [r1] strb r0, [r1]
mov r0, #0x03 @ SYS_WRITEC mov r0, #0x03 @ SYS_WRITEC
ARM( svc #0x123456 ) ARM( svc #0x123456 )
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册