linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* 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).