[PATCH 2/4] DOCS: Remove documentation for ARM32 boards without virtualization

33 views
Skip to first unread message

Anup Patel

unread,
Sep 24, 2021, 11:52:32 AM9/24/21
to xvisor...@googlegroups.com, Anup Patel
The ARM32 port without virtualization has been removed so let's
remove related documentation.

Signed-off-by: Anup Patel <an...@brainfault.org>
---
HOSTS | 109 --------
docs/arm/bcm2835-raspi.txt | 299 --------------------
docs/arm/exynos4-nuri.txt | 113 --------
docs/arm/exynos4-odroidx.txt | 155 -----------
docs/arm/exynos4-smdkc210.txt | 113 --------
docs/arm/imx25-pdk-qemu.txt | 114 --------
docs/arm/imx31-kzm-qemu.txt | 112 --------
docs/arm/imx6-sabrelite-bootscript | 54 ----
docs/arm/imx6-sabrelite.txt | 241 ----------------
docs/arm/omap3-beagle-x-load-1.5.0.bin.ift | Bin 22232 -> 0 bytes
docs/arm/omap3-beagle.txt | 304 ---------------------
docs/arm/realview-eb-mpcore.txt | 113 --------
docs/arm/realview-pb-a8.txt | 113 --------
docs/arm/sun4i-cubieboard-qemu.txt | 113 --------
docs/arm/sun4i-cubieboard.txt | 6 -
docs/arm/sun4i-hackberry.txt | 158 -----------
docs/arm/sun4i-pcduino.txt | 6 -
docs/arm/versatile-pb.txt | 112 --------
docs/arm/vexpress-a15-nove.txt | 113 --------
docs/arm/vexpress-a9.txt | 113 --------
20 files changed, 2461 deletions(-)
delete mode 100644 docs/arm/bcm2835-raspi.txt
delete mode 100644 docs/arm/exynos4-nuri.txt
delete mode 100644 docs/arm/exynos4-odroidx.txt
delete mode 100644 docs/arm/exynos4-smdkc210.txt
delete mode 100644 docs/arm/imx25-pdk-qemu.txt
delete mode 100644 docs/arm/imx31-kzm-qemu.txt
delete mode 100644 docs/arm/imx6-sabrelite-bootscript
delete mode 100644 docs/arm/imx6-sabrelite.txt
delete mode 100755 docs/arm/omap3-beagle-x-load-1.5.0.bin.ift
delete mode 100644 docs/arm/omap3-beagle.txt
delete mode 100644 docs/arm/realview-eb-mpcore.txt
delete mode 100644 docs/arm/realview-pb-a8.txt
delete mode 100644 docs/arm/sun4i-cubieboard-qemu.txt
delete mode 100644 docs/arm/sun4i-cubieboard.txt
delete mode 100644 docs/arm/sun4i-hackberry.txt
delete mode 100644 docs/arm/sun4i-pcduino.txt
delete mode 100644 docs/arm/versatile-pb.txt
delete mode 100644 docs/arm/vexpress-a15-nove.txt
delete mode 100644 docs/arm/vexpress-a9.txt

diff --git a/HOSTS b/HOSTS
index 3a006dde..f05e8688 100644
--- a/HOSTS
+++ b/HOSTS
@@ -10,16 +10,6 @@ If a field spans multiple lines then simply add field prefix to every line.

----------

-M: BCM2835 SOC (Raspberry Pi development board)
-A: ARM 32-bit (ARMv6)
-C: ARM11
-V: Broadcom Corporation (http://www.broadcom.com/)
-E: Raspberry-Pi QEMU (https://github.com/Torlus/qemu)
-G: Only Realview-EB-MPCore guest supported
-S: Able to boot Realview-EB-MPCore linux guest on Raspberry Pi hardware
- and Raspberry Pi emulated by QEMU
-D: docs/arm/bcm2835-raspi.txt
-
M: BCM2836 SOC (Raspberry Pi2 development board)
A: ARM 32-bit with virtualization extension (ARMv7a-ve)
C: Cortex-A7
@@ -60,39 +50,6 @@ S: Able to boot Virt-v7 linux guest on ClearFog GT
S: Able to boot Virt-v8 linux guest on ClearFog GT
D: docs/arm/armada-8k-clearfog-gt.txt

-M: Exynos4210 SOC (SMDKC210 and NURI evaluation boards)
-A: ARM 32-bit (ARMv7a)
-C: Cortex-A9
-V: Samsung (http://www.samsung.com)
-E: QEMU (http://qemu.org/)
-G: Realview-PB-A8 and VExpress-A9 guests supported
-S: Able to boot Realview-PB-A8 linux guest on smdkc210 emulated by QEMU.
-S: Able to boot VExpress-A9 linux guest on smdkc210 emulated by QEMU
-D: docs/arm/exynos4-smdkc210.txt
-D: docs/arm/exynos4-nuri.txt
-
-M: Exynos4412 SOC (ODroid-X development board)
-A: ARM 32-bit (ARMv7a)
-C: Cortex-A9
-V: Samsung (http://www.samsung.com)
-E: ---
-G: Realview-PB-A8 and VExpress-A9 guests supported
-S: Only supports Contex-A9 Uniprocessor. The Cortex-A9 Multiprocessor
- (or SMP) suppport is Work-In-Progress.
-S: Able to boot Realview-PB-A8 linux guest on ODroid-X board
-S: Able to boot VExpress-A9 linux guest on ODroid-X board
-D: docs/arm/exynos4-odroidx.txt
-
-M: i.MX6 SOC (Sabrelite or Nitrogen6X board)
-A: ARM 32-bit (ARMv7a)
-C: Cortex-A9
-V: Freescale Semiconductor Inc. (http://www.freescale.com/)
-E: ---
-G: Only Sabrelite guests supported (modified VExpress-A9 guests)
-S: Able to boot Sabrelite guests on Freescale Sabrelite board
-S: Able to boot Sabrelite guests on Boundary Devices Nitrogen6X board
-D: docs/arm/sabrelite.txt
-
M: Foundation v8 Machine
A: ARM 64-bit (ARMv8a)
C: Foundation ARMv8 CPU
@@ -111,52 +68,6 @@ S: Able to boot Virt-v8 linux guest on Foundation v8 Machine emulated
by ARMv8 Foundation Model.
D: ---

-M: OMAP3 SOC (BeagleBoard-xM development board)
-A: ARM 32-bit (ARMv7a)
-C: Cortex-A8
-V: Texax Instruments (http://www.ti.com/)
-E: QEMU Linaro (https://launchpad.net/qemu-linaro)
-G: Realview-PB-A8 and VExpress-A9 guests supported
-S: Able to boot Realview-PB-A8 linux guest on BeagleBoard-xM Hardware
- and BeagleBoard emulated by QEMU
-S: Able to boot VExpress-A9 linux guest on BeagleBoard-xM Hardware and
- BeagleBoard emulated by QEMU
-D: docs/arm/omap3-beagle.txt
-
-M: Realview-EB-MPCore
-A: ARM 32-bit (ARMv6k)
-C: ARM11MPCore
-V: ARM Ltd. (http://www.arm.com/)
-E: QEMU (http://qemu.org/)
-G: Only Realview-EB-MPCore guest supported
-S: Able to boot Realview-EB-MPCore linux guest on Realview-EB-MPCore
- emulated by QEMU
-D: docs/arm/realview-eb-mpcore.txt
-
-M: Realview-PB-A8
-A: ARM 32-bit (ARMv7a)
-C: Cortex-A8
-V: ARM Ltd. (http://www.arm.com/)
-E: QEMU (http://qemu.org/)
-G: Realview-PB-A8 and VExpress-A9 guests supported
-S: Able to boot Realview-PB-A8 linux guest on Realview-PB-A8 emulated by
- QEMU
-S: Able to boot VExpress-A9 linux guest on Realview-PB-A8 emulated by QEMU
-D: docs/arm/realview-pb-a8.txt
-
-M: Sun4i SOC (or Allwinner A10) (Hackberry or Cubieboard or Pcduino board)
-A: ARM 32-bit (ARMv7a)
-C: Cortex-A8
-V: Allwinner Technology (http://www.allwinner.com)
-E: QEMU (http://qemu.org/)
-G: Realview-PB-A8 and VExpress-A9 guests supported
-S: Able to boot Realview-PB-A8 linux guest on Hackberry board
-S: Able to boot VExpress-A9 linux guest on Hackberry board
-D: docs/arm/sun4i-hackberry.txt
-D: docs/arm/sun4i-pcduino.txt
-D: docs/arm/sun4i-cubieboard.txt
-D: docs/arm/sun4i-cubieboard-qemu.txt
-
M: Sun7i SOC (or Allwinner A20) (Cubieboard2)
A: ARM 32-bit with virtualization extension (ARMv7a-ve)
C: Cortex-A7
@@ -169,26 +80,6 @@ S: Able to boot VExpress-A15 linux guest on Cubieboard2
S: Able to boot Virt-v7 linux guest on Cubieboard2
D: docs/arm/sun7i-cubieboard2.txt

-M: VersatilePB
-A: ARM 32-bit (ARMv5)
-C: ARM926
-V: ARM Ltd. (http://www.arm.com/)
-E: QEMU (http://qemu.org/)
-G: Only VersatilePB guest supported
-S: Able to boot VersatilePB linux guests on VersatilePB emulated by QEMU
-D: docs/arm/versatilepb.txt
-
-M: VExpress-A9
-A: ARM 32-bit (ARMv7a)
-C: Cortex-A9
-V: ARM Ltd. (http://www.arm.com/)
-E: QEMU (http://qemu.org/)
-G: Realview-PB-A8 and VExpress-A9 guests supported
-S: Able to boot Realview-PB-A8 linux guest on VExpress-A9 emulated by
- QEMU.
-S: Able to boot VExpress-A9 linux guest on VExpress-A9 emulated by QEMU
-D: docs/arm/vexpress-a9.txt
-
M: VExpress-A15
A: ARM 32-bit with virtualization extension (ARMv7a-ve)
C: Cortex-A15
diff --git a/docs/arm/bcm2835-raspi.txt b/docs/arm/bcm2835-raspi.txt
deleted file mode 100644
index 23f5c2a9..00000000
--- a/docs/arm/bcm2835-raspi.txt
+++ /dev/null
@@ -1,299 +0,0 @@
- Xvisor on Raspberry-Pi (or BCM2835 SOC) using SD Booting
-
-This section of readme explains how to build & run Xvisor on actual
-Raspberry Pi board using SD booting feature of Raspberry Pi (or BCM2835 SOC).
-
-By default, Xvisor for BCM2835 supports Realview-EB-MPCore guest so we will
-show how to run Basic Firmware (and/or Linux) on Realview-EB-MPCore guest.
-
-The Raspberry Pi usually comes with and SD card containig the GPU firmware
-necessary to boot the ARM processor.
-To create your own SD Card to boot the Raspberry Pi, do the following:
- 1) Download and write prebuild raspbian image (not older than 7th Sept 2017)
- to SD card as described in: https://www.raspberrypi.org/downloads/raspbian/
- 2) Optionally download the following files from the Raspberry Official
- Repository (https://github.com/raspberrypi/firmware/tree/master/boot)
- to the SD card if you are not able detect complete 1GB RAM:
- - fixup.dat
- - fixup_cd.dat
- - start.elf
- - start_cd.elf
- (Note: the _cd files are used when gpu_mem=16)
-
-As next step, we install u-boot-2017.09 on the Raspberry Pi SD card
-as follow:
- 1) Download and build u-boot-2017.09
- # export ARCH=arm
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
- # wget ftp://ftp.denx.de/pub/u-boot/u-boot-2017.09.tar.bz2
- # tar -xvf u-boot-2017.09.tar.bz2
- # cd u-boot-2017.09
- # make rpi_defconfig
- # make all
- 2) Mount the boot partition of pre-installed SD card
- 3) Copy u-boot.bin to <raspi_sd_card_boot_partition>
- 4) Create <raspi_sd_card_boot_partition>/config.txt if it does not exist
- 5) Add following lines to <raspi_sd_card_boot_partition>/config.txt:
- kernel=u-boot.bin
- gpu_mem=64
- 6) Unmount the boot partition of pre-installed SD card
-
-Once we have u-boot installed on SD card, we add 3 more images to the data
-partition of SD card:
- 1) U-Boot compatible Xvisor binary (uvmm.bin)
- 2) DTB for Xvisor (bcm2835-rpi-b.dtb)
- 3) U-Boot compatible Xvisor disk containing guest binaries (udisk.img)
-
-Following are steps to create these images and boot Xvisor on Raspberry Pi:
-
- [1. Build environment for Xvisor]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor with Generic v6 default settings]
- # make ARCH=arm generic-v6-defconfig
-
- [4. Build Xvisor & DTBs]
- # make
-
- [5. Make U-Boot compatible uvmm.bin for use with bootm command]
- # mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Xvisor -d build/vmm.bin build/uvmm.bin
-
- [6. Build Basic Firmware]
- # make -C tests/arm32/realview-eb-mpcore/basic
-
- [7. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [8. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/realview_defconfig arch/arm/configs/tmp-realview-eb-mpcore_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-realview-eb-mpcore_defconfig -f <xvisor_source_directory>/tests/arm32/realview-eb-mpcore/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-realview-eb-mpcore_defconfig
-
- [9. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [10. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [11. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [12. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [13. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [14. Create disk image for Xvisor with Guest Linux and Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-eb-mpcore
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-eb-mpcore-guest.dtb ./tests/arm32/realview-eb-mpcore/realview-eb-mpcore-guest.dts
- # cp -f ./build/tests/arm32/realview-eb-mpcore/basic/firmware.bin.patched ./build/disk/images/arm32/realview-eb-mpcore/firmware.bin
- # cp -f ./tests/arm32/realview-eb-mpcore/linux/nor_flash.list ./build/disk/images/arm32/realview-eb-mpcore/nor_flash.list
- # cp -f ./tests/arm32/realview-eb-mpcore/linux/cmdlist ./build/disk/images/arm32/realview-eb-mpcore/cmdlist
- # cp -f ./tests/arm32/realview-eb-mpcore/xscript/one_guest_ebmp.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/realview-eb-mpcore/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/arm-realview-eb-11mp-ctrevb.dtb ./build/disk/images/arm32/realview-eb-mpcore/arm-realview-eb-11mp-ctrevb.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/realview-eb-mpcore/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [14. Create disk image for Xvisor with only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-eb-mpcore
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-eb-mpcore-guest.dtb ./tests/arm32/realview-eb-mpcore/realview-eb-mpcore-guest.dts
- # cp -f ./build/tests/arm32/realview-eb-mpcore/basic/firmware.bin.patched ./build/disk/images/arm32/realview-eb-mpcore/firmware.bin
- # cp -f ./tests/arm32/realview-eb-mpcore/basic/nor_flash.list ./build/disk/images/arm32/realview-eb-mpcore/nor_flash.list
- # cp -f ./tests/arm32/realview-eb-mpcore/xscript/one_guest_ebmp.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [15. Make U-boot compatible initrd for use with bootm command]
- # mkimage -A arm -O linux -T ramdisk -a 0x01000000 -n "Xvisor ramdisk" -d build/disk.img build/udisk.img
-
- [16. Unplug bootable SD card from Raspberry Pi and plug it on your development machine]
-
- [17. Mount data partition (or partition 2) of SD card on your development machine]
-
- [18. Copy uvmm.bin, DTB, and disk.im to data partition of SD card]
- # cp -f build/uvmm.bin <path_to_mounted_data_partition_of_sd_card>
- # cp -f build/arch/arm/dts/broadcom/bcm2835-rpi-b.dtb <path_to_mounted_data_partition_of_sd_card>
- # cp -f build/udisk.img <path_to_mounted_dat_partition_of_sd_card>
-
- [19. Unmount data partition (or partition 2) of SD card from your development machine]
-
- [20. Unplug SD card from your development machine and plug it back on Raspberry Pi]
-
- [21. Connect to serial port of Raspberry Pi using Putty or Minicom]
-
- [22. Power-up or Reset Raspberry Pi and press any key when U-Boot shows auto-boot count down]
-
- [23. Enable MMC interface from U-Boot command line]
- U-Boot> mmc dev 0:0
-
- [24. Copy Xvisor from SD card to SDRAM]
- U-Boot> ext4load mmc 0:2 0x00200000 uvmm.bin
-
- [25. Copy Xvisor DTB from SD card to SDRAM]
- U-Boot> ext4load mmc 0:2 0x00800000 bcm2835-rpi-b.dtb
-
- [26. Copy disk image from SD card to SDRAM]
- U-Boot> ext4load mmc 0:2 0x02000000 udisk.img
-
- [27. Jump into Xvisor after disabling MMU, interrupts, etc]
- U-Boot> bootm 0x00200000 0x02000000 0x00800000
-
- [28. Kick Guest0 for starting Basic Firmware]
- XVisor# guest kick guest0
-
- [29. Bind to virtual UART]
- XVisor# vserial bind guest0/uart0
-
- [30. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [31. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command)
- (Note: The <xvisor_source_directory>/tests/arm32/realview-eb-mpcore/linux/cmdlist
- file which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [32. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [33. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
- (Note: some of the above steps will need to be adapted for other
- types of ARM host)
- (Note: for more info on your desired ARM host refer docs/arm/)
- (Note: you are free to change the ordering of above steps based
- on your workspace)
-
-
- Xvisor on QEMU Raspberry-Pi (or BCM2835 SOC) Host
-
-This section of readme explains how to build & run Xvisor on Raspberry-Pi QEMU
-(Raspberry-Pi QEMU source, https://github.com/Torlus/qemu.git, and use the
-rpi branch).
-
-By default, Xvisor for BCM2835 supports Realview-EB-MPCore guest so we will
-show how to run Basic Firmware (and/or Linux) on Realview-EB-MPCore guest.
-
-Please follow the steps below to build & run Basic Firmware on
-Realview-EB-MPCore guest with Xvisor running on QEMU Raspberry-Pi Host:
-
- [1. Build environment for Xvisor]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor with Generic v6 default settings]
- # make ARCH=arm generic-v6-defconfig
-
- [4. Build Xvisor & DTBs]
- # make
-
- [5. Build Basic Firmware]
- # make -C tests/arm32/realview-eb-mpcore/basic
-
- [6. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [7. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/realview_defconfig arch/arm/configs/tmp-realview-eb-mpcore_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-realview-eb-mpcore_defconfig -f <xvisor_source_directory>/tests/arm32/realview-eb-mpcore/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-realview-eb-mpcore_defconfig
-
- [8. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [9. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [10. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [11. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [12. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [13. Create disk image for Xvisor with Guest Linux and Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-eb-mpcore
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-eb-mpcore-guest.dtb ./tests/arm32/realview-eb-mpcore/realview-eb-mpcore-guest.dts
- # cp -f ./build/tests/arm32/realview-eb-mpcore/basic/firmware.bin.patched ./build/disk/images/arm32/realview-eb-mpcore/firmware.bin
- # cp -f ./tests/arm32/realview-eb-mpcore/linux/nor_flash.list ./build/disk/images/arm32/realview-eb-mpcore/nor_flash.list
- # cp -f ./tests/arm32/realview-eb-mpcore/linux/cmdlist ./build/disk/images/arm32/realview-eb-mpcore/cmdlist
- # cp -f ./tests/arm32/realview-eb-mpcore/xscript/one_guest_ebmp.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/realview-eb-mpcore/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/arm-realview-eb-11mp-ctrevb.dtb ./build/disk/images/arm32/realview-eb-mpcore/arm-realview-eb-11mp-ctrevb.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/realview-eb-mpcore/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [13. Create disk image for Xvisor with only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-eb-mpcore
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-eb-mpcore-guest.dtb ./tests/arm32/realview-eb-mpcore/realview-eb-mpcore-guest.dts
- # cp -f ./build/tests/arm32/realview-eb-mpcore/basic/firmware.bin.patched ./build/disk/images/arm32/realview-eb-mpcore/firmware.bin
- # cp -f ./tests/arm32/realview-eb-mpcore/basic/nor_flash.list ./build/disk/images/arm32/realview-eb-mpcore/nor_flash.list
- # cp -f ./tests/arm32/realview-eb-mpcore/xscript/one_guest_ebmp.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [14. Launch QEMU]
- # qemu-system-arm -M raspi -m 512M -display none -serial stdio -kernel build/vmm.bin -dtb build/arch/arm/dts/broadcom/bcm2835-rpi-b.dtb -initrd build/disk.img
-
- [15. Kick Guest0 for starting Basic Firmware]
- XVisor# guest kick guest0
-
- [16. Bind to virtual UART]
- XVisor# vserial bind guest0/uart0
-
- [17. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [18. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command)
- (Note: The <xvisor_source_directory>/tests/arm32/realview-eb-mpcore/linux/cmdlist
- file which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [19. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [20. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
- (Note: some of the above steps will need to be adapted for other
- types of ARM host)
- (Note: for more info on your desired ARM host refer docs/arm/)
- (Note: you are free to change the ordering of above steps based
- on your workspace)
diff --git a/docs/arm/exynos4-nuri.txt b/docs/arm/exynos4-nuri.txt
deleted file mode 100644
index ac8e1190..00000000
--- a/docs/arm/exynos4-nuri.txt
+++ /dev/null
@@ -1,113 +0,0 @@
- Xvisor on QEMU NURI Host
-
-This section of readme explains how to build & run Xvisor for NURI emulated
-by QEMU.
-
-By default, Xvisor for NURI supports Vexpress-A9 guest so we will show
-how to run Basic Firmware on Vexpress-A9 guest. For more info refer,
-<xvisor_source>/tests/arm32/vexpress-a9/basic/README.
-
-Please follow the steps below to build & run Basic Firmware on Vexpress-A9
-guest with Xvisor running on QEMU NURI Host:
-
- [1. Build environment for Xvisor]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor with Generic v7 default settings]
- # make ARCH=arm generic-v7-defconfig
-
- [4. Build Xvisor & DTBs]
- # make
-
- [5. Build Basic Firmware]
- # make -C tests/arm32/vexpress-a9/basic
-
- [6. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [7. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/vexpress_defconfig arch/arm/configs/tmp-vexpress-a9_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-vexpress-a9_defconfig -f <xvisor_source_directory>/tests/arm32/vexpress-a9/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-vexpress-a9_defconfig
-
- [8. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [9. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [10. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [11. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [12. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [13. Create disk image for Xvisor with Guest Linux and Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/vexpress-a9
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/vexpress-a9-guest.dtb ./tests/arm32/vexpress-a9/vexpress-a9-guest.dts
- # cp -f ./build/tests/arm32/vexpress-a9/basic/firmware.bin.patched ./build/disk/images/arm32/vexpress-a9/firmware.bin
- # cp -f ./tests/arm32/vexpress-a9/linux/nor_flash.list ./build/disk/images/arm32/vexpress-a9/nor_flash.list
- # cp -f ./tests/arm32/vexpress-a9/linux/cmdlist ./build/disk/images/arm32/vexpress-a9/cmdlist
- # cp -f ./tests/arm32/vexpress-a9/xscript/one_guest_vexpress-a9.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/vexpress-a9/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/vexpress-v2p-ca9.dtb ./build/disk/images/arm32/vexpress-a9/vexpress-v2p-ca9.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/vexpress-a9/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [13. Create disk image for Xvisor with only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/vexpress-a9
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/vexpress-a9-guest.dtb ./tests/arm32/vexpress-a9/vexpress-a9-guest.dts
- # cp -f ./build/tests/arm32/vexpress-a9/basic/firmware.bin.patched ./build/disk/images/arm32/vexpress-a9/firmware.bin
- # cp -f ./tests/arm32/vexpress-a9/basic/nor_flash.list ./build/disk/images/arm32/vexpress-a9/nor_flash.list
- # cp -f ./tests/arm32/vexpress-a9/xscript/one_guest_vexpress-a9.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [14. Launch QEMU]
- # qemu-system-arm -M nuri -m 512M -display none -serial stdio -kernel build/vmm.bin -dtb build/arch/arm/dts/samsung/exynos4210-nuri.dtb -initrd build/disk.img
-
- [15. Kick Guest0 for starting Basic Firmware]
- XVisor# guest kick guest0
-
- [16. Bind to virtual UART0 of Linux Guest]
- XVisor# vserial bind guest0/uart0
-
- [17. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [18. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command)
- (Note: The <xvisor_source_directory>/tests/arm32/vexpress-a9/linux/cmdlist file
- which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [19. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [20. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
- (Note: some of the above steps will need to be adapted for other
- types of ARM host)
- (Note: for more info on your desired ARM host refer docs/arm/)
- (Note: you are free to change the ordering of above steps based
- on your workspace)
diff --git a/docs/arm/exynos4-odroidx.txt b/docs/arm/exynos4-odroidx.txt
deleted file mode 100644
index b53ed724..00000000
--- a/docs/arm/exynos4-odroidx.txt
+++ /dev/null
@@ -1,155 +0,0 @@
- Xvisor on ODroid-X using SD Booting
-
-This section of the readme explains how to build & run Xvisor on an actual
-ODroid-X development board, using the SD card for booting.
-
-By default, Xvisor for Exynos4 supports VExpress-A9 guests, so we will
-show how to run Basic Firmware (and/or Linux) on VExpress-A9 guest.
-
-For booting from SD card we first need to install the first and second
-level bootloader as well as u-boot to the SD card. For more info, refer
-http://com.odroid.com/sigong/blog/blog_list.php?bid=130
-
-We need to add 2 images in boot partition of SD card that is shipped with
-ODroid-X:
- 1) U-Boot compatible Xvisor binary (uvmm.bin).
- 2) Disk image containing guest binaries (disk.img).
-
-Following steps to create these images and then boot Xvisor on ODroid-X:
-
- [1. Build environment]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor with ODroid-X host default settings]
- # make ARCH=arm generic-v7-defconfig
-
- [4. Build Xvisor & DTBs]
- # make
-
- [5. Make U-Boot compatible uvmm.bin, for use with bootm command]
- # mkimage -A arm -O linux -T kernel -C none -a 0x40008000 -e 0x40008000 -n "Xvisor" -d build/vmm.bin build/uvmm.bin
-
- [6. Build Basic Firmware]
- # make -C tests/arm32/vexpress-a9/basic
-
- [7. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [8. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/vexpress_defconfig arch/arm/configs/tmp-vexpress-a9_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-vexpress-a9_defconfig -f <xvisor_source_directory>/tests/arm32/vexpress-a9/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-vexpress-a9_defconfig
-
- [9. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [10. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [11. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [12. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [13. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [14. Create disk image for Xvisor with Guest Linux and Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/vexpress-a9
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/vexpress-a9-guest.dtb ./tests/arm32/vexpress-a9/vexpress-a9-guest.dts
- # cp -f ./build/tests/arm32/vexpress-a9/basic/firmware.bin.patched ./build/disk/images/arm32/vexpress-a9/firmware.bin
- # cp -f ./tests/arm32/vexpress-a9/linux/nor_flash.list ./build/disk/images/arm32/vexpress-a9/nor_flash.list
- # cp -f ./tests/arm32/vexpress-a9/linux/cmdlist ./build/disk/images/arm32/vexpress-a9/cmdlist
- # cp -f ./tests/arm32/vexpress-a9/xscript/one_guest_vexpress-a9.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/vexpress-a9/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/vexpress-v2p-ca9.dtb ./build/disk/images/arm32/vexpress-a9/vexpress-v2p-ca9.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/vexpress-a9/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [14. Create disk image for Xvisor with only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/vexpress-a9
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/vexpress-a9-guest.dtb ./tests/arm32/vexpress-a9/vexpress-a9-guest.dts
- # cp -f ./build/tests/arm32/vexpress-a9/basic/firmware.bin.patched ./build/disk/images/arm32/vexpress-a9/firmware.bin
- # cp -f ./tests/arm32/vexpress-a9/basic/nor_flash.list ./build/disk/images/arm32/vexpress-a9/nor_flash.list
- # cp -f ./tests/arm32/vexpress-a9/xscript/one_guest_vexpress-a9.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [15. Make U-boot compatible initrd for use with bootm command]
- # mkimage -A arm -O linux -T ramdisk -a 0x41000000 -n "Xvisor ramdisk" -d build/disk.img build/udisk.img
-
- [16. Unplug SD card from ODroid-X and plug it on your development machine]
-
- [17. Mount boot partition (or partition 0) of SD card on your development machine]
-
- [18. Copy uvmm.bin, DTB, and disk.img to boot partition of SD card]
- # cp -f build/uvmm.bin <path_to_mounted_boot_partition_of_sd_card>
- # cp -f build/arch/arm/dts/samsung/exynos4412-odroidx.dtb <path_to_mounted_boot_partition_of_sd_card>
- # cp -f build/udisk.img <path_to_mounted_boot_partition_of_sd_card>
-
- [19. Unmount boot partition (or partition 0) of SD card from your development machine]
-
- [20. Unplug SD card from your development machine and plug it back on ODroid-X]
-
- [21. Connect to serial port of ODroid-X using Putty or Minicom]
-
- [22. Power-up or Reset ODroid-X and press any key when U-Boot shows auto-boot count down]
-
- [23. Enabled MMC interface from U-Boot command line interface]
- ODROIDX# mmc dev 0:2
-
- [24. Copy Xvisor from SD card to SDRAM]
- ODROIDX# fatload mmc 0:2 0x40200000 uvmm.bin
-
- [25. Copy the Xvisor DTB from SD card to SDRAM]
- ODROIDX# fatload mmc 0:2 0x40800000 exynos4412-odroidx.dtb
-
- [26. Copy disk image from SD card to SDRAM]
- ODROIDX# fatload mmc 0:2 0x42000000 udisk.img
-
- [27. Jump into Xvisor after disabling MMU, interrupts, etc]
- ODROIDX# bootm 0x40200000 0x42000000 0x40800000
-
- [28. Kick Guest0 for starting Basic Firmware]
- XVisor# guest kick guest0
-
- [29. Bind to virtual UART]
- XVisor# vserial bind guest0/uart0
-
- [30. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [31. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command)
- (Note: The <xvisor_source_directory>/tests/arm32/vexpress-a9/linux/cmdlist file
- which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [32. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [33. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
- (Note: some of the above steps will need to be adapted for other
- types of ARM host)
- (Note: for more info on your desired ARM host refer docs/arm/)
- (Note: you are free to change the ordering of above steps based
- on your workspace)
diff --git a/docs/arm/exynos4-smdkc210.txt b/docs/arm/exynos4-smdkc210.txt
deleted file mode 100644
index 21805712..00000000
--- a/docs/arm/exynos4-smdkc210.txt
+++ /dev/null
@@ -1,113 +0,0 @@
- Xvisor on QEMU SMDKC210 Host
-
-This section of readme explains how to build & run Xvisor for SMDKC210
-emulated by QEMU.
-
-By default, Xvisor for SMDKC210 supports Vexpress-A9 guest so we will
-show how to run Basic Firmware on Vexpress-A9 guest. For more info
-refer, <xvisor_source>/tests/arm32/vexpress-a9/basic/README.
-
-Please follow the steps below to build & run Basic Firmware on Vexpress-A9
-guest with Xvisor running on QEMU SMDKC210 Host:
-
- [1. Build environment for Xvisor]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor with Generic v7 default settings]
- # make ARCH=arm generic-v7-defconfig
-
- [4. Build Xvisor & DTBs]
- # make
-
- [5. Build Basic Firmware]
- # make -C tests/arm32/vexpress-a9/basic
-
- [6. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [7. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/vexpress_defconfig arch/arm/configs/tmp-vexpress-a9_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-vexpress-a9_defconfig -f <xvisor_source_directory>/tests/arm32/vexpress-a9/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-vexpress-a9_defconfig
-
- [8. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [9. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [10. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [11. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [12. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [13. Create disk image for Xvisor with Guest Linux and Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/vexpress-a9
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/vexpress-a9-guest.dtb ./tests/arm32/vexpress-a9/vexpress-a9-guest.dts
- # cp -f ./build/tests/arm32/vexpress-a9/basic/firmware.bin.patched ./build/disk/images/arm32/vexpress-a9/firmware.bin
- # cp -f ./tests/arm32/vexpress-a9/linux/nor_flash.list ./build/disk/images/arm32/vexpress-a9/nor_flash.list
- # cp -f ./tests/arm32/vexpress-a9/linux/cmdlist ./build/disk/images/arm32/vexpress-a9/cmdlist
- # cp -f ./tests/arm32/vexpress-a9/xscript/one_guest_vexpress-a9.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/vexpress-a9/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/vexpress-v2p-ca9.dtb ./build/disk/images/arm32/vexpress-a9/vexpress-v2p-ca9.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/vexpress-a9/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [13. Create disk image for Xvisor with only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/vexpress-a9
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/vexpress-a9-guest.dtb ./tests/arm32/vexpress-a9/vexpress-a9-guest.dts
- # cp -f ./build/tests/arm32/vexpress-a9/basic/firmware.bin.patched ./build/disk/images/arm32/vexpress-a9/firmware.bin
- # cp -f ./tests/arm32/vexpress-a9/basic/nor_flash.list ./build/disk/images/arm32/vexpress-a9/nor_flash.list
- # cp -f ./tests/arm32/vexpress-a9/xscript/one_guest_vexpress-a9.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [14. Launch QEMU]
- # qemu-system-arm -M smdkc210 -m 512M -display none -serial stdio -kernel build/vmm.bin -dtb build/arch/arm/dts/samsung/exynos4210-smdkc210.dtb -initrd build/disk.img
-
- [15. Kick Guest0 for starting Basic Firmware]
- XVisor# guest kick guest0
-
- [16. Bind to virtual UART0 of Linux Guest]
- XVisor# vserial bind guest0/uart0
-
- [17. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [18. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command)
- (Note: The <xvisor_source_directory>/tests/arm32/vexpress-a9/linux/cmdlist file
- which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [19. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [20. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
- (Note: some of the above steps will need to be adapted for other
- types of ARM host)
- (Note: for more info on your desired ARM host refer docs/arm/)
- (Note: you are free to change the ordering of above steps based
- on your workspace)
diff --git a/docs/arm/imx25-pdk-qemu.txt b/docs/arm/imx25-pdk-qemu.txt
deleted file mode 100644
index e2e2c63d..00000000
--- a/docs/arm/imx25-pdk-qemu.txt
+++ /dev/null
@@ -1,114 +0,0 @@
- Xvisor on QEMU (2.5) i.MX25 PDK Host
-
-Note: This requires an up to date (at least 2.5) version of Qemu.
-
-This readme explains how to build & run Xvisor for i.MX25 PDK on QEMU (2.5).
-
-By default, Xvisor for i.MX25 PDK supports VersatilePB guest so we will
-show how to run Basic Firmware on VersatilePB guest. For more info refer,
-<xvisor_source>/tests/arm32/versatilepb/basic/README.
-
-Please follow the steps below to build & run Basic Firmware on VersatilePB
-guest with Xvisor running on QEMU i.MX25 PDK Host:
-
- [1. Build environment for Xvisor]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor with Generic-v5 default settings]
- # make ARCH=arm generic-v5-defconfig
-
- [4. Build Xvisor and DTBs]
- # make
-
- [5. Build Basic Firmware]
- # make -C tests/arm32/versatilepb/basic
-
- [6. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [7. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/versatile_defconfig arch/arm/configs/tmp-versatilepb_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-versatilepb_defconfig -f <xvisor_source_directory>/tests/arm32/versatilepb/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-versatilepb_defconfig
-
- [8. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [9. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [10. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [11. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [12. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [13. Create disk image for Xvisor containing Guest Linux + Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/versatilepb
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/versatilepb-guest.dtb ./tests/arm32/versatilepb/versatilepb-guest.dts
- # cp -f ./build/tests/arm32/versatilepb/basic/firmware.bin.patched ./build/disk/images/arm32/versatilepb/firmware.bin
- # cp -f ./tests/arm32/versatilepb/linux/nor_flash.list ./build/disk/images/arm32/versatilepb/nor_flash.list
- # cp -f ./tests/arm32/versatilepb/linux/cmdlist ./build/disk/images/arm32/versatilepb/cmdlist
- # cp -f ./tests/arm32/versatilepb/xscript/one_guest_versatilepb.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/versatilepb/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/versatile-pb.dtb ./build/disk/images/arm32/versatilepb/versatile-pb.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/versatilepb/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [13. Create disk image for Xvisor containing only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/versatilepb
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/versatilepb-guest.dtb ./tests/arm32/versatilepb/versatilepb-guest.dts
- # cp -f ./build/tests/arm32/versatilepb/basic/firmware.bin.patched ./build/disk/images/arm32/versatilepb/firmware.bin
- # cp -f ./tests/arm32/versatilepb/basic/nor_flash.list ./build/disk/images/arm32/versatilepb/nor_flash.list
- # cp -f ./tests/arm32/versatilepb/xscript/one_guest_versatilepb.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [14. Launch QEMU]
- # qemu-system-arm -M imx25-pdk -m 512M -display none -serial stdio -kernel build/vmm.bin -dtb build/arch/arm/dts/freescale/imx25-pdk.dtb -initrd build/disk.img
-
- [15. Kick Guest0 for starting Basic Firmware]
- XVisor# guest kick guest0
-
- [16. Bind to virtual UART0 of Linux Guest]
- XVisor# vserial bind guest0/uart0
-
- [17. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [18. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command for executing commands from NOR flash)
- (Note: The <xvisor_source_directory>/tests/arm32/versatilepb/linux/cmdlist file
- which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [19. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [20. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
- (Note: some of the above steps will need to be adapted for other
- types of ARM host)
- (Note: for more info on your desired ARM host refer docs/arm/)
- (Note: you are free to change the ordering of above steps based
- on your workspace)
diff --git a/docs/arm/imx31-kzm-qemu.txt b/docs/arm/imx31-kzm-qemu.txt
deleted file mode 100644
index fdce8091..00000000
--- a/docs/arm/imx31-kzm-qemu.txt
+++ /dev/null
@@ -1,112 +0,0 @@
- Xvisor on QEMU i.MX31 KZM Host
-
-This readme explains how to build & run Xvisor for KZM on QEMU.
-
-By default, Xvisor for KZM supports realview-eb-mpcore guest so we will
-show how to run Basic Firmware on realview-eb-mpcore guest. For more info
-refer, <xvisor_source>/tests/arm32/realview-eb-mpcore/basic/README.
-
-Please follow the steps below to build & run Basic Firmware on
-realview-eb-mpcore guest with Xvisor running on QEMU KZM Host:
-
- [1. Build environment for Xvisor]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor with Generic v6 default settings]
- # make ARCH=arm generic-v6-defconfig
-
- [4. Build Xvisor & DTBs]
- # make
-
- [5. Build Basic Firmware]
- # make -C tests/arm32/realview-eb-mpcore/basic
-
- [6. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [7. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/realview_defconfig arch/arm/configs/tmp-realview-eb-mpcore_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-realview-eb-mpcore_defconfig -f <xvisor_source_directory>/tests/arm32/realview-eb-mpcore/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-realview-eb-mpcore_defconfig
-
- [8. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [9. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [10. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [11. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [12. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [13. Create disk image for Xvisor with Guest Linux and Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-eb-mpcore
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-eb-mpcore-guest.dtb ./tests/arm32/realview-eb-mpcore/realview-eb-mpcore-guest.dts
- # cp -f ./build/tests/arm32/realview-eb-mpcore/basic/firmware.bin.patched ./build/disk/images/arm32/realview-eb-mpcore/firmware.bin
- # cp -f ./tests/arm32/realview-eb-mpcore/linux/nor_flash.list ./build/disk/images/arm32/realview-eb-mpcore/nor_flash.list
- # cp -f ./tests/arm32/realview-eb-mpcore/linux/cmdlist ./build/disk/images/arm32/realview-eb-mpcore/cmdlist
- # cp -f ./tests/arm32/realview-eb-mpcore/xscript/one_guest_ebmp.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/realview-eb-mpcore/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/arm-realview-eb-11mp-ctrevb.dtb ./build/disk/images/arm32/realview-eb-mpcore/arm-realview-eb-11mp-ctrevb.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/realview-eb-mpcore/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [13. Create disk image for Xvisor with only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-eb-mpcore
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-eb-mpcore-guest.dtb ./tests/arm32/realview-eb-mpcore/realview-eb-mpcore-guest.dts
- # cp -f ./build/tests/arm32/realview-eb-mpcore/basic/firmware.bin.patched ./build/disk/images/arm32/realview-eb-mpcore/firmware.bin
- # cp -f ./tests/arm32/realview-eb-mpcore/basic/nor_flash.list ./build/disk/images/arm32/realview-eb-mpcore/nor_flash.list
- # cp -f ./tests/arm32/realview-eb-mpcore/xscript/one_guest_ebmp.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [14. Launch QEMU]
- # qemu-system-arm -M kzm -m 512M -display none -serial stdio -kernel build/vmm.bin -dtb build/arch/arm/dts/freescale/imx31-kzm.dtb -initrd build/disk.img
-
- [15. Kick Guest0 for starting Basic Firmware]
- XVisor# guest kick guest0
-
- [16. Bind to virtual UART0 of Linux Guest]
- XVisor# vserial bind guest0/uart0
-
- [17. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [18. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command)
- (Note: The <xvisor_source_directory>/tests/arm32/realview-eb-mpcore/linux/cmdlist
- file which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [19. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [20. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
- (Note: some of the above steps will need to be adapted for other
- types of ARM host)
- (Note: for more info on your desired ARM host refer docs/arm/)
- (Note: you are free to change the ordering of above steps based
- on your workspace)
diff --git a/docs/arm/imx6-sabrelite-bootscript b/docs/arm/imx6-sabrelite-bootscript
deleted file mode 100644
index d8c29dbf..00000000
--- a/docs/arm/imx6-sabrelite-bootscript
+++ /dev/null
@@ -1,54 +0,0 @@
-setenv bootargs ""
-setenv bootdir /
-setenv dtbaddr 12000000
-setenv bootaddr 10800000
-setenv bootimg uvmm.bin
-setenv diskaddr 14000000
-setenv diskimg udisk.img
-
-dtbname="imx6";
-if itest.s x6SOLO == "x${cpu}" ; then
- dtbname=${dtbname}dl-
-elif itest.s x6DL == "x${cpu}" ; then
- dtbname=${dtbname}dl-
-else
- dtbname=${dtbname}q-
-fi
-
-if itest.s x == "x${board}" ; then
- board=sabrelite
-fi
-dtbname=${dtbname}${board}.dtb;
-
-if itest.s x == x${bootdir} ; then
- bootdir=/boot/
-fi
-
-if itest.s "x${boottype}" == "xtftp" ; then
- echo "Load from tftp server"
- if tftpboot ${bootaddr} ${bootimg} ; then
- if tftpboot ${dtbaddr} ${dtbname} ; then
- if tftpboot ${diskaddr} ${diskname} ; then
- bootm ${bootaddr} ${diskaddr} ${dtbaddr}
- else
- bootm ${bootaddr} - ${dtbaddr}
- fi
- else
- bootm ${bootaddr}
- fi
- fi
-else
- echo "Load from SD/MMC";
- if ${fs}load mmc ${disk}:1 ${bootaddr} ${bootdir}uvmm.bin ; then
- if ${fs}load mmc ${disk}:1 ${dtbaddr} ${bootdir}$dtbname ; then
- if ${fs}load mmc ${disk}:1 ${diskaddr} ${bootdir}$diskname ; then
- bootm ${bootaddr} ${diskaddr} ${dtbaddr}
- else
- bootm ${bootaddr} - ${dtbaddr}
- fi
- else
- bootm ${bootaddr}
- fi
- fi
-fi
-echo "Error loading Xvisor image";
diff --git a/docs/arm/imx6-sabrelite.txt b/docs/arm/imx6-sabrelite.txt
deleted file mode 100644
index 93d96194..00000000
--- a/docs/arm/imx6-sabrelite.txt
+++ /dev/null
@@ -1,241 +0,0 @@
- Xvisor on Sabre LITE (or Nitrogen6X) using SD Booting
-
-This section of readme explains how to build & run Xvisor on real hardware
-Sabre LITE using SD booting feature Boundary Devices preconfigured U-Boot.
-Ensure the SD is formatted with a Xvisor recognized filesystem (CPIO, Ext4,
-or FAT).
-
-We need to add 2 images in boot partition of SD card that is shipped with
-Sabre LITE:
- 1) U-Boot compatible Xvisor binary (uvmm.bin).
- 2) U-Boot compatible Xvisor dtb (imx6dl-sabrelite.dtb)
- 3) U-Boot compatible Xvisor disk (udisk.img)
- 4) Boot script used by Boundary's U-Boot configuration (6x_bootscript)
-
-Follow the following steps to create these images and then boot Xvisor on Sabre LITE:
-
- [1. Build environment]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor with Generic v7 default settings]
- # make ARCH=arm generic-v7-defconfig
-
- [4. Build Xvisor & DTBs]
- # make
-
- [5. Make U-Boot compatible uvmm.bin, for use with bootm command]
- # mkimage -A arm -O linux -T kernel -C none -a 0x17800000 -e 0x17800000 -n "Xvisor" -d build/vmm.bin build/uvmm.bin
-
- [6. Build Basic Firmware]
- # make -C tests/arm32/vexpress-a9/basic
-
- [7. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [8. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/vexpress_defconfig arch/arm/configs/tmp-vexpress-a9_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-vexpress-a9_defconfig -f <xvisor_source_directory>/tests/arm32/vexpress-a9/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-vexpress-a9_defconfig
-
- [9. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [10. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [11. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [12. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [13. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [14. Create disk image for Xvisor with Guest Linux and Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/vexpress-a9
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/vexpress-a9-guest.dtb ./tests/arm32/vexpress-a9/vexpress-a9-guest.dts
- # cp -f ./build/tests/arm32/vexpress-a9/basic/firmware.bin.patched ./build/disk/images/arm32/vexpress-a9/firmware.bin
- # cp -f ./tests/arm32/vexpress-a9/linux/nor_flash.list ./build/disk/images/arm32/vexpress-a9/nor_flash.list
- # cp -f ./tests/arm32/vexpress-a9/linux/cmdlist ./build/disk/images/arm32/vexpress-a9/cmdlist
- # cp -f ./tests/arm32/vexpress-a9/xscript/one_guest_vexpress-a9.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/vexpress-a9/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/vexpress-v2p-ca9.dtb ./build/disk/images/arm32/vexpress-a9/vexpress-v2p-ca9.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/vexpress-a9/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [14. Create disk image for Xvisor with only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/vexpress-a9
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/vexpress-a9-guest.dtb ./tests/arm32/vexpress-a9/vexpress-a9-guest.dts
- # cp -f ./build/tests/arm32/vexpress-a9/basic/firmware.bin.patched ./build/disk/images/arm32/vexpress-a9/firmware.bin
- # cp -f ./tests/arm32/vexpress-a9/basic/nor_flash.list ./build/disk/images/arm32/vexpress-a9/nor_flash.list
- # cp -f ./tests/arm32/vexpress-a9/xscript/one_guest_vexpress-a9.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [15. Make U-boot compatible initrd for use with bootm command]
- # mkimage -A arm -O linux -T ramdisk -a 0x14000000 -n "Xvisor ramdisk" -d build/disk.img build/udisk.img
-
- [16. Make the script to boot the card as preconfigured U-Boot expect]
- # mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "boot script" -d docs/arm/imx6-sabrelite-bootscript build/6x_bootscript
-
- [17. Unplug SD card from Sabre LITE and plug it on your development machine]
-
- [18. Mount boot partition (or partition 0) of SD card on your development machine]
-
- [19. Copy uvmm.bin, DTB, and disk.img to boot partition of SD card]
- # cp -f build/uvmm.bin <path_to_mounted_boot_partition_of_sd_card>
- # cp -f build/arch/arm/dts/freescale/imx6dl-sabrelite.dtb <path_to_mounted_boot_partition_of_sd_card>
- # cp -f build/udisk.img <path_to_mounted_boot_partition_of_sd_card>
- # cp -f build/6x_bootscript <path_to_mounted_boot_partition_of_sd_card>
-
- [20. Unmount boot partition (or partition 0) of SD card from your development machine]
-
- [21. Unplug SD card from your development machine and plug it back on Sabre LITE]
-
- [22. Connect to serial port of Sabre LITE using Putty or Minicom]
-
- [23. Power-up or Reset Sabre LITE and press any key when U-Boot shows auto-boot count down]
-
- [24. When U-Boot starts, stop its autoboot and set the board name]
- U-Boot > setenv board sabrelite
- OR
- U-Boot > setenv board nitrogen6x
-
- [25. Now, you can finally run the bootscript]
- U-Boot > for disk in 0 1 ; do mmc dev ${disk} ; for fs in fat ext2 ; do if ${fs}load mmc ${disk}:1 10008000 /6x_bootscript; then source 10008000; fi ; done ; done
-
- [26. Kick a guest]
- XVisor# guest kick guest0
-
- [27. Bind to virtual UART0 of Linux Guest]
- XVisor# vserial bind guest0/uart0
-
- [28. Start linux booting from RAM]
- [guest0/uart0] basic# autoexec
-
- (Note: replace all <> brackets based on your workspace)
-
-
-
- Xvisor on QEMU Sabre LITE Host
-
-This section of readme explains how to build & run Xvisor for Sabre LITE
-emulated by QEMU.
-
-Xvisor for Sabre LITE supports Realview-PB-A8, Vexpress-A9 and Sabrelite
-guest types. In this section, we will show how to run Basic Firmware on
-Vexpress-A9 guest. For more info refer,
-<xvisor_source>/tests/arm32/vexpress-a9/basic/README.
-
-Please follow the steps below to build & run Basic Firmware on Vexpress-A9
-guest with Xvisor running on QEMU Sabre LITE Host:
-
- [1. Build environment for Xvisor]
- # export CROSS_COMPILE=arm-none-linux-gnueabi-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor with Generic v7 default settings]
- # make ARCH=arm generic-v7-defconfig
-
- [4. Build Xvisor & DTBs]
- # make
-
- [5. Build Basic Firmware]
- # make -C tests/arm32/vexpress-a9/basic
-
- [6. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [7. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/vexpress_defconfig arch/arm/configs/tmp-vexpress-a9_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-vexpress-a9_defconfig -f <xvisor_source_directory>/tests/arm32/vexpress-a9/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-vexpress-a9_defconfig
-
- [8. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [9. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [10. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [11. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [12. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [13. Create disk image for Xvisor with Guest Linux and Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/vexpress-a9
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/vexpress-a9-guest.dtb ./tests/arm32/vexpress-a9/vexpress-a9-guest.dts
- # cp -f ./build/tests/arm32/vexpress-a9/basic/firmware.bin.patched ./build/disk/images/arm32/vexpress-a9/firmware.bin
- # cp -f ./tests/arm32/vexpress-a9/linux/nor_flash.list ./build/disk/images/arm32/vexpress-a9/nor_flash.list
- # cp -f ./tests/arm32/vexpress-a9/linux/cmdlist ./build/disk/images/arm32/vexpress-a9/cmdlist
- # cp -f ./tests/arm32/vexpress-a9/xscript/one_guest_vexpress-a9.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/vexpress-a9/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/vexpress-v2p-ca9.dtb ./build/disk/images/arm32/vexpress-a9/vexpress-v2p-ca9.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/vexpress-a9/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [13. Create disk image for Xvisor with only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/vexpress-a9
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/vexpress-a9-guest.dtb ./tests/arm32/vexpress-a9/vexpress-a9-guest.dts
- # cp -f ./build/tests/arm32/vexpress-a9/basic/firmware.bin.patched ./build/disk/images/arm32/vexpress-a9/firmware.bin
- # cp -f ./tests/arm32/vexpress-a9/basic/nor_flash.list ./build/disk/images/arm32/vexpress-a9/nor_flash.list
- # cp -f ./tests/arm32/vexpress-a9/xscript/one_guest_vexpress-a9.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [14. Launch QEMU]
- # qemu-system-arm -M sabrelite -m 512M -display none -serial null -serial stdio -kernel build/vmm.bin -dtb build/arch/arm/dts/freescale/imx6dl-sabrelite.dtb -initrd build/disk.img
-
- [15. Kick Guest0 for starting Basic Firmware]
- XVisor# guest kick guest0
-
- [16. Bind to virtual UART0 of Linux Guest]
- XVisor# vserial bind guest0/uart0
-
- [17. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [18. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command)
- (Note: The <xvisor_source_directory>/tests/arm32/vexpress-a9/linux/cmdlist file
- which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [19. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [20. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
diff --git a/docs/arm/omap3-beagle-x-load-1.5.0.bin.ift b/docs/arm/omap3-beagle-x-load-1.5.0.bin.ift
deleted file mode 100755
index 3be725b8664f2f1d304410baf0c4e71977b1134b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 22232
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

diff --git a/docs/arm/omap3-beagle.txt b/docs/arm/omap3-beagle.txt
deleted file mode 100644
index f3e0fe4b..00000000
--- a/docs/arm/omap3-beagle.txt
+++ /dev/null
@@ -1,304 +0,0 @@
- Xvisor on BeagleBoard-xM (or OMAP3) using SD Booting
-
-This section of readme explains how to build & run Xvisor on real hardware
-BeagleBoard-xM using SD booting feature of OMAP3 SOC.
-
-By default, Xvisor for BeagleBoard supports Realview-PB-A8 guest so we will
-show how to run Basic Firmware (and/or Linux) on Realview-PB-A8 guest.
-
-We need to add 2 images in boot partition of SD card that is shipped with
-BeagleBoard-xM:
- 1) U-Boot compatible Xvisor binary and DTBs (uvmm.bin).
- 2) Disk image containing guest binaries (disk.img).
-
-Following are the steps to create these images and then boot Xvisor on
-Beagleboard-xM using U-Boot-2011.03 or higher:
-
- [1. Build environment]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor for Beagleboard (or OMAP3)]
- # make ARCH=arm generic-v7-defconfig
-
- [4. Build Xvisor and DTBs, this creates vmm.bin]
- # make
-
- [5. Make U-Boot compatible uvmm.bin for use with bootm command]
- # mkimage -A arm -O linux -T kernel -C none -a 0x88000000 -e 0x88000000 -n Xvisor -d build/vmm.bin build/uvmm.bin
-
- [6. Build Basic Firmware]
- # make -C tests/arm32/realview-pb-a8/basic
-
- [7. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [8. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/realview_defconfig arch/arm/configs/tmp-realview-pb-a8_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-realview-pb-a8_defconfig -f <xvisor_source_directory>/tests/arm32/realview-pb-a8/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-realview-pb-a8_defconfig
-
- [9. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [10. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [11. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [12. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [13. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [14. Create disk image for Xvisor with Guest Linux and Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-pb-a8
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-pb-a8-guest.dtb ./tests/arm32/realview-pb-a8/realview-pb-a8-guest.dts
- # cp -f ./build/tests/arm32/realview-pb-a8/basic/firmware.bin.patched ./build/disk/images/arm32/realview-pb-a8/firmware.bin
- # cp -f ./tests/arm32/realview-pb-a8/linux/nor_flash.list ./build/disk/images/arm32/realview-pb-a8/nor_flash.list
- # cp -f ./tests/arm32/realview-pb-a8/linux/cmdlist ./build/disk/images/arm32/realview-pb-a8/cmdlist
- # cp -f ./tests/arm32/realview-pb-a8/xscript/one_guest_pb-a8.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/realview-pb-a8/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/arm-realview-pba8.dtb ./build/disk/images/arm32/realview-pb-a8/arm-realview-pba8.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/realview-pb-a8/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [14. Create disk image for Xvisor with only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-pb-a8
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-pb-a8-guest.dtb ./tests/arm32/realview-pb-a8/realview-pb-a8-guest.dts
- # cp -f ./build/tests/arm32/realview-pb-a8/basic/firmware.bin.patched ./build/disk/images/arm32/realview-pb-a8/firmware.bin
- # cp -f ./tests/arm32/realview-pb-a8/basic/nor_flash.list ./build/disk/images/arm32/realview-pb-a8/nor_flash.list
- # cp -f ./tests/arm32/realview-pb-a8/xscript/one_guest_pb-a8.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [15. Make U-boot compatible initrd for use with bootm command]
- # mkimage -A arm -O linux -T ramdisk -a 0x89000000 -n "Xvisor ramdisk" -d build/disk.img build/udisk.img
-
- [16. Unplug SD card from BeagleBoard-xM and plug it on your development machine]
-
- [17. Mount boot partition (or partition 0) of SD card on your development machine]
-
- [18. Copy uvmm.bin, DTB, and disk image to boot partition of SD card]
- # cp -f build/uvmm.bin <path_to_mounted_boot_partition_of_sd_card>
- # cp -f build/arch/arm/dts/ti/omap3-beagle-xm.dtb <path_to_mounted_boot_partition_of_sd_card>
- # cp -f build/udisk.img <path_to_mounted_boot_partition_of_sd_card>
-
- [19. Unmount boot partition (or partition 0) of SD card from your development machine]
-
- [20. Unplug SD card from your development machine and plug it back on BeagleBoard-xM]
-
- [21. Connect to serial port of BeagleBoard-xM using Putty or Minicom]
-
- [22. Power-up or Reset BeagleBoard-xM and press any key when U-Boot shows auto-boot count down]
-
- [23. Enabled MMC interface from U-Boot command line interface]
- OMAP3 beagleboard.org # mmc dev 0:0
-
- [24. Copy Xvisor from SD card to SDRAM]
- OMAP3 beagleboard.org # fatload mmc 0 0x80200000 uvmm.bin
-
- [25. Copy disk image from SD card to SDRAM]
- OMAP3 beagleboard.org # fatload mmc 0 0x8B000000 udisk.img
-
- [26. Copy DTB from SD card to SDRAM]
- OMAP3 beagleboard.org # fatload mmc 0 0x8A000000 omap3-beagle-xm.dtb
-
- [27. Jump into Xvisor after disabling MMU, interrupts, etc]
- OMAP3 beagleboard.org # bootm 0x80200000 0x8B000000 0x8A000000
-
- [28. Kick Guest0 for starting Basic Firmware]
- XVisor# guest kick guest0
-
- [29. Bind to virtual UART]
- XVisor# vserial bind guest0/uart0
-
- [30. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [31. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command)
- (Note: The <xvisor_source_directory>/tests/arm32/realview-pb-a8/linux/cmdlist
- file which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [32. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [33. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
- (Note: some of the above steps will need to be adapted for other
- types of ARM host)
- (Note: for more info on your desired ARM host refer docs/arm/)
- (Note: you are free to change the ordering of above steps based
- on your workspace)
-
-
- Xvisor on QEMU BeagleBoard (or OMAP3) using NAND Booting
-
-This section of readme explains how to build & run Xvisor from nand-flash on
-BeagleBoard emulated by QEMU.
-
-By default, Xvisor for BeagleBoard supports Realview-PB-A8 guest so we will
-show how to run Basic Firmware (and/or Linux) on Realview-PB-A8 guest.
-
-We need to have 4 images to create the nand-flash image:
- 1) X-loader for OMAP3 (2nd stage bootloader for OMAP3).
- 2) U-Boot-2011.03 binary for OMAP3 (3rd stage bootloader).
- 3) U-Boot compatible Xvisor binary and DTBs (uvmm.bin).
- 4) Disk image containing guest binaries (disk.img).
-
-The steps to create these images and boot Xvisor on Beagleboard QEMU are as
-follows:
-
- [1. Build environment]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. Download and build U-Boot-2011.03 from source - this creates u-boot.bin]
- # wget ftp://ftp.denx.de/pub/u-boot/u-boot-2011.03.tar.bz2
- # tar -xvf u-boot-2011.03.tar.bz2
- # cd u-boot-2011.03
- # make omap3_beagle_config
- # make
- # cd ..
-
- [3. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [4. Configure Xvisor for Beagleboard (or OMAP3)]
- # make ARCH=arm generic-v7-defconfig
-
- [5. Build Xvisor and DTBs, this creates vmm.bin]
- # make
-
- [6. Add uboot header to vmm.bin for use with bootm command]
- # mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n Xvisor -d build/vmm.bin build/uvmm.bin
-
- [7. Build Basic Firmware]
- # make -C tests/arm32/realview-pb-a8/basic
-
- [8. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [9. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/realview_defconfig arch/arm/configs/tmp-realview-pb-a8_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-realview-pb-a8_defconfig -f <xvisor_source_directory>/tests/arm32/realview-pb-a8/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-realview-pb-a8_defconfig
-
- [10. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [11. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [12. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [13. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [14. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [15. Create disk image for Xvisor with Guest Linux and Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-pb-a8
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-pb-a8-guest.dtb ./tests/arm32/realview-pb-a8/realview-pb-a8-guest.dts
- # cp -f ./build/tests/arm32/realview-pb-a8/basic/firmware.bin.patched ./build/disk/images/arm32/realview-pb-a8/firmware.bin
- # cp -f ./tests/arm32/realview-pb-a8/linux/nor_flash.list ./build/disk/images/arm32/realview-pb-a8/nor_flash.list
- # cp -f ./tests/arm32/realview-pb-a8/linux/cmdlist ./build/disk/images/arm32/realview-pb-a8/cmdlist
- # cp -f ./tests/arm32/realview-pb-a8/xscript/one_guest_pb-a8.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/realview-pb-a8/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/arm-realview-pba8.dtb ./build/disk/images/arm32/realview-pb-a8/arm-realview-pba8.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/realview-pb-a8/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [15. Create disk image for Xvisor with only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-pb-a8
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-pb-a8-guest.dtb ./tests/arm32/realview-pb-a8/realview-pb-a8-guest.dts
- # cp -f ./build/tests/arm32/realview-pb-a8/basic/firmware.bin.patched ./build/disk/images/arm32/realview-pb-a8/firmware.bin
- # cp -f ./tests/arm32/realview-pb-a8/basic/nor_flash.list ./build/disk/images/arm32/realview-pb-a8/nor_flash.list
- # cp -f ./tests/arm32/realview-pb-a8/xscript/one_guest_pb-a8.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [16. Make U-boot compatible initrd for use with bootm command]
- # mkimage -A arm -O linux -T ramdisk -a 0x81000000 -n "Xvisor ramdisk" -d build/disk.img build/udisk.img
-
- [17. Create a flat binary with all our binaries appended]
- # ./tools/scripts/memimg.py -a 0 -o build/beagle.img docs/arm/omap3-beagle-x-load-1.5.0.bin.ift@0x0 <path-to-u-boot-binary>/u-boot.bin@0x80000 build/uvmm.bin@0x280000 ./build/arch/arm/dts/ti/omap3-beagle.dtb@0x680000 build/udisk.img@0x700000
-
- [18. Build the beagleboard nand-flash image from the flat binary created]
- # ./tools/bbflash/bb_nandflash.sh build/beagle.img build/beagle-nand.bin ./build/tools/bbflash/bb_nandflash_ecc
-
- [19. Launch QEMU]
- # qemu-system-arm -M beagle -m 512M -drive file=build/beagle-nand.bin,if=mtd -display none -serial stdio -s
-
- [20. Copy Xvisor from nand-flash to SDRAM]
- OMAP3 beagleboard.org # nand read 0x80200000 0x280000 0x200000
-
- [21. Copy disk image from nand-flash to SDRAM]
- OMAP3 beagleboard.org # nand read 0x84000000 0x700000 0x1000040
-
- [22. Copy Xvisor DTB from nand-flash to SDRAM]
- OMAP3 beagleboard.org # nand read 0x80800000 0x680000 0x10000
-
- [23. Jump into Xvisor after disabling MMU, interrupts, etc]
- OMAP3 beagleboard.org # bootm 0x80200000 0x84000000 0x80800000
-
- [24. Kick Guest0 for starting Basic Firmware]
- XVisor# guest kick guest0
-
- [25. Bind to virtual UART]
- XVisor# vserial bind guest0/uart0
-
- [26. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [27. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command)
- (Note: The <xvisor_source_directory>/tests/arm32/realview-pb-a8/linux/cmdlist
- file which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [28. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [29. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
- (Note: some of the above steps will need to be adapted for other
- types of ARM host)
- (Note: for more info on your desired ARM host refer docs/arm/)
- (Note: you are free to change the ordering of above steps based
- on your workspace)
diff --git a/docs/arm/realview-eb-mpcore.txt b/docs/arm/realview-eb-mpcore.txt
deleted file mode 100644
index 8406b95f..00000000
--- a/docs/arm/realview-eb-mpcore.txt
+++ /dev/null
@@ -1,113 +0,0 @@
- Xvisor on QEMU Realview-EB-MPCore Host
-
-This section of explains how to build & run Xvisor for Realview-EB-MPCore
-emulated by QEMU.
-
-By default, Xvisor for Realview-EB-MPCore supports Realview-EB-MPCore guest
-so, we will show how to run Basic Firmwares on Realview-EB-MPCore guest.
-For more info, <xvisor_source>/tests/arm32/realview-eb-mpcore/basic/README.
-
-Please follow the steps below to build & run Basic Firmware on
-Realview-EB-MPCore guest with Xvisor running on QEMU Realview-EB-MPCore Host:
-
- [1. Build environment for Xvisor]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor with Generic v6 default settings]
- # make ARCH=arm generic-v6-defconfig
-
- [4. Build Xvisor & DTBs]
- # make
-
- [5. Build Basic Firmware]
- # make -C tests/arm32/realview-eb-mpcore/basic
-
- [6. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [7. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/realview_defconfig arch/arm/configs/tmp-realview-eb-mpcore_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-realview-eb-mpcore_defconfig -f <xvisor_source_directory>/tests/arm32/realview-eb-mpcore/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-realview-eb-mpcore_defconfig
-
- [8. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [9. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [10. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [11. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [12. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [13. Create disk image for Xvisor with Guest Linux and Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-eb-mpcore
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-eb-mpcore-guest.dtb ./tests/arm32/realview-eb-mpcore/realview-eb-mpcore-guest.dts
- # cp -f ./build/tests/arm32/realview-eb-mpcore/basic/firmware.bin.patched ./build/disk/images/arm32/realview-eb-mpcore/firmware.bin
- # cp -f ./tests/arm32/realview-eb-mpcore/linux/nor_flash.list ./build/disk/images/arm32/realview-eb-mpcore/nor_flash.list
- # cp -f ./tests/arm32/realview-eb-mpcore/linux/cmdlist ./build/disk/images/arm32/realview-eb-mpcore/cmdlist
- # cp -f ./tests/arm32/realview-eb-mpcore/xscript/one_guest_ebmp.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/realview-eb-mpcore/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/arm-realview-eb-11mp-ctrevb.dtb ./build/disk/images/arm32/realview-eb-mpcore/arm-realview-eb-11mp-ctrevb.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/realview-eb-mpcore/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [13. Create disk image for Xvisor with only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-eb-mpcore
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-eb-mpcore-guest.dtb ./tests/arm32/realview-eb-mpcore/realview-eb-mpcore-guest.dts
- # cp -f ./build/tests/arm32/realview-eb-mpcore/basic/firmware.bin.patched ./build/disk/images/arm32/realview-eb-mpcore/firmware.bin
- # cp -f ./tests/arm32/realview-eb-mpcore/basic/nor_flash.list ./build/disk/images/arm32/realview-eb-mpcore/nor_flash.list
- # cp -f ./tests/arm32/realview-eb-mpcore/xscript/one_guest_ebmp.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [14. Launch QEMU]
- # qemu-system-arm -M realview-eb-mpcore -m 512M -display none -serial stdio -kernel build/vmm.bin -dtb build/arch/arm/dts/arm/arm-realview-eb-11mp-ctrevb.dtb -initrd build/disk.img
-
- [15. Kick Guest0 for starting Basic Firmware]
- XVisor# guest kick guest0
-
- [16. Bind to virtual UART0 of Linux Guest]
- XVisor# vserial bind guest0/uart0
-
- [17. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [18. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command)
- (Note: The <xvisor_source_directory>/tests/arm32/realview-eb-mpcore/linux/cmdlist
- file which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [19. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [20. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
- (Note: some of the above steps will need to be adapted for other
- types of ARM host)
- (Note: for more info on your desired ARM host refer docs/arm/)
- (Note: you are free to change the ordering of above steps based
- on your workspace)
diff --git a/docs/arm/realview-pb-a8.txt b/docs/arm/realview-pb-a8.txt
deleted file mode 100644
index c05104b0..00000000
--- a/docs/arm/realview-pb-a8.txt
+++ /dev/null
@@ -1,113 +0,0 @@
- Xvisor on QEMU Realview-PB-A8 Host
-
-This section of readme explains how to build & run Xvisor for Realview-PB-A8
-emulated by QEMU.
-
-By default, Xvisor for Realview-PB-A8 supports Realview-PB-A8 guest so we will
-show how to run Basic Firmware on Realview-PB-A8 guest. For more info refer,
-<xvisor_source>/tests/arm32/realview-pb-a8/basic/README.
-
-Please follow the steps below to build & run Basic Firmware on Realview-PB-A8
-guest with Xvisor running on QEMU Realview-PB-A8 Host:
-
- [1. Build environment for Xvisor]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor with Generic v7 default settings]
- # make ARCH=arm generic-v7-defconfig
-
- [4. Build Xvisor & DTBs]
- # make
-
- [5. Build Basic Firmware]
- # make -C tests/arm32/realview-pb-a8/basic
-
- [6. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [7. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/realview_defconfig arch/arm/configs/tmp-realview-pb-a8_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-realview-pb-a8_defconfig -f <xvisor_source_directory>/tests/arm32/realview-pb-a8/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-realview-pb-a8_defconfig
-
- [8. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [9. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [11. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [12. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [13. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [14. Create disk image for Xvisor with Guest Linux and Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-pb-a8
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-pb-a8-guest.dtb ./tests/arm32/realview-pb-a8/realview-pb-a8-guest.dts
- # cp -f ./build/tests/arm32/realview-pb-a8/basic/firmware.bin.patched ./build/disk/images/arm32/realview-pb-a8/firmware.bin
- # cp -f ./tests/arm32/realview-pb-a8/linux/nor_flash.list ./build/disk/images/arm32/realview-pb-a8/nor_flash.list
- # cp -f ./tests/arm32/realview-pb-a8/linux/cmdlist ./build/disk/images/arm32/realview-pb-a8/cmdlist
- # cp -f ./tests/arm32/realview-pb-a8/xscript/one_guest_pb-a8.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/realview-pb-a8/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/arm-realview-pba8.dtb ./build/disk/images/arm32/realview-pb-a8/arm-realview-pba8.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/realview-pb-a8/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [14. Create disk image for Xvisor with only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-pb-a8
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-pb-a8-guest.dtb ./tests/arm32/realview-pb-a8/realview-pb-a8-guest.dts
- # cp -f ./build/tests/arm32/realview-pb-a8/basic/firmware.bin.patched ./build/disk/images/arm32/realview-pb-a8/firmware.bin
- # cp -f ./tests/arm32/realview-pb-a8/basic/nor_flash.list ./build/disk/images/arm32/realview-pb-a8/nor_flash.list
- # cp -f ./tests/arm32/realview-pb-a8/xscript/one_guest_pb-a8.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [15. Launch QEMU]
- # qemu-system-arm -M realview-pb-a8 -m 512M -display none -serial stdio -kernel build/vmm.bin -dtb build/arch/arm/dts/arm/arm-realview-pba8.dtb -initrd build/disk.img
-
- [16. Kick Guest0 for starting Basic Firmware]
- XVisor# guest kick guest0
-
- [17. Bind to virtual UART0 of Linux Guest]
- XVisor# vserial bind guest0/uart0
-
- [18. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [19. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command)
- (Note: The <xvisor_source_directory>/tests/arm32/realview-pb-a8/linux/cmdlist
- file which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [20. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [21. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
- (Note: some of the above steps will need to be adapted for other
- types of ARM host)
- (Note: for more info on your desired ARM host refer docs/arm/)
- (Note: you are free to change the ordering of above steps based
- on your workspace)
diff --git a/docs/arm/sun4i-cubieboard-qemu.txt b/docs/arm/sun4i-cubieboard-qemu.txt
deleted file mode 100644
index 2820d991..00000000
--- a/docs/arm/sun4i-cubieboard-qemu.txt
+++ /dev/null
@@ -1,113 +0,0 @@
- Xvisor on QEMU Cubieboard Host
-
-This section of readme explains how to build & run Xvisor for Cubieboard
-emulated by QEMU.
-
-By default, Xvisor for Cubieboard supports Realview-PB-A8 guest so we will
-show how to run Basic Firmware on Realview-PB-A8 guest. For more info
-refer, <xvisor_source>/tests/arm32/realview-pb-a8/basic/README.
-
-Please follow the steps below to build & run Basic Firmware on Realview-PB-A8
-guest with Xvisor running on QEMU Cubieboard Host:
-
- [1. Build environment for Xvisor]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor with Generic v7 default settings]
- # make ARCH=arm generic-v7-defconfig
-
- [4. Build Xvisor & DTBs]
- # make
-
- [5. Build Basic Firmware]
- # make -C tests/arm32/realview-pb-a8/basic
-
- [6. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [7. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/realview_defconfig arch/arm/configs/tmp-realview-pb-a8_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-realview-pb-a8_defconfig -f <xvisor_source_directory>/tests/arm32/realview-pb-a8/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-realview-pb-a8_defconfig
-
- [8. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [9. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [10. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [11. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [12. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [13. Create disk image for Xvisor with Guest Linux and Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-pb-a8
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-pb-a8-guest.dtb ./tests/arm32/realview-pb-a8/realview-pb-a8-guest.dts
- # cp -f ./build/tests/arm32/realview-pb-a8/basic/firmware.bin.patched ./build/disk/images/arm32/realview-pb-a8/firmware.bin
- # cp -f ./tests/arm32/realview-pb-a8/linux/nor_flash.list ./build/disk/images/arm32/realview-pb-a8/nor_flash.list
- # cp -f ./tests/arm32/realview-pb-a8/linux/cmdlist ./build/disk/images/arm32/realview-pb-a8/cmdlist
- # cp -f ./tests/arm32/realview-pb-a8/xscript/one_guest_pb-a8.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/realview-pb-a8/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/arm-realview-pba8.dtb ./build/disk/images/arm32/realview-pb-a8/arm-realview-pba8.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/realview-pb-a8/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [13. Create disk image for Xvisor with only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-pb-a8
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-pb-a8-guest.dtb ./tests/arm32/realview-pb-a8/realview-pb-a8-guest.dts
- # cp -f ./build/tests/arm32/realview-pb-a8/basic/firmware.bin.patched ./build/disk/images/arm32/realview-pb-a8/firmware.bin
- # cp -f ./tests/arm32/realview-pb-a8/basic/nor_flash.list ./build/disk/images/arm32/realview-pb-a8/nor_flash.list
- # cp -f ./tests/arm32/realview-pb-a8/xscript/one_guest_pb-a8.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [14. Launch QEMU]
- # qemu-system-arm -M cubieboard -m 512M -display none -serial stdio -kernel build/vmm.bin -dtb build/arch/arm/dts/allwinner/sun4i-a10-cubieboard.dtb -initrd build/disk.img
-
- [15. Kick Guest0 for starting Basic Firmware]
- XVisor# guest kick guest0
-
- [16. Bind to virtual UART0 of Linux Guest]
- XVisor# vserial bind guest0/uart0
-
- [17. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [18. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command)
- (Note: The <xvisor_source_directory>/tests/arm32/realview-pb-a8/linux/cmdlist
- file which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [19. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [20. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
- (Note: some of the above steps will need to be adapted for other
- types of ARM host)
- (Note: for more info on your desired ARM host refer docs/arm/)
- (Note: you are free to change the ordering of above steps based
- on your workspace)
diff --git a/docs/arm/sun4i-cubieboard.txt b/docs/arm/sun4i-cubieboard.txt
deleted file mode 100644
index f05a76b2..00000000
--- a/docs/arm/sun4i-cubieboard.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-
-The instructions for pcduino board (http://cubieboard.org/model/cb1/) are
-same as instructions for hackbery board.
-
-Please refer docs/arm/sun4i-hackberry.txt
-
diff --git a/docs/arm/sun4i-hackberry.txt b/docs/arm/sun4i-hackberry.txt
deleted file mode 100644
index af96bbc1..00000000
--- a/docs/arm/sun4i-hackberry.txt
+++ /dev/null
@@ -1,158 +0,0 @@
- Xvisor on Allwinner A10 board (or Sun4i) using SD Booting
-
-This section of readme explains how to build & run Xvisor on actual Allwinner
-A10 boards (Hackberry or pcduino for example) using SD booting feature of
-Sun4i SOC.
-
-By default, Xvisor for Sun4i supports Realview-PB-A8 guest so we will show
-how to run Basic Firmware (and/or Linux) on Realview-PB-A8 guest.
-
-As first step of SD booting on Sun4i SOC, we need to re-partition and program
-a SD card (> 4GB card) with Uboot. For detailed info on preparing SD card for
-booting refer: http://rhombus-tech.net/allwinner_a10/a10_mmc_boot
-
-Once we have SD card prepared for SD booting, we add 3 images to the data
-partition of SD card:
- 1) U-Boot compatible Xvisor binary (uvmm.bin)
- 2) DTB for Xvisor (sun4i-a10-hackberry.dtb)
- 3) Disk image containing guest binaries (disk.img)
-
-Following are steps to create these images and then boot Xvisor on Allwinner
-A10:
-
- [1. Build environment]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor with Generic-v7 default settings]
- # make ARCH=arm generic-v7-defconfig
-
- [4. Build Xvisor and DTBs]
- # make
-
- [5. Make U-Boot compatible uvmm.bin for use with bootm command]
- # mkimage -A arm -O linux -T kernel -C none -a 0x40008000 -e 0x40008000 -n Xvisor -d build/vmm.bin build/uvmm.bin
-
- [6. Build Basic Firmware]
- # make -C tests/arm32/realview-pb-a8/basic
-
- [7. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [8. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/realview_defconfig arch/arm/configs/tmp-realview-pb-a8_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-realview-pb-a8_defconfig -f <xvisor_source_directory>/tests/arm32/realview-pb-a8/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-realview-pb-a8_defconfig
-
- [9. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [10. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [11. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [12. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [13. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [14. Create disk image for Xvisor with Guest Linux and Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-pb-a8
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-pb-a8-guest.dtb ./tests/arm32/realview-pb-a8/realview-pb-a8-guest.dts
- # cp -f ./build/tests/arm32/realview-pb-a8/basic/firmware.bin.patched ./build/disk/images/arm32/realview-pb-a8/firmware.bin
- # cp -f ./tests/arm32/realview-pb-a8/linux/nor_flash.list ./build/disk/images/arm32/realview-pb-a8/nor_flash.list
- # cp -f ./tests/arm32/realview-pb-a8/linux/cmdlist ./build/disk/images/arm32/realview-pb-a8/cmdlist
- # cp -f ./tests/arm32/realview-pb-a8/xscript/one_guest_pb-a8.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/realview-pb-a8/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/arm-realview-pba8.dtb ./build/disk/images/arm32/realview-pb-a8/arm-realview-pba8.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/realview-pb-a8/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [14. Create disk image for Xvisor with only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-pb-a8
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-pb-a8-guest.dtb ./tests/arm32/realview-pb-a8/realview-pb-a8-guest.dts
- # cp -f ./build/tests/arm32/realview-pb-a8/basic/firmware.bin.patched ./build/disk/images/arm32/realview-pb-a8/firmware.bin
- # cp -f ./tests/arm32/realview-pb-a8/basic/nor_flash.list ./build/disk/images/arm32/realview-pb-a8/nor_flash.list
- # cp -f ./tests/arm32/realview-pb-a8/xscript/one_guest_pb-a8.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [15. Make U-boot compatible initrd for use with bootm command]
- # mkimage -A arm -O linux -T ramdisk -a 0x41000000 -n "Xvisor ramdisk" -d build/disk.img build/udisk.img
-
- [16. Unplug bootable SD card from the A10 board and plug it on your development machine]
-
- [17. Mount data partition (or partition 2) of SD card on your development machine]
-
- [18. Copy uvmm.bin to data partition of SD card]
- # cp -f build/uvmm.bin <path_to_mounted_data_partition_of_sd_card>
- # cp -f build/arch/arm/dts/allwinner/sun4i-a10-hackberry.dtb <path_to_mounted_data_partition_of_sd_card>
- # cp -f build/udisk.img <path_to_mounted_data_partition_of_sd_card>
-
- [19. Unmount data partition (or partition 2) of SD card from your development machine]
-
- [20. Unplug SD card from your development machine and plug it back on A10 board]
-
- [21. Connect to serial port of A10 board using Putty or Minicom]
-
- [22. Power-up or Reset A10 board and press any key when U-Boot shows auto-boot count down]
-
- [23. Enable MMC interface from U-Boot command line]
- sun4i# mmc dev 0:0
-
- [24. Copy Xvisor from SD card to SDRAM]
- sun4i# ext4load mmc 0:2 0x40200000 uvmm.bin
-
- [25. Copy Xvisor DTB from SD card to SDRAM]
- sun4i# ext4load mmc 0:2 0x40800000 sun4i-a10-hackberry.dtb
-
- [26. Copy disk image from SD card to SDRAM]
- sun4i# ext4load mmc 0:2 0x42000000 udisk.img
-
- [27. Jump into Xvisor after disabling MMU, interrupts, etc]
- sun4i# bootm 0x40200000 0x42000000 0x40800000
-
- [28. Kick Guest0 for starting Basic Firmware]
- Xsor# guest kick guest0
-
- [29. Bind to virtual UART]
- XVisor# vserial bind guest0/uart0
-
- [30. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [31. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command)
- (Note: The <xvisor_source_directory>/tests/arm32/realview-pb-a8/linux/cmdlist
- file which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [32. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [33. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
- (Note: some of the above steps will need to be adapted for other
- types of ARM host)
- (Note: for more info on your desired ARM host refer docs/arm/)
- (Note: you are free to change the ordering of above steps based
- on your workspace)
diff --git a/docs/arm/sun4i-pcduino.txt b/docs/arm/sun4i-pcduino.txt
deleted file mode 100644
index 8250c83c..00000000
--- a/docs/arm/sun4i-pcduino.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-
-The instructions for pcduino board (http://www.pcduino.com/) are
-same as instructions for hackbery board.
-
-Please refer docs/arm/sun4i-hackberry.txt
-
diff --git a/docs/arm/versatile-pb.txt b/docs/arm/versatile-pb.txt
deleted file mode 100644
index 40f8388c..00000000
--- a/docs/arm/versatile-pb.txt
+++ /dev/null
@@ -1,112 +0,0 @@
- Xvisor on QEMU VersatilePB Host
-
-This readme explains how to build & run Xvisor for VersatilePB on QEMU.
-
-By default, Xvisor for VersatilePB supports VersatilePB guest so we will
-show how to run Basic Firmware on VersatilePB guest. For more info refer,
-<xvisor_source>/tests/arm32/versatilepb/basic/README.
-
-Please follow the steps below to build & run Basic Firmware on VersatilePB
-guest with Xvisor running on QEMU VersatilePB Host:
-
- [1. Build environment for Xvisor]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor with Generic-v5 default settings]
- # make ARCH=arm generic-v5-defconfig
-
- [4. Build Xvisor and DTBs]
- # make
-
- [5. Build Basic Firmware]
- # make -C tests/arm32/versatilepb/basic
-
- [6. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [7. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/versatile_defconfig arch/arm/configs/tmp-versatilepb_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-versatilepb_defconfig -f <xvisor_source_directory>/tests/arm32/versatilepb/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-versatilepb_defconfig
-
- [8. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [9. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [10. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [11. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [12. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [13. Create disk image for Xvisor containing Guest Linux + Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/versatilepb
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/versatilepb-guest.dtb ./tests/arm32/versatilepb/versatilepb-guest.dts
- # cp -f ./build/tests/arm32/versatilepb/basic/firmware.bin.patched ./build/disk/images/arm32/versatilepb/firmware.bin
- # cp -f ./tests/arm32/versatilepb/linux/nor_flash.list ./build/disk/images/arm32/versatilepb/nor_flash.list
- # cp -f ./tests/arm32/versatilepb/linux/cmdlist ./build/disk/images/arm32/versatilepb/cmdlist
- # cp -f ./tests/arm32/versatilepb/xscript/one_guest_versatilepb.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/versatilepb/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/versatile-pb.dtb ./build/disk/images/arm32/versatilepb/versatile-pb.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/versatilepb/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [13. Create disk image for Xvisor containing only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/versatilepb
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/versatilepb-guest.dtb ./tests/arm32/versatilepb/versatilepb-guest.dts
- # cp -f ./build/tests/arm32/versatilepb/basic/firmware.bin.patched ./build/disk/images/arm32/versatilepb/firmware.bin
- # cp -f ./tests/arm32/versatilepb/basic/nor_flash.list ./build/disk/images/arm32/versatilepb/nor_flash.list
- # cp -f ./tests/arm32/versatilepb/xscript/one_guest_versatilepb.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [14. Launch QEMU]
- # qemu-system-arm -M versatilepb -m 256M -display none -serial stdio -kernel build/vmm.bin -dtb build/arch/arm/dts/arm/versatile-pb.dtb -initrd build/disk.img
-
- [15. Kick Guest0 for starting Basic Firmware]
- XVisor# guest kick guest0
-
- [16. Bind to virtual UART0 of Linux Guest]
- XVisor# vserial bind guest0/uart0
-
- [17. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [18. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command for executing commands from NOR flash)
- (Note: The <xvisor_source_directory>/tests/arm32/versatilepb/linux/cmdlist file
- which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [19. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [20. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
- (Note: some of the above steps will need to be adapted for other
- types of ARM host)
- (Note: for more info on your desired ARM host refer docs/arm/)
- (Note: you are free to change the ordering of above steps based
- on your workspace)
diff --git a/docs/arm/vexpress-a15-nove.txt b/docs/arm/vexpress-a15-nove.txt
deleted file mode 100644
index 25d007f3..00000000
--- a/docs/arm/vexpress-a15-nove.txt
+++ /dev/null
@@ -1,113 +0,0 @@
- Xvisor on QEMU Vexpress-A15 Host
-
-This section of readme explains how to build & run Xvisor for Vexpress-A15
-emulated by QEMU.
-
-By default, Xvisor for Vexpress-A15 supports Realview-PB-A8 guest so we will
-show how to run Basic Firmware on Realview-PB-A8 guest. For more info
-refer, <xvisor_source>/tests/arm32/realview-pb-a8/basic/README.
-
-Please follow the steps below to build & run Basic Firmware on Realview-PB-A8
-guest with Xvisor running on QEMU Vexpress-A15 Host:
-
- [1. Build environment for Xvisor]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor with Generic v7 default settings]
- # make ARCH=arm generic-v7-defconfig
-
- [4. Build Xvisor & DTBs]
- # make
-
- [5. Build Basic Firmware]
- # make -C tests/arm32/realview-pb-a8/basic
-
- [6. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [7. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/realview_defconfig arch/arm/configs/tmp-realview-pb-a8_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-realview-pb-a8_defconfig -f <xvisor_source_directory>/tests/arm32/realview-pb-a8/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-realview-pb-a8_defconfig
-
- [8. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [9. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [10. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [11. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [12. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [13. Create disk image for Xvisor with Guest Linux and Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-pb-a8
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-pb-a8-guest.dtb ./tests/arm32/realview-pb-a8/realview-pb-a8-guest.dts
- # cp -f ./build/tests/arm32/realview-pb-a8/basic/firmware.bin.patched ./build/disk/images/arm32/realview-pb-a8/firmware.bin
- # cp -f ./tests/arm32/realview-pb-a8/linux/nor_flash.list ./build/disk/images/arm32/realview-pb-a8/nor_flash.list
- # cp -f ./tests/arm32/realview-pb-a8/linux/cmdlist ./build/disk/images/arm32/realview-pb-a8/cmdlist
- # cp -f ./tests/arm32/realview-pb-a8/xscript/one_guest_pb-a8.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/realview-pb-a8/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/arm-realview-pba8.dtb ./build/disk/images/arm32/realview-pb-a8/arm-realview-pba8.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/realview-pb-a8/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [13. Create disk image for Xvisor with only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/realview-pb-a8
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/realview-pb-a8-guest.dtb ./tests/arm32/realview-pb-a8/realview-pb-a8-guest.dts
- # cp -f ./build/tests/arm32/realview-pb-a8/basic/firmware.bin.patched ./build/disk/images/arm32/realview-pb-a8/firmware.bin
- # cp -f ./tests/arm32/realview-pb-a8/basic/nor_flash.list ./build/disk/images/arm32/realview-pb-a8/nor_flash.list
- # cp -f ./tests/arm32/realview-pb-a8/xscript/one_guest_pb-a8.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [14. Launch QEMU]
- # qemu-system-arm -M vexpress-a15 -m 512M -display none -serial stdio -kernel build/vmm.bin -dtb build/arch/arm/dts/arm/vexpress-v2p-ca15-tc1-nove.dtb -initrd build/disk.img
-
- [15. Kick Guest0 for starting Basic Firmware]
- XVisor# guest kick guest0
-
- [16. Bind to virtual UART0 of Linux Guest]
- XVisor# vserial bind guest0/uart0
-
- [17. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [18. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command)
- (Note: The <xvisor_source_directory>/tests/arm32/realview-pb-a8/linux/cmdlist
- file which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [19. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [20. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
- (Note: some of the above steps will need to be adapted for other
- types of ARM host)
- (Note: for more info on your desired ARM host refer docs/arm/)
- (Note: you are free to change the ordering of above steps based
- on your workspace)
diff --git a/docs/arm/vexpress-a9.txt b/docs/arm/vexpress-a9.txt
deleted file mode 100644
index ea9b8963..00000000
--- a/docs/arm/vexpress-a9.txt
+++ /dev/null
@@ -1,113 +0,0 @@
- Xvisor on QEMU Vexpress-A9 Host
-
-This section of readme explains how to build & run Xvisor for Vexpress-A9
-emulated by QEMU.
-
-By default, Xvisor for Vexpress-A9 supports Vexpress-A9 guest so we will
-show how to run Basic Firmware on Vexpress-A9 guest. For more info refer,
-<xvisor_source>/tests/arm32/vexpress-a9/basic/README.
-
-Please follow the steps below to build & run Basic Firmware on Vexpress-A9
-guest with Xvisor running on QEMU Vexpress-A9 Host:
-
- [1. Build environment for Xvisor]
- # export CROSS_COMPILE=arm-none-linux-gnueabihf-
-
- [2. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [3. Configure Xvisor with Generic v7 default settings]
- # make ARCH=arm generic-v7-defconfig
-
- [4. Build Xvisor & DTBs]
- # make
-
- [5. Build Basic Firmware]
- # make -C tests/arm32/vexpress-a9/basic
-
- [6. GoTo Linux source directory]
- # cd <linux_source_directory>
-
- [7. Configure Linux in build directory]
- # sed -i 's/0xff800000UL/0xff000000UL/' arch/arm/include/asm/pgtable.h
- # cp arch/arm/configs/vexpress_defconfig arch/arm/configs/tmp-vexpress-a9_defconfig
- # <xvisor_source_directory>/tests/common/scripts/update-linux-defconfig.sh -p arch/arm/configs/tmp-vexpress-a9_defconfig -f <xvisor_source_directory>/tests/arm32/vexpress-a9/linux/linux_extra.config
- # make O=<linux_build_directory> ARCH=arm tmp-vexpress-a9_defconfig
-
- [8. Build Linux in build directory]
- # make O=<linux_build_directory> ARCH=arm Image dtbs
-
- [9. Patch Linux kernel to replace sensitive non-priviledged instructions]
- # <xvisor_source_directory>/arch/arm/cpu/arm32/elf2cpatch.py -f <linux_build_directory>/vmlinux | <xvisor_source_directory>/build/tools/cpatch/cpatch32 <linux_build_directory>/vmlinux 0
-
- [10. Extract patched Linux kernel image]
- # ${CROSS_COMPILE}objcopy -O binary <linux_build_directory>/vmlinux <linux_build_directory>/arch/arm/boot/Image
-
- [11. Create BusyBox RAMDISK to be used as RootFS for Linux kernel]
- (Note: For subsequent steps, we will assume that your RAMDISK is located at <busybox_rootfs_directory>/rootfs.img)
- (Note: Please refer tests/common/busybox/README.md for creating rootfs.img using BusyBox)
-
- [12. GoTo Xvisor source directory]
- # cd <xvisor_source_directory>
-
- [13. Create disk image for Xvisor with Guest Linux and Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/vexpress-a9
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/vexpress-a9-guest.dtb ./tests/arm32/vexpress-a9/vexpress-a9-guest.dts
- # cp -f ./build/tests/arm32/vexpress-a9/basic/firmware.bin.patched ./build/disk/images/arm32/vexpress-a9/firmware.bin
- # cp -f ./tests/arm32/vexpress-a9/linux/nor_flash.list ./build/disk/images/arm32/vexpress-a9/nor_flash.list
- # cp -f ./tests/arm32/vexpress-a9/linux/cmdlist ./build/disk/images/arm32/vexpress-a9/cmdlist
- # cp -f ./tests/arm32/vexpress-a9/xscript/one_guest_vexpress-a9.xscript ./build/disk/boot.xscript
- # cp -f <linux_build_directory>/arch/arm/boot/Image ./build/disk/images/arm32/vexpress-a9/Image
- # cp -f <linux_build_directory>/arch/arm/boot/dts/vexpress-v2p-ca9.dtb ./build/disk/images/arm32/vexpress-a9/vexpress-v2p-ca9.dtb
- # cp -f <busybox_rootfs_directory>/rootfs.img ./build/disk/images/arm32/vexpress-a9/rootfs.img
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
- OR
- [13. Create disk image for Xvisor with only Guest Basic Firmware]
- # mkdir -p ./build/disk/tmp
- # mkdir -p ./build/disk/system
- # cp -f ./docs/banner/roman.txt ./build/disk/system/banner.txt
- # cp -f ./docs/logo/xvisor_logo_name.ppm ./build/disk/system/logo.ppm
- # mkdir -p ./build/disk/images/arm32/vexpress-a9
- # dtc -q -I dts -O dtb -o ./build/disk/images/arm32/vexpress-a9-guest.dtb ./tests/arm32/vexpress-a9/vexpress-a9-guest.dts
- # cp -f ./build/tests/arm32/vexpress-a9/basic/firmware.bin.patched ./build/disk/images/arm32/vexpress-a9/firmware.bin
- # cp -f ./tests/arm32/vexpress-a9/basic/nor_flash.list ./build/disk/images/arm32/vexpress-a9/nor_flash.list
- # cp -f ./tests/arm32/vexpress-a9/xscript/one_guest_vexpress-a9.xscript ./build/disk/boot.xscript
- # genext2fs -B 1024 -b 32768 -d ./build/disk ./build/disk.img
-
- [14. Launch QEMU]
- # qemu-system-arm -M vexpress-a9 -m 512M -display none -serial stdio -kernel build/vmm.bin -dtb build/arch/arm/dts/arm/vexpress-v2p-ca9.dtb -initrd build/disk.img
-
- [15. Kick Guest0 for starting Basic Firmware]
- XVisor# guest kick guest0
-
- [16. Bind to virtual UART0 of Linux Guest]
- XVisor# vserial bind guest0/uart0
-
- [17. Try few commands of Basic firmware or goto next step]
- [guest0/uart0] basic# hi
- [guest0/uart0] basic# hello
- [guest0/uart0] basic# help
-
- [18. Copy linux from NOR flash to RAM and start linux booting from RAM]
- [guest0/uart0] basic# autoexec
- (Note: "autoexec" is a short-cut command)
- (Note: The <xvisor_source_directory>/tests/arm32/vexpress-a9/linux/cmdlist file
- which we have added to guest NOR flash contains set of commands for booting
- linux from NOR flash)
-
- [19. Wait for Linux prompt to come-up and then try out some commands]
- [guest0/uart0] / # ls
-
- [20. Enter character seqence 'ESCAPE+x+q" return to Xvisor prompt]
- [guest0/uart0] / #
-
- (Note: replace all <> brackets based on your workspace)
- (Note: some of the above steps will need to be adapted for other
- types of ARM host)
- (Note: for more info on your desired ARM host refer docs/arm/)
- (Note: you are free to change the ordering of above steps based
- on your workspace)
--
2.25.1

Anup Patel

unread,
Sep 27, 2021, 12:16:10 AM9/27/21
to Xvisor Devel
Applied this patch to the xvisor-next repo.

Regards,
Anup
Reply all
Reply to author
Forward
0 new messages