Name
Setup — Preparing for eCos Development
Overview
In a typical development environment, the VM boots into the RedBoot ROM monitor. eCos applications are configured for RAM startup and then downloaded and run on the board via the debugger arm-eabi-gdb. Preparing the VM therefore usually involves arranging for a suitable RedBoot image to be executed on startup.
Xvisor VM Installation
This section describes how to install RedBoot into an Xvisor guest VM and start it running. The reader should be familiar with Xvisor, how to install it onto a target platform and how, in general, a guest VM is created.
To create an eCos VM under Xvisor, it is necessary to
instantiate a virtual machine, populate it with the
executable of RedBoot, and then set it running. To do this a
number of files are copied to the etc
directory of a RedBoot installation which are used set up a
VM to run eCos. These files are as follows:
evm.dts
- This is a Linux device tree source file. It needs to be compiled into a device tree binary file using the dtc device tree compiler. This file is specific to use on Rockchip-based boards such as the Pine Rockpro64 or M2000.
boot.xscript
- This is a sample Xvisor boot script that instantiates a Linux guest together with a eCos VM running RedBoot. It may be used as it is, or used as a template for your own script.
nor_flash.list
- A list of addresses and file names used to populate the virtual flash in a VM. This defines the software that will run from reset in the VM. In this case the sole entry installs a binary of RedBoot at the start of flash.
install
-
A shell script that automates the installation of a
RedBoot executable into a Xvisor disk image. It
creates the necessary sub-directory in the disk image,
compiles and installs the device tree, RedBoot binary
and flash list. It does not copy the
boot.xscript
file, which may be copied separately if required. Following this, a make should be run in the Xvisor build directory to rebuild the disk image. The image may then be transferred to the target system bootstrap medium.
See the next section, Rebuilding
RedBoot, for an example of using the
install
script to install RedBoot into an
Xvisor VM.
Once the files are installed, Xvisor may be started and the
eCos VM will be executed. Depending on the default setting
for the initial serial connection, and whether the
boot.xscript
file has been copied, you
may see a startup banner from RedBoot similar to the
following:
XVisor# vserial bind evm1/uart0 [evm1/uart0] +No network interfaces found RedBoot(tm) bootstrap and debug environment [ROM] Non-certified release, version UNKNOWN - built 14:58:47, Jan 30 2020 Copyright (C) 2000-2009 Free Software Foundation, Inc. Copyright (C) 2003-2019 eCosCentric Limited The RedBoot bootloader is a component of the eCos real-time operating system. Want to know more? Visit www.ecoscentric.com for everything eCos & RedBoot related. This is free software, covered by the eCosPro Non-Commercial Public License and eCos Public License. You are welcome to change it and/or distribute copies of it under certain conditions. Under the license terms, RedBoot's source code and full license terms must have been made available to you. Redboot comes with ABSOLUTELY NO WARRANTY. Platform: Virtual ARM (CORTEX-A) RAM: 0x40000000-0x42000000 [0x40030000-0x42000000 available] RedBoot>
Rebuilding RedBoot
Typical users should never need to rebuild RedBoot. If you do intend to modify RedBoot then please note that rebuilding it is currently only supported from the Linux command line.
The steps needed to rebuild the ROM version of RedBoot are:
$ mkdir redboot_virtual_rom
$ cd redboot_virtual_rom
$ ecosconfig new virtual_xvisor redboot
$ ecosconfig import $ECOS_REPOSITORY/hal/arm/cortexa/virtual/VERSION
/misc/redboot_ROM.ecm
$ ecosconfig resolve
$ ecosconfig tree
$ make
At the end of the build the install/bin
subdirectory should
contain the file redboot.bin
. This
image can now be installed into an Xvisor boot disk image
using the install script. Assuming the root directory for
Xvisor is in
$XVISOR
the following commands will do
this.
$ cd install $ ./etc/install $XVISOR/disk Install RedBoot in disk image Done $
If required, boot.xscript
may also be
copied into $XVISOR/disk
.
For convenience, eCosPro releases include a prebuilt RedBoot
image as well as the install
subdirectory resulting
from the creation of RedBoot. These are located within the
loaders
sub-directory
of the eCosPro installation, and the install script
may be run from within these subdirectories. For example:
$ cd ecos-4.4.0/loaders/virtual_xvisor/redboot_ROM.install $ ./etc/install $XVISOR/disk Install RedBoot in disk image Done $
It is now necessary to rebuild the Xvisor RAM disk. Exactly how this is done can depend on the target host, how it boots and how that RAM disk is loaded. Usually this involves using genext2fs to make a disk image; usually an Xvisor executable and a device tree are also created. Refer to the directions for installing Xvisor on the host for details.
2024-03-18 | eCosPro Non-Commercial Public License |