简体   繁体   中英

Linux Booting Angel booting

I'm reading about linux/arch/arm/boot/compressed/head.S

I figured out about the angel boot . It's my first time about this word

#ifndef CONFIG_CPU_V7M
        /*
         * Booting from Angel - need to enter SVC mode and disable
         * FIQs/IRQs (numeric definitions from angel arm.h source).
         * We only do this if we were in user mode on entry.
         */
        mrs r2, cpsr        @ get current mode
        tst r2, #3          @ not user?
        bne not_angel
        mov r0, #0x17       @ angel_SWIreason_EnterSVC
 ARM(       swi 0x123456    )   @ angel_SWI_ARM
 THUMB(     svc 0xab        )   @ angel_SWI_THUMB
not_angel:
        safe_svcmode_maskall r0
        msr spsr_cxsf, r9       @ Save the CPU boot mode in
                        @ SPSR
#endif

So i googled and read the linux documentation located in linux/Documentation/arm/Booting

There's no clear definition about angel booting in any website and linux documentation only mentioned angel as like bellow

  For CPUs which do not include the ARM virtualization extensions, the
  CPU must be in SVC mode.  (A special exception exists for Angel)

So I want to know about clear definition about angel boot

Thank you for your answer

Refers to the content from ARM Information center, "Angel is a debug monitor that allows rapid development and debugging of applications running on ARM-based hardware." http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0066d/Babdcdih.html

It seems you can debug your software through Angel using debuggers like gdb - when your board is set up with Angel.

It offers a feature which is called "Semihosting" - a board-host input/output bridging. It is done on SWI context. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0058d/CIHDICHH.html

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM