xilinx_zynq_a9_qemu RTEMS6 no console input/output
junkes
junkes at fhi-berlin.mpg.de
Thu Feb 18 20:38:29 UTC 2021
Hallo Christian,
thank you for testing. This is "my procedure":
### Installation RTEMS6 / EPICS7 (xilinx_zynq_a9_qemu)
Installation RTEMS6 and EPICS 7 incl. rtems tools, kernel, bsp and
libbsd
ubuntu 20.04.1
---
**Installing rtems source builder and build rtems-powerpc tools**
mkdir QEMU
cd QEMU
git clone https://github.com/RTEMS/rtems-source-builder.git rsb
cd rsb
git checkout master
git pull
cd rtems
../source-builder/sb-set-builder --prefix=$HOME/QEMU/rtems/6
6/rtems-arm
RTEMS Source Builder - Set Builder, 6 (61dcadee0825)
Command Line: ../source-builder/sb-set-builder
--prefix=/home/junkes/QEMU/rtems/6 6/rtems-arm
Python: 2.7.18 (default, Aug 4 2020, 11:16:42) [GCC 9.3.0]
Build Set: 6/rtems-arm
Build Set: 6/rtems-autotools.bset
Build Set: 6/rtems-autotools-internal.bset
config: tools/rtems-autoconf-2.69-1.cfg
package: autoconf-2.69-x86_64-linux-gnu-1
script: 1: #!/bin/sh
script: 2: # ___build_pre as set up in defaults.py
script: 3: # Save the original path away.
script: 4: export SB_ORIG_PATH=${PATH}
script: 5: # Directories
script: 6: SB_PREFIX="/home/junkes/QEMU/rtems/6"
script: 7: SB_PREFIX_CLEAN=$(echo "/home/junkes/QEMU/rtems/6" |
/bin/sed -e 's/^\///')
script: 8: SB_SOURCE_DIR="/home/junkes/QEMU/rsb/rtems/sources"
script: 9:
SB_BUILD_DIR="/home/junkes/QEMU/rsb/rtems/build/autoconf-2.69-x86_64-linux-gnu-1"
script: 10: # host == build, use build; host != build, host uses host
and build uses build
...
...
installing: expat-2.1.0-x86_64-linux-gnu-1 -> /home/junkes/QEMU/rtems/6
installing: gmp-6.1.0-x86_64-linux-gnu-1 -> /home/junkes/QEMU/rtems/6
installing: arm-rtems6-gdb-e1a808d-x86_64-linux-gnu-1 ->
/home/junkes/QEMU/rtems/6
installing: arm-rtems6-binutils-c0034ac-x86_64-linux-gnu-1 ->
/home/junkes/QEMU/rtems/6
installing: arm-rtems6-gcc-eb15f76-newlib-d4a756f-x86_64-linux-gnu-1 ->
/home/junkes/QEMU/rtems/6
installing: rtems-tools-90342feb4dd63d188ce945adfb0a7694a42a65cd-1 ->
/home/junkes/QEMU/rtems/6
cleaning: expat-2.1.0-x86_64-linux-gnu-1
cleaning: gmp-6.1.0-x86_64-linux-gnu-1
cleaning: arm-rtems6-gdb-e1a808d-x86_64-linux-gnu-1
cleaning: arm-rtems6-binutils-c0034ac-x86_64-linux-gnu-1
cleaning: arm-rtems6-gcc-eb15f76-newlib-d4a756f-x86_64-linux-gnu-1
cleaning: rtems-tools-90342feb4dd63d188ce945adfb0a7694a42a65cd-1
Build Sizes: usage: 9.360GB total: 2.750GB (sources: 796.541MB, patches:
66.634KB, installed 1.972GB)
installing: 6/rtems-arm -> /home/junkes/QEMU/rtems/6
clean staging: 6/rtems-arm
Staging Size: 5.291MB
Build Set: Time 0:34:44.211033
Build qemu-server:
../source-builder/sb-set-builder --prefix=/home/junkes/QEMU/rtems/6
devel/qemu.bset
Add to $HOME/.bashrc:
#RTEMS development
export RTEMS_VERSION=6
export RTEMS_ARCH=arm-rtems${RTEMS_VERSION}
export RTEMS_BSP=xilinx_zynq_a9_qemu
export RTEMS_ROOT=${HOME}/QEMU/rtems/${RTEMS_VERSION}
export PATH=${RTEMS_ROOT}/bin:${PATH}
export RTEMS_MAKEFILE_PATH=${RTEMS_ROOT}/${RTEMS_ARCH}/${RTEMS_BSP}
export RTEMS_SHARE_PATH=${RTEMS_ROOT}/share/rtems${RTEMS_VERSION}
**Installing rtems kernel and bootstrap**
cd; cd QEMU
git clone https://github.com/RTEMS/rtems.git kernel
cd kernel;
git checkout master
git pull
./bootstrap -c && ./rtems-bootstrap
output:
removing automake generated Makefile.in files
removing configure files
removing aclocal.m4 files
RTEMS Bootstrap, 1.0
1/119: autoreconf: configure.ac
2/119: autoreconf: testsuites/configure.ac
3/119: autoreconf: testsuites/smptests/configure.ac
4/119: autoreconf: testsuites/fstests/configure.ac
5/119: autoreconf: testsuites/ada/configure.ac
6/119: autoreconf: testsuites/benchmarks/configure.ac
7/119: autoreconf: testsuites/libtests/configure.ac
8/119: autoreconf: testsuites/rhealstone/configure.ac
9/119: autoreconf: testsuites/psxtests/configure.ac
10/119: autoreconf: testsuites/psxtmtests/configure.ac
11/119: autoreconf: testsuites/sptests/configure.ac
12/119: autoreconf: testsuites/mptests/configure.ac
13/119: autoreconf: testsuites/samples/configure.ac
14/119: autoreconf: testsuites/tmtests/configure.ac
15/119: autoreconf: c/configure.ac
...
110/119: autoreconf: c/src/lib/libbsp/powerpc/mvme3100/configure.ac
111/119: autoreconf: c/src/lib/libbsp/powerpc/haleakala/configure.ac
112/119: autoreconf:
c/src/lib/libbsp/powerpc/mpc8260ads/configure.ac
113/119: autoreconf:
c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac
114/119: autoreconf: c/src/lib/libbsp/powerpc/qoriq/configure.ac
115/119: autoreconf: c/src/lib/libbsp/powerpc/gen5200/configure.ac
116/119: autoreconf: c/src/lib/libbsp/powerpc/qemuppc/configure.ac
117/119: autoreconf: c/src/lib/libbsp/powerpc/virtex/configure.ac
118/119: autoreconf: c/src/lib/libbsp/powerpc/virtex4/configure.ac
119/119: autoreconf: cpukit/configure.ac
Bootstrap time: 0:00:27.754820
cd; cd QEMU
mkdir -p build/b-xilinx_zynq_a9_qemu/
cd build/b-xilinx_zynq_a9_qemu/
../../kernel/configure --prefix=$HOME/QEMU/rtems/6
--target=arm-rtems6 --enable-rtemsbsp=xilinx_zynq_a9_qemu --enable-posix
--enable-c++ --disable-networking --enable-tests
config.log:
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by rtems configure 6.0.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ ../../kernel/configure --prefix=/home/junkes/QEMU/rtems/6
--target=arm-rtems6 --enable-rtemsbsp=xilinx_zynq_a9_qemu --enable-posix
--enable
-c++ --disable-networking --enable-tests
## --------- ##
## Platform. ##
## --------- ##
hostname = Krikkit
uname -m = x86_64
uname -r = 5.8.0-43-generic
uname -s = Linux
uname -v = #49~20.04.1-Ubuntu SMP Fri Feb 5 09:57:56 UTC 2021
/usr/bin/uname -p = x86_64
/bin/uname -X = unknown
...
make -j17 all
make install
rtems-libbsd
cd;cd QEMU
cd rtems-libbsd
git remote -v
origin https://github.com/RTEMS/rtems-libbsd.git (fetch)
origin https://github.com/RTEMS/rtems-libbsd.git (push)
git checkout master
git pull
git checkout 6-freebsd-12
git submodule init
git submodule update rtems_waf
./waf configure --prefix=$HOME/QEMU/rtems/6
--rtems-bsps=arm/xilinx_zynq_a9_qemu --buildset=buildset/default.ini
./waf
./waf install
qemu-testing:
no ouptut and must be killed by other terminal:
$ qemu-system-arm -no-reboot -serial null -serial mon:stdio -net none
-nographic -M xilinx-zynq-a9 -m 256M -kernel
arm-rtems6/c/xilinx_zynq_a9_qemu/testsuites/samples/hello.exe
qemu-system-arm: warning: nic cadence_gem.0 has no peer
qemu-system-arm: warning: nic cadence_gem.1 has no peer
On 2021-02-18 21:10, Christian Mauderer wrote:
> Hello Heinz,
>
> Odd. I just tested it with the current master of rtems, libbsd, rtems
> source builder and qemu and it worked fine. The only thing that I had
> to change compared to your command was adding the "-serial null"
> before the second "-serial mon:stdio". Note that it's "null" and not
> "none" like for network. I made that mistake when trying to adapt your
> command line the first time and received no output.
>
> Beneath that I have an
>
> export QEMU_AUDIO_DRV=none
>
> in my script that starts qemu. I'm not sure why and it seems that it
> is no longer necessary. But maybe you want to try it.
>
> If both don't help:
>
> Which version of rtems are you using and how do you configure your
> BSP? Which version of qemu are you using?
>
> On 18/02/2021 18:21, Heinz Junkes wrote:
>> Thanks, unfortunately I also have the same behavior with -serial null
>> -serial on:stdio.
>> So I use it with RTEMS5 which worked so far.
>>
>> I had found this in the mail list and tried it ;-)
>
> The patch below seems to be for the xilinx_zynqmp* BSP and not for the
> xilinx_zynq_a9_qemu.
>
> Best regards
>
> Christian
>
>>
>> Heinz
>>
>> Qemu's machine definition uses the second UART in the memory map as
>> the
>> primary UART. This follows from the hardware itself where the second
>> UART in the memory map is UART 0. This switches the tester to using
>> the
>> correct UART.
>> ---
>> tester/rtems/testing/bsps/xilinx_zynqmp_ilp32.ini | 2 +-
>> tester/rtems/testing/bsps/xilinx_zynqmp_lp64.ini | 2 +-
>> 2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/tester/rtems/testing/bsps/xilinx_zynqmp_ilp32.ini
>> b/tester/rtems/testing/bsps/xilinx_zynqmp_ilp32.ini
>> index 5ff0e86..35869ed 100644
>> --- a/tester/rtems/testing/bsps/xilinx_zynqmp_ilp32.ini
>> +++ b/tester/rtems/testing/bsps/xilinx_zynqmp_ilp32.ini
>> @@ -35,4 +35,4 @@
>> bsp = xilinx_zynqmp_ilp32
>> arch = aarch64
>> tester = %{_rtscripts}/qemu.cfg
>> -bsp_qemu_opts = %{qemu_opts_base} -serial null -serial mon:stdio
>> -machine xlnx-zcu102 -m 4096
>> +bsp_qemu_opts = %{qemu_opts_base} -serial mon:stdio -machine
>> xlnx-zcu102 -m 4096
>> diff --git a/tester/rtems/testing/bsps/xilinx_zynqmp_lp64.ini
>> b/tester/rtems/testing/bsps/xilinx_zynqmp_lp64.ini
>> index 8db82b6..cd2d268 100644
>> --- a/tester/rtems/testing/bsps/xilinx_zynqmp_lp64.ini
>> +++ b/tester/rtems/testing/bsps/xilinx_zynqmp_lp64.ini
>> @@ -35,4 +35,4 @@
>> bsp = xilinx_zynqmp_lp64
>> arch = aarch64
>> tester = %{_rtscripts}/qemu.cfg
>> -bsp_qemu_opts = %{qemu_opts_base} -serial null -serial mon:stdio
>> -machine xlnx-zcu102 -m 4096
>> +bsp_qemu_opts = %{qemu_opts_base} -serial mon:stdio -machine
>> xlnx-zcu102 -m 4096
>>
>>
>> _______________________________________________
>> users mailing list
>> users at rtems.org
>> http://lists.rtems.org/mailman/listinfo/users
>>
More information about the users
mailing list