qemu ppc bsp, which one?

Karel Gardas karel.gardas at centrum.cz
Fri Aug 7 13:45:48 UTC 2020

On 8/6/20 12:36 AM, Karel Gardas wrote:
>>     - rsb's rtems/config/5/bsps does not contain any qemu*.bset. From PPC,
>>     only qoriq_e*.bset are there. I've checked qoriq_e6500_64 in qemu very
>>     lightly but so far no success. If, there is any receipt how to get that
>>     bsp running inside qemu, then I would appreciate it.

It looks like the BSP requires initialization of the board by u-boot.
IMHO qemu probably does it on its own, but still when using u-boot to
boot properly created hello.img as described on:


I'm still getting hang in UART. Anyway, I'm not booting by tftpboot, but
by giving kernel option to qemu:

~/sfw/qemu-4.2.1/bin/qemu-system-ppc64 -s -S ello.img -bios

U-Boot 2019.01 (Mar 04 2019 - 11:07:45 +0100)

CPU:   Unknown, Version: 0.0, (0x00000000)
Core:  e6500, Version: 2.0, (0x80400020)
Clock Configuration:
       CPU0:400  MHz,
       CCB:400  MHz,
       DDR:200  MHz (400 MT/s data rate), LBC: unknown (LCRR[CLKDIV] = 0x00)
L1:    D-cache 32 KiB enabled
       I-cache 32 KiB enabled
DRAM:  2 GiB
L2:    disabled

PCI: base address e0008000
  00:01.0     - 1af4:1000 - Network controller
PCI1: Bus 00 - 00

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Hit any key to stop autoboot:  0
WARNING: adjusting available memory to 30000000
## Booting kernel from Legacy Image at 02000000 ...
   Image Name:   RTEMS
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    62538 Bytes = 61.1 KiB
   Load Address: 00004000
   Entry Point:  00004000
   Verifying Checksum ... OK
## Flattened Device Tree blob at e8000000
   Booting using the fdt blob at 0xe8000000
   Uncompressing Kernel Image ... OK
   Loading Device Tree to 03efc000, end 03ffefff ... OK

And the hang is still the same:

Program received signal SIGINT, Interrupt.
0x0000000000018a58 in ns16550_polled_putchar (base=0x50004f0
<qoriq_uart_context_0>, out=<optimized out>)
534           status = get( port, NS16550_LINE_STATUS);
(gdb) where
#0  0x0000000000018a58 in ns16550_polled_putchar (base=0x50004f0
<qoriq_uart_context_0>, out=<optimized out>)
#1  0x0000000000018914 in output_char (c=<optimized out>) at
#2  0x0000000000009b88 in rtems_putc (c=<optimized out>) at
#3  0x0000000000009a18 in fprintf_putc_write (ptr=<optimized out>,
cookie=<optimized out>, buf=<optimized out>, n=<optimized out>)
#4  0x000000000001ee04 in __sflush_r (ptr=0x50128b0
<_RTEMS_tasks_Objects+1496>, fp=0x501bfd0) at
#5  0x000000000001f03c in _fflush_r (ptr=0x50128b0
<_RTEMS_tasks_Objects+1496>, fp=0x501bfd0) at
#6  0x000000000001cdd0 in __sbprintf (rptr=0x50128b0
<_RTEMS_tasks_Objects+1496>, fp=0x5015b20 <fprintf_putc_file>,
    fmt=0x4041780 "\n\n*** BEGIN OF TEST %s ***\n*** TEST VERSION:
RTEMS_POSIX_API\n*b1545f1461a), Newlib 7947581)\n", ap=0x501c3b0 "") at
#7  0x000000000001a6e4 in _vfprintf_r (data=0x50128b0
<_RTEMS_tasks_Objects+1496>, fp=0x5015b20 <fprintf_putc_file>,
    fmt0=0x4041780 "\n\n*** BEGIN OF TEST %s ***\n*** TEST VERSION:
RTEMS_POSIX_API\n9b1545f1461a), Newlib 7947581)\n", ap=0x501c3b0 "") at
#8  0x00000000000099b8 in fprintf_putc_printer (context=<optimized out>,
fmt=<optimized out>, ap=<optimized out>)
#9  0x0000000000019028 in rtems_printf (printer=<optimized out>,
format=<optimized out>) at
#10 0x0000000000018738 in rtems_test_begin (name=0x40000e0
<rtems_test_name> "HELLO WORLD", state=<optimized out>) at
#11 0x000000000000578c in Init (ignored=<optimized out>) at
#12 0x0000000000010458 in _Thread_Entry_adaptor_numeric
(executing=<optimized out>) at
#13 0x000000000000fbb4 in _Thread_Handler () at
#14 0x000000000000fb10 in ?? ()

Any idea how to proceed with debugging this highly appreciated. The bsp
was configured with:

../rtems/configure --prefix=$HOME/sfw/rtems/5/ --target=powerpc-rtems5
--enable-posix --enable-tests --enable-rtemsbsp="qoriq_e6500_64"

My next options I see from here are:

- experiment with BSP's options: QORIQ_UART_0_ENABLE,

- experiment with Qemu tracing capability and see what Qemu sees on its
UART called/pushed by RTEMS.


More information about the users mailing list