Testing of the Raspberry Pi graphic support
Pavel Pisa
pisa at cmp.felk.cvut.cz
Tue Jun 30 23:41:00 UTC 2015
Hello Qiao Yang,
I have prepared testing on RPi B+ hardware last days
I have got to test your RTEMS branch
https://github.com/yangqiao/rtems
I have tried
e89884b add memory table entry for frame buffer (try to cover all possibility, may be larger afterward if it's not enough)
and then
b560cb2 refactor outch scratch
which has been left in my local copy from the previous fetch.
I have been able to build RTEMS as well as graphic libraries.
I have tried to build my standard shell test code and some graphic
test.
My setup
host system Debian Linux amd64
-------------------------------------------------------------
tools - local build
arm-rtems4.11-gcc (GCC) 4.9.2 with newlib newlib-2.2.0.20150423, binutils 2.24
Configured
with: ../../../src/gcc-4.9/configure --target=arm-rtems4.11 --prefix=/usr --build=x86_64-pc-linux-gnu --enable-languages=c,c++ --disable-libstdcxx-pch --with-gnu-ld --with-gnu-as --enable-threads --enable-target-optspace --with-system-zlib --verbose --disable-nls --without-included-gettext --disable-win32-registry --with-newlib --enable-plugin --enable-newlib-io-c99-formats --enable-version-specific-runtime-libs --enable-newlib-iconv --disable-lto
used successfully for LPC4078 and LPC1778 RTEMS
-------------------------------------------------------------
RTEMS configured
../../../git/rtems-yangqiao/configure --target=arm-rtems4.11 --prefix=/opt/rtems4.11 \
--enable-rtems-inlines --disable-multiprocessing --enable-cxx \
--enable-rdbg --enable-maintainer-mode --enable-tests=samples \
--enable-networking --enable-posix --disable-itron --disable-ada \
--disable-expada --disable-multilib --disable-docs \
--enable-rtemsbsp="raspberrypi"
-------------------------------------------------------------
Raspberry Pi direct boot by config.txt options
kernel=appfoo.bin
generated by
arm-rtems4.11-objcopy -R -S -O binary "$EXE_NAME" "$EXE_NAME.bin"
-------------------------------------------------------------
Raspberry Pi boot over U-boot and extlinux/extlinux.conf
TIMEOUT 100
DEFAULT default
MENU TITLE Boot menu
LABEL RTEMS appfoo
MENU LABEL RTEMS appfoo
LINUX appfoo.img
FDTDIR .
Image generated by
arm-rtems4.11-objcopy -R -S -O binary "$EXE_NAME" "$EXE_NAME.bin" || exit 1
cat "$EXE_NAME.bin" | gzip -9 >"$EXE_NAME.gz"
mkimage \
-A arm -O rtems -T kernel -a 0x00008000 -e 0x00008000 -n "RTEMS" \
-d "$EXE_NAME.gz" "$EXE_NAME.img"
-------------------------------------------------------------
The monitor resolution has been correctly obtained and printed for all combinations
but then there has been no progress/output on serial port even on HDMI output
Startup log for U-boot case
-------------------------------------------------------------
U-Boot 2015.04-rc2-gc5ec3a2 (Mar 05 2015 - 21:46:11)
DRAM: 448 MiB
WARNING: Caches not enabled
RPI Model B+
MMC: bcm2835_sdhci: 0
reading uboot.env
In: serial
Out: lcd
Err: lcd
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
reading /extlinux/extlinux.conf
2176 bytes read in 20 ms (105.5 KiB/s)
Boot menu
1: Linux 3.18.8-rt2+ with Overlay
2: Linux 3.18.8-rt2+ with Aufs
3: Linux 3.18.8-rt2+ RW root
4: Linux 3.18.8-rt2+ NFS BusyBox
5: Linux 3.18.8-rt2+ NFS Overlay
6: Linux 3.18.8-rt2+ NFS RW
7: RTEMS appfoo
8: RTEMS demo_suitk
9: Boot by localcmd
Enter choice: 8
8: RTEMS demo_suitk
Retrieving file: /extlinux/demo_suitk.img
reading /extlinux/demo_suitk.img
375420 bytes read in 89 ms (4 MiB/s)
Retrieving file: /extlinux/./bcm2835-rpi-b-plus.dtb
reading /extlinux/./bcm2835-rpi-b-plus.dtb
4702 bytes read in 28 ms (163.1 KiB/s)
## Booting kernel from Legacy Image at 01000000 ...
Image Name: RTEMS
Image Type: ARM RTEMS Kernel Image (gzip compressed)
Data Size: 375356 Bytes = 366.6 KiB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
## Transferring control to RTEMS (at address 00008000) ...
[+] framebuffer initialize
width:1680 height:1050
[+] framebuffer use display resolution 1680*1050
[+] write to mailbox
[+] read mailbox
[#] Done read mailbox, return val: 0
[#]FrameBufferInfo: width : 1680
[#]FrameBufferInfo: height : 1050
[#]FrameBufferInfo: vWidth : 1680
[#]FrameBufferInfo: vHeight : 1050
[#]FrameBufferInfo: pitch : 6720
[#]FrameBufferInfo: bitDepth : 32
[#]FrameBufferInfo: x_offset : 0
[#]FrameBufferInfo: y_offset : 0
[#]FrameBufferInfo: pointer : 0
[#]FrameBufferInfo: size : 0
[#]_RPI_initVideo: maxCol : 210
[#]_RPI_initVideo: maxRow : 65
-------------------------------------------------------------
Please, report more about actual state of your work
and what (which examples, test code) should work or if I have
done some configuration incorrect way.
I suggest to keep console on serial port and allow framebuffer
testing through registered device.
As for Microwindows build for Raspberry Pi, I have to disable
mouse and keyboard build because it doesnot build with micro
input driver (UID) RTEMS driver enabled in my Raspberry Pi config.
diff --git a/src/drivers/Objects.rules b/src/drivers/Objects.rules
index 297826c..5802748 100644
--- a/src/drivers/Objects.rules
+++ b/src/drivers/Objects.rules
@@ -253,8 +253,8 @@ MW_CORE_OBJS += $(MW_DIR_OBJ)/drivers/kbd_pipe.o
endif
ifeq ($(ARCH), RTEMS)
-MW_CORE_OBJS += $(MW_DIR_OBJ)/drivers/kbd_rtems.o
-MW_CORE_OBJS += $(MW_DIR_OBJ)/drivers/mou_rtems.o
+MW_CORE_OBJS += $(MW_DIR_OBJ)/drivers/kbd_null.o
+MW_CORE_OBJS += $(MW_DIR_OBJ)/drivers/mou_null.o
endif # RTEMS architecture
ifeq ($(LIRCKBD2), Y)
I would worth to collect somewhere all RTEMS on RPi bare
boot and U-boot options and configurations.
I would suggest to put it into RTEMS Wiki, i.e
https://devel.rtems.org/wiki/TBR/BSP/RaspberryPi
if no better name is found.
Best wishes,
Pavel
More information about the devel
mailing list