The purpose of this page is to describe booting QEMU in secure mode withDetails on authentication options enabled.
Authentication
Creating and executing authenticated images involves various steps:
Create a bif file. In bif file authentication mode (SHA3 or SHA2), Primary secret key, Secondary secret key, boot loaders and application will be specified.
Generate the Primary secret key and the Secondary secret key using OpenSSL tool.
Run the bootgen tool to generate binary and the Hash file.
Create the boot image file for the corresponding boot device.
To execute the boot image files:
Open 3 terminals and set the environmentprovided in all 3.
Execute the commands one in each terminal to run the application image, CSU ROM and the PMU ROM.
Once the PMU ROM is ran on the third terminal, FSBL and the application execution can be observed on the first terminal.
Following sections illustrates how to create and execute Authenticated images using either SHA3 or SHA2 from different booting devices and using various available key sources:
Creation of SHA2 Authenticated SD boot image using eFuse as Key Source
Creation of SHA3 Authenticated SD boot image using eFuse as Key Source
Creation of SHA3 Authenticated NAND boot image using eFuse as Key Source
Note: The spk_id in BIF file can be either decimal or hexadecimal. However, the spkch parameter passed to the tool qemu-efuse-creator should be equivalent value in decimal only.
Creation of SHA2 Authenticated SD boot image using eFuse as Key Source
1. Create a BIF file with the following contents
$ cat auth.bif
the_ROM_image:
{
[fsbl_config] a5x_x64, auth_sha2_enable
[auth_params] ppk_select=0; spk_id=0x00000000
[pskfile] ppk0_psk.pem
[sskfile] ppk0_ssk.pem
[bootloader,authentication=rsa] fsbl_a530.elf
[destination_cpu=a5x-0] A53_core0_hello_world.elf
}
2. Generate the Primary Secret Key
$ openssl genrsa -out ppk0_psk.pem 4096
Generating RSA private key, 4096 bit long modulus
................................................................................++
e is 65537 (0x10001)
3. Generate the Secondary Secret Key
$ openssl genrsa -out ppk0_ssk.pem 4096
Generating RSA private key, 4096 bit long modulus
...............................................................................++
e is 65537
4. Run the bootgen tool to generate the bin file and key file
$ bootgen -r -w -image auth.bif -o BOOT.BIN -efuseppkbits auth_efuse_ppk_hash.txt
$ xxd -r -p auth_efuse_ppk_hash.txt auth_efuse_ppk_hex.bin
5. Burn the generated key into eFuse
$ qemu-efuse-creator -ppkhash auth_efuse_ppk_hex.bin -spkch 0
Xilinx Utility for qemu efuse file generation Rev 2.0
..Created qemuefusehash.bin
6. Create the SD Boot image and format the SD memory space
$ dd if=/dev/zero of=qemu_auth_efuse_ppk.img bs=128M count=1
1+0 records in
1+0 records out
134217728 bytes (134 MB) copied, 0.789362 s, 170 MB/s
$ /sbin/mkfs.vfat -F 32 qemu_auth_efuse_ppk.img
mkfs.fat 3.0.26 (2014-03-07)
$ mcopy -i qemu_auth_efuse_ppk.img BOOT.BIN ::/
$ mkdir qemu-tmp
7. Open a new terminal and change directory to the path where the secure boot image is located. Run the below specified command to execute the CSU ROM code
$ qemu-system-microblazeel -M microblaze-fdt -hw-dtb zynqmp-csu.dtb -kernel csu_rom.elf -nographic -machine-path ./qemu-tmp
-----------------------------------------------------------------------------------
Xilinx Restricted QEMU Feb 13 2015 16:19:45.
This QEMU binary and its source are restricted to Xilinx internal
use only. Do not delete this message in source. Contact the Xilinx
QEMU Maintainer (qemu-dev@xilinx.com) for details on publishing QEMU
contributions to customers.
------------------------------------------------------------------------------------
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
QEMU 2.2.50 monitor - type 'help' for more information
(qemu) QEMU 2.2.50 monitor - type 'help' for more information
(qemu)
8. Open a new terminal and change directory to the path where the secure boot image is located. Run the below specified command to execute the PMU ROM code.
$ qemu-system-microblazeel -M microblaze-fdt -hw-dtb zynqmp-pmu.dtb -kernel pmu_rom.elf -nographic -machine-path ./qemu-tmp
---------------------------------------------------------------------------------
Xilinx Restricted QEMU Feb 13 2015 16:19:45.
This QEMU binary and its source are restricted to Xilinx internal
use only. Do not delete this message in source. Contact the Xilinx
QEMU Maintainer (qemu-dev@xilinx.com) for details on publishing QEMU
contributions to customers.
----------------------------------------------------------------------------------
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory@00000000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_pmu_ram@ffdc0000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_ipibuf@ff990000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory@0xFF960000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory0@0x00000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory0@0x20000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory1@0x00000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory1@0x20000
QEMU 2.2.50 monitor - type 'help' for more information
(qemu) QEMU 2.2.50 monitor - type 'help' for more information
(qemu)
9. Execute the SD Boot image on QEMU.
$ qemu-system-aarch64 -nographic -M arm-generic-fdt -hw-dtb xilinx-zynqmp-arm.dtb -machine-path ./qemu-tmp -sd qemu_auth_efuse_ppk.img -boot mode=3 -pflash /dev/null -pflash /dev/null -pflash qemuefusehash.bin
--------------------------------------------------------------------------------
Xilinx Restricted QEMU Feb 13 2015 16:19:45.
This QEMU binary and its source are restricted to Xilinx internal
use only. Do not delete this message in source. Contact the Xilinx
QEMU Maintainer (qemu-dev@xilinx.com) for details on publishing QEMU
contributions to customers.
--------------------------------------------------------------------------------
WARNING: Image format was not specified for 'qemu_auth_efuse_ppk.img' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
WARNING: Image format was not specified for '/dev/null' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
WARNING: Image format was not specified for '/dev/null' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
WARNING: Image format was not specified for 'qemuefusehash.bin' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
qemu-system-aarch64: Failed to connect socket: No such file or directory
QEMU waiting for connection on: disconnected:unix:./qemu-tmp/qemu-rport-_csu@0,server
qemu-system-aarch64: Failed to connect socket: No such file or directory
QEMU waiting for connection on: disconnected:unix:./qemu-tmp/qemu-rport-_pmu@0,server
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory@00000000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_pmu_ram@ffdc0000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_ipibuf@ff990000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory@0xFF960000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory0@0x00000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory0@0x20000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory1@0x00000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory1@0x20000
Warning: Orphaned drive without device: id=pflash2,file=qemuefusehash.bin,if=pflash,bus=0,unit=2
DDR test pass
Xilinx First Stage Boot Loader
Release SW Beta1 Feb 11 2015-18:14:27
Platform: QEMU, RTL Version: 400
Cluster ID 0x80000000
Running on A53-0 Processor
Processor Initialization Done
In Stage 2
SD Boot Mode
SD: rc= 0
File name is BOOT.BIN
Multiboot Reg : 0x0
Image Header Table Offset 0x8C0
**Image Header Table Details**
Boot Gen Ver: 0x1020000
No of Partitions: 0x5
Partition Header Address: 0x260
Partition Present Device: 0x0
Authentication Enabled
Initialization Success
In Stage 3, Partition No:1
UnEncrypted data Length: 0x6CE
Data word offset: 0x6CE
Total Data word length: 0x6CE
Destination Load Address: 0x0
Execution Address: 0x0
Data word offset: 0x8640
Partition Attributes: 0x100
Partition 1 Load Success
In Stage 3, Partition No:2
UnEncrypted data Length: 0x23A
Data word offset: 0x23A
Total Data word length: 0x23A
Destination Load Address: 0x1B40
Execution Address: 0x0
Data word offset: 0x8D10
Partition Attributes: 0x100
Partition 2 Load Success
In Stage 3, Partition No:3
UnEncrypted data Length: 0x1F02
Data word offset: 0x1F02
Total Data word length: 0x1F02
Destination Load Address: 0x2440
Execution Address: 0x0
Data word offset: 0x8F50
Partition Attributes: 0x100
Partition 3 Load Success
In Stage 3, Partition No:4
UnEncrypted data Length: 0x9
Data word offset: 0x9
Total Data word length: 0x9
Destination Load Address: 0x1AB4
Execution Address: 0x0
Data word offset: 0xAE60
Partition Attributes: 0x100
Partition 4 Load Success
All Partitions Loaded
In Stage 4
Running Cpu Handoff address: 0x0, Exec State: 0
Exit from FSBL
Hello World running on A53 core 0
Creation of SHA3 Authenticated NAND boot image using eFuse as Key Source
1. Create a BIF file with the following contents
$ cat auth.bif
the_ROM_image:
{
[fsbl_config] a5x_x64
[auth_params] ppk_select=0; spk_id=0x00000000
[pskfile] ppk0_psk.pem
[sskfile] ppk0_ssk.pem
[bootloader,authentication=rsa] fsbl_a530.elf
[destination_cpu=a5x-0] A53_core0_hello_world.elf
}
2. Generate the Primary Secret Key
$ openssl genrsa -out ppk0_psk.pem 4096
Generating RSA private key, 4096 bit long modulus
................................................................................++
e is 65537 (0x10001)
3. Generate the Secondary Secret Key
$ openssl genrsa -out ppk0_ssk.pem 4096
Generating RSA private key, 4096 bit long modulus
...............................................................................++
e is 65537
4. Run the bootgen tool to generate the bin file and key file
$ bootgen -r -w -image auth.bif -o BOOT.BIN -efuseppkbits auth_efuse_ppk_hash.txt
$ xxd -r -p auth_efuse_ppk_hash.txt auth_efuse_ppk_hex.bin
5. Burn the generated key into eFuse
$ qemu-efuse-creator -ppkhash auth_efuse_ppk_hex.bin -spkch 0
Xilinx Utility for qemu efuse file generation Rev 2.0
..Created qemuefusehash.bin
6. Create the NAND Boot image
$ dd if=/dev/zero of=nand.bin bs=1G count=4
4+0 records in
4+0 records out
4294967296 bytes (4.3 GB) copied, 53.6513 s, 80.1 MB/s
$ dd if=BOOT.BIN of=nand.bin bs=1 seek=0 conv=notrunc
178596+0 records in
178596+0 records out
178596 bytes (179 kB) copied, 0.257258 s, 694 kB/s
$ qemu-nand-creator 16384 < nand.bin > qemu_nand.bin
$ mkdir qemu-tmp
7. Open a new terminal and change directory to the path where the secure boot image is located. Run the below specified command to execute the CSU ROM code
$ ./qemu_tools/qemu-system-microblazeel -M microblaze-fdt -hw-dtb zynqmp-csu.dtb -kernel csu_rom.elf -nographic -machine-path ./qemu-tmp
-------------------------------------------------------------------------------
Xilinx Restricted QEMU Feb 13 2015 16:19:45.
This QEMU binary and its source are restricted to Xilinx internal
use only. Do not delete this message in source. Contact the Xilinx
QEMU Maintainer (qemu-dev@xilinx.com) for details on publishing QEMU
contributions to customers.
--------------------------------------------------------------------------------
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
QEMU 2.2.50 monitor - type 'help' for more information
(qemu) QEMU 2.2.50 monitor - type 'help' for more information
(qemu)
8. Open a new terminal and change directory to the path where the secure boot image is located. Run the below specified command to execute the PMU ROM code
$ ./qemu_tools/qemu-system-microblazeel -M microblaze-fdt -hw-dtb zynqmp-pmu.dtb -kernel pmu_rom.elf -nographic -machine-path ./qemu-tmp
----------------------------------------------------------------------------------
Xilinx Restricted QEMU Feb 13 2015 16:19:45.
This QEMU binary and its source are restricted to Xilinx internal
use only. Do not delete this message in source. Contact the Xilinx
QEMU Maintainer (qemu-dev@xilinx.com) for details on publishing QEMU
contributions to customers.
----------------------------------------------------------------------------------
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory@00000000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_pmu_ram@ffdc0000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_ipibuf@ff990000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory@0xFF960000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory0@0x00000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory0@0x20000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory1@0x00000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory1@0x20000
QEMU 2.2.50 monitor - type 'help' for more information
(qemu) QEMU 2.2.50 monitor - type 'help' for more information
(qemu)
9. Execute the NAND Boot image on QEMU
$ qemu-system-aarch64 -nographic -M arm-generic-fdt -hw-dtb xilinx-zynqmp-arm.dtb -machine-path ./qemu-tmp -drive file=qemu_nand.bin,if=pflash,index=0 -drive file=qemuefusehash.bin,if=pflash,index=2 -boot mode=4
--------------------------------------------------------------------------------------------------------------------
Xilinx Restricted QEMU Feb 13 2015 16:19:45.
This QEMU binary and its source are restricted to Xilinx internal
use only. Do not delete this message in source. Contact the Xilinx
QEMU Maintainer (qemu-dev@xilinx.com) for details on publishing QEMU
contributions to customers.
---------------------------------------------------------------------------------------------------------------------
WARNING: Image format was not specified for 'qemu_nand.bin' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
WARNING: Image format was not specified for 'qemuefusehash.bin' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
qemu-system-aarch64: Failed to connect socket: Connection refused
QEMU waiting for connection on: disconnected:unix:./qemu-tmp/qemu-rport-_csu@0,server
qemu-system-aarch64: Failed to connect socket: Connection refused
QEMU waiting for connection on: disconnected:unix:./qemu-tmp/qemu-rport-_pmu@0,server
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory@00000000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_pmu_ram@ffdc0000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_ipibuf@ff990000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory@0xFF960000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory0@0x00000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory0@0x20000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory1@0x00000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory1@0x20000
Warning: Orphaned drive without device: id=pflash2,file=qemuefusehash.bin,if=pflash,bus=0,unit=2
DDR test pass
Xilinx First Stage Boot Loader
Release SW Beta1 Feb 11 2015-18:14:27
Platform: QEMU, RTL Version: 400
Cluster ID 0x80000000
Running on A53-0 Processor
Processor Initialization Done
In Stage 2
NAND Boot Mode
Manufacturer: MICRON MT29F32G08ABCDBJ4 ,
Device Model: MT29F32G08ABCDBJ4 ,
Jedec ID: 0x2C
Bytes Per Page: 0x4000
Spare Bytes Per Page: 0x4C0
Pages Per Block: 0x100
Blocks Per LUN: 0x418
Number of LUNs: 0x1
Number of bits per cell: 0x1
Number of ECC bits: 0x1
Block Size: 0x400000
Number of Target Blocks: 0x418
Number of Target Pages: 0x41800
Nand Init Success
Multiboot Reg : 0x0
Image Header Table Offset 0x8C0
*Image Header Table Details*
Boot Gen Ver: 0x1020000
No of Partitions: 0x5
Partition Header Address: 0x260
Partition Present Device: 0x0
Authentication Enabled
Initialization Success
In Stage 3, Partition No:1
UnEncrypted data Length: 0x6CE
Data word offset: 0x6CE
Total Data word length: 0x6CE
Destination Load Address: 0x0
Execution Address: 0x0
Data word offset: 0x8640
Partition Attributes: 0x100
Partition 1 Load Success
In Stage 3, Partition No:2
UnEncrypted data Length: 0x23A
Data word offset: 0x23A
Total Data word length: 0x23A
Destination Load Address: 0x1B40
Execution Address: 0x0
Data word offset: 0x8D10
Partition Attributes: 0x100
Partition 2 Load Success
In Stage 3, Partition No:3
UnEncrypted data Length: 0x1F02
Data word offset: 0x1F02
Total Data word length: 0x1F02
Destination Load Address: 0x2440
Execution Address: 0x0
Data word offset: 0x8F50
Partition Attributes: 0x100
Partition 3 Load Success
In Stage 3, Partition No:4
UnEncrypted data Length: 0x9
Data word offset: 0x9
Total Data word length: 0x9
Destination Load Address: 0x1AB4
Execution Address: 0x0
Data word offset: 0xAE60
Partition Attributes: 0x100
Partition 4 Load Success
All Partitions Loaded
In Stage 4
Running Cpu Handoff address: 0x0, Exec State: 0
Exit from FSBL
Hello World running on A53 core 0
Creation of SD boot image with Boot Header Authentication enabled
1. Create a BIF file with the following contents
$ cat auth.bif
the_ROM_image:
{
[fsbl_config] a5x_x64, bh_auth_enable
[auth_params] ppk_select=0; spk_id=0x00000000
[pskfile] ppk0_psk.pem
[sskfile] ppk0_ssk.pem
[bootloader,authentication=rsa] fsbl_a530.elf
[destination_cpu=a5x-0] A53_core0_hello_world.elf
}
2. Generate the Primary Secret Key
$ openssl genrsa -out ppk0_psk.pem 4096
Generating RSA private key, 4096 bit long modulus
...............................................................................++
e is 65537 (0x10001)
3. Generate the Secondary Secret Key
$ openssl genrsa -out ppk0_ssk.pem 4096
Generating RSA private key, 4096 bit long modulus
..............................................................................++
e is 65537
4. Run the bootgen tool to generate the bin file and key file
$ bootgen -r -w -image auth.bif -o BOOT.BIN
5. Create the SD Boot image.
$ dd if=/dev/zero of=qemu_auth_efuse_ppk.img bs=128M count=1
1+0 records in
1+0 records out
134217728 bytes (134 MB) copied, 1.13652 s, 118 MB/s
$ mkfs.vfat -F 32 qemu_auth_efuse_ppk.img}}
mkfs.fat 3.0.26 (2014-03-07)
$ mcopy -i qemu_auth_efuse_ppk.img BOOT.BIN ::
$ mkdir qemu-tmp
6. Open a new terminal and change directory to the path where the secure boot image is located. Run the below specified command to execute the CSU ROM code.
$ qemu-system-microblazeel -M microblaze-fdt -hw-dtb zynqmp-csu.dtb -kernel csu_rom.elf -nographic -machine-path ./qemu-tmp
----
Xilinx Restricted QEMU Feb 13 2015 16:19:45.
This QEMU binary and its source are restricted to Xilinx internal
use only. Do not delete this message in source. Contact the Xilinx
QEMU Maintainer (qemu-dev@xilinx.com) for details on publishing QEMU
contributions to customers.
----
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
Warning: path not on HugeTLBFS: ././qemu-tmp
QEMU 2.2.50 monitor - type 'help' for more information
(qemu) QEMU 2.2.50 monitor - type 'help' for more information
(qemu)
7. Open a new terminal and change directory to the path where the secure boot image is located. Run the below specified command to execute the PMU ROM code.
$ qemu-system-microblazeel -M microblaze-fdt -hw-dtb zynqmp-pmu.dtb -kernel pmu_rom.elf -nographic -machine-path ./qemu-tmp
---------------------------------------------------------------------------------------
Xilinx Restricted QEMU Feb 13 2015 16:19:45.
This QEMU binary and its source are restricted to Xilinx internal
use only. Do not delete this message in source. Contact the Xilinx
QEMU Maintainer (qemu-dev@xilinx.com) for details on publishing QEMU
contributions to customers.
----------------------------------------------------------------------------------------
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory@00000000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_pmu_ram@ffdc0000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_ipibuf@ff990000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory@0xFF960000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory0@0x00000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory0@0x20000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory1@0x00000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory1@0x20000
QEMU 2.2.50 monitor - type 'help' for more information
(qemu) QEMU 2.2.50 monitor - type 'help' for more information
(qemu)
8. Execute the SD Boot image on QEMU
$ qemu-system-aarch64 -nographic -M arm-generic-fdt -hw-dtb xilinx-zynqmp-arm.dtb -machine-path ./qemu-tmp -sd qemu_auth_efuse_ppk.img -boot mode=3 -pflash /dev/null -pflash /dev/null
------------------------------------------------------------------------------------
Xilinx Restricted QEMU Feb 13 2015 16:19:45.
This QEMU binary and its source are restricted to Xilinx internal
use only. Do not delete this message in source. Contact the Xilinx
QEMU Maintainer (qemu-dev@xilinx.com) for details on publishing QEMU
contributions to customers.
-------------------------------------------------------------------------------------
WARNING: Image format was not specified for 'qemu_auth_efuse_ppk.img' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
WARNING: Image format was not specified for '/dev/null' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
WARNING: Image format was not specified for '/dev/null' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
qemu-system-aarch64: Failed to connect socket: No such file or directory
QEMU waiting for connection on: disconnected:unix:./qemu-tmp/qemu-rport-_csu@0,server
qemu-system-aarch64: Failed to connect socket: No such file or directory
QEMU waiting for connection on: disconnected:unix:./qemu-tmp/qemu-rport-_pmu@0,server
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory@00000000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_pmu_ram@ffdc0000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_ipibuf@ff990000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory@0xFF960000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory0@0x00000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory0@0x20000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory1@0x00000
Warning: path not on HugeTLBFS: ./qemu-tmp/qemu-memory-_memory1@0x20000
DDR test pass
Xilinx First Stage Boot Loader
Release SW Beta1 Feb 11 2015-18:14:27
Platform: QEMU, RTL Version: 400
Cluster ID 0x80000000
Running on A53-0 Processor
Processor Initialization Done
In Stage 2
SD Boot Mode
SD: rc= 0
File name is BOOT.BIN
Multiboot Reg : 0x0
Image Header Table Offset 0x8C0
*Image Header Table Details*
Boot Gen Ver: 0x1020000
No of Partitions: 0x5
Partition Header Address: 0x260
Partition Present Device: 0x0
Authentication Enabled
Initialization Success
In Stage 3, Partition No:1
UnEncrypted data Length: 0x6CE
Data word offset: 0x6CE
Total Data word length: 0x6CE
Destination Load Address: 0x0
Execution Address: 0x0
Data word offset: 0x8640
Partition Attributes: 0x100
Partition 1 Load Success
In Stage 3, Partition No:2
UnEncrypted data Length: 0x23A
Data word offset: 0x23A
Total Data word length: 0x23A
Destination Load Address: 0x1B40
Execution Address: 0x0
Data word offset: 0x8D10
Partition Attributes: 0x100
Partition 2 Load Success
In Stage 3, Partition No:3
UnEncrypted data Length: 0x1F02
Data word offset: 0x1F02
Total Data word length: 0x1F02
Destination Load Address: 0x2440
Execution Address: 0x0
Data word offset: 0x8F50
Partition Attributes: 0x100
Partition 3 Load Success
In Stage 3, Partition No:4
UnEncrypted data Length: 0x9
Data word offset: 0x9
Total Data word length: 0x9
Destination Load Address: 0x1AB4
Execution Address: 0x0
Data word offset: 0xAE60
Partition Attributes: 0x100
Partition 4 Load Success
All Partitions Loaded
In Stage 4
Running Cpu Handoff address: 0x0, Exec State: 0
Exit from FSBL
Hello World running on A53 core 0future.
Insert Code: Use Widget-> Insert Code
code