Usage: $ GUESTTYPE= make clean all Example: - Building a Hyp Monitor guest: $ GUESTTYPE=GUEST_HYPMON make clean all - Building a Secure Monitor guest: $ GUESTTYPE=GUEST_SECMON make clean all
- Building a Hyp monitor guest
- The program (bmguest.bin) runs in Non-secure Supervisor mode as a guest of the Hyp monitor
- Physical Entry point: IPA:0x00000000
- Hyp call (hvc instruction) to request the Hyp monitor to switch the context manually
$ make or $ GUESTTYPE=GUEST_HYPMON make arm-unknown-linux-gnueabi-gcc -DSMP -mcpu=cortex-a15 -DVEXPRESS -g -D__MONITOR_CALL_HVC__ -DLDS_PHYS_OFFSET='0x00000000' -DLDS_GUEST_OFFSET='0x00000000' -DLDS_GUEST_STACK='0x0F000000' -DNUM_ITERATIONS=3 -DGUEST_LABEL='"[guest0] "' -DLDS_GUEST_HYPMON=1 -DKCMD='"console=ttyAMA0 mem=512M mem=512M@0x880000000 earlyprintk root=/dev/nfs nfsroot=192.168.0.32:/srv/nfsroot,tcp rw ip=dhcp nfsrootdebug"' -c -o guest.o guest.S ... arm-unknown-linux-gnueabi-ld -o bmguest.axf guest.o c_start.o string.o uart_print.o --script=model.lds arm-unknown-linux-gnueabi-objcopy -O binary -S bmguest.axf bmguest.bin ================================================================= BUILT GUEST TYPE:GUEST_HYPMON GUESTCONFIGS FLAGS:-D__MONITOR_CALL_HVC__ -DLDS_PHYS_OFFSET='0x00000000' -DLDS_GUEST_OFFSET='0x00000000' -DLDS_GUEST_STACK='0x0F000000' -DNUM_ITERATIONS=3 -DGUEST_LABEL='[guest0] ' -DLDS_GUEST_HYPMON=1 ================================================================= Entry point physical address: 00000000 A __hypmon_guest_start
- Building a Secure monitor guest
- The program (bmguest.bin) runs in Non-secure Supervisor mode along side of the Monitor runs in Secure mode
- Physical Entry point: 0xE0000000
- Secure Monitor Call (smc instruction) to request the Secure Monitor to hand over the execution control to the Secure World
$ GUESTTYPE=GUEST_SECMON make arm-unknown-linux-gnueabi-gcc -DSMP -mcpu=cortex-a15 -DVEXPRESS -g -DLDS_PHYS_OFFSET='0xE0000000' -DLDS_GUEST_OFFSET='0xE0000000' -DLDS_GUEST_STACK='0xEF000000' -DNUM_ITERATIONS=3 -DGUEST_LABEL='"[guest0] "' -DLDS_GUEST_SECMON=1 -DKCMD='"console=ttyAMA0 mem=512M mem=512M@0x880000000 earlyprintk root=/dev/nfs nfsroot=192.168.0.32:/srv/nfsroot,tcp rw ip=dhcp nfsrootdebug"' -c -o guest.o guest.S ... ================================================================= BUILT GUEST TYPE:GUEST_SECMON GUESTCONFIGS FLAGS:-DLDS_PHYS_OFFSET='0xE0000000' -DLDS_GUEST_OFFSET='0xE0000000' -DLDS_GUEST_STACK='0xEF000000' -DNUM_ITERATIONS=3 -DGUEST_LABEL='[guest0] ' -DLDS_GUEST_SECMON=1 ================================================================= Entry point physical address: e0000000 A __secmon_guest_start