* angel_SWI_ARM
@ 2013-08-07 10:57 zhaobin xv
2013-08-07 13:48 ` angel_SWI_ARM Christopher Covington
0 siblings, 1 reply; 3+ messages in thread
From: zhaobin xv @ 2013-08-07 10:57 UTC (permalink / raw)
To: linux-arm-kernel
Hello
when I read linux/arch/arm/boot/compressed/head.S
I can't understand :
mrs r2, cpsr @ get current mode
tst r2, #3 @ not user?
bne not_angel
mov r0, #0x17 @ angel_SWIreason_EnterSVC
swi 0x123456 @ angel_SWI_ARM
I want to know :
a) what is angel_SWI_ARM
b) what is angel debuger
c)Do the code " swi 0x123456 " make interrupt what make program
jump to addr 0x0000 0008
,but addr 0x0000 0008 doesn't initialize.
^ permalink raw reply [flat|nested] 3+ messages in thread
* angel_SWI_ARM
2013-08-07 10:57 angel_SWI_ARM zhaobin xv
@ 2013-08-07 13:48 ` Christopher Covington
2013-08-08 18:13 ` angel_SWI_ARM Dave Martin
0 siblings, 1 reply; 3+ messages in thread
From: Christopher Covington @ 2013-08-07 13:48 UTC (permalink / raw)
To: linux-arm-kernel
On 08/07/2013 06:57 AM, zhaobin xv wrote:
> Hello
> when I read linux/arch/arm/boot/compressed/head.S
> I can't understand :
> mrs r2, cpsr @ get current mode
> tst r2, #3 @ not user?
> bne not_angel
> mov r0, #0x17 @ angel_SWIreason_EnterSVC
> swi 0x123456 @ angel_SWI_ARM
> I want to know :
> a) what is angel_SWI_ARM
> b) what is angel debuger
> c)Do the code " swi 0x123456 " make interrupt what make program
> jump to addr 0x0000 0008
> ,but addr 0x0000 0008 doesn't initialize.
Angel is ARM's semihosting interface.
http://infocenter.arm.com/help/topic/com.arm.doc.dui0471c/CHDJHHDI.html
HTH,
Christopher
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by the Linux Foundation.
^ permalink raw reply [flat|nested] 3+ messages in thread
* angel_SWI_ARM
2013-08-07 13:48 ` angel_SWI_ARM Christopher Covington
@ 2013-08-08 18:13 ` Dave Martin
0 siblings, 0 replies; 3+ messages in thread
From: Dave Martin @ 2013-08-08 18:13 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Aug 07, 2013 at 09:48:16AM -0400, Christopher Covington wrote:
> On 08/07/2013 06:57 AM, zhaobin xv wrote:
> > Hello
> > when I read linux/arch/arm/boot/compressed/head.S
> > I can't understand :
> > mrs r2, cpsr @ get current mode
> > tst r2, #3 @ not user?
> > bne not_angel
> > mov r0, #0x17 @ angel_SWIreason_EnterSVC
> > swi 0x123456 @ angel_SWI_ARM
> > I want to know :
> > a) what is angel_SWI_ARM
> > b) what is angel debuger
> > c)Do the code " swi 0x123456 " make interrupt what make program
> > jump to addr 0x0000 0008
> > ,but addr 0x0000 0008 doesn't initialize.
>
> Angel is ARM's semihosting interface.
>
> http://infocenter.arm.com/help/topic/com.arm.doc.dui0471c/CHDJHHDI.html
I believe it's been used in the past to boot some early StrongARM based
boards like Assabet.
Since this seems to require an image to be downloaded via the serial
port, boards configured to use this are probably not self-booting. I
doubt there are many people still using this today.
For all other configurations, the kernel is entered in SVC mode, not
User mode, so the code will be skipped.
Documentation/arm/Booting:
For CPUs which do not include the ARM virtualization extensions, the
CPU must be in SVC mode. (A special exception exists for Angel)
Cheers
---Dave
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-08-08 18:13 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-07 10:57 angel_SWI_ARM zhaobin xv
2013-08-07 13:48 ` angel_SWI_ARM Christopher Covington
2013-08-08 18:13 ` angel_SWI_ARM Dave Martin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).