[PATCH v2 0/7] Raspberry Pi VideoCore support for console on HDMI output

ppisa4lists at pikron.com ppisa4lists at pikron.com
Sun May 22 00:13:03 UTC 2016

From: Pavel Pisa <ppisa at pikron.com>

The series updates and cleans YANG Qiao GSoC 2015 work for actual
RTEMS 4.12 development version.

The changes require that VideoCore firmware is running even
if video output is not used because mailbox based communication
with VideoCore is used to obtain SD command line parameters
passed to the RTEMS application image and to limit RTEMS RAM
workarea to not go beyond VideoCore assigned memory start.

The two options configurable by "cmdline.txt" file read
and made accessible by VideoCore firmware are present

     possible values
         auto  - select mode automatically according to the connected monitor
         off  (or none) - disable video support
         width x height with optional bpp - for example 800x600 or 800x600-32

     fbcons - redirect RTEMS console output to the connected monitor
         if --video= is not specified/enabled or monitor is not detected
         then output stays to be connected to the UART

Typical "cmdline.txt" content for testing

  --video=auto --console=fbcons

WARNING: the used VideoCore service for command line arguments retrieval
         returns only these arguments setup in "cmdline.txt".
         Arguments provided to U-boot or other loader are ignored.

Code has been tested or Raspberry Pi 1 with U-boot + TFTP and with direct
boot from SD card with and without monitor connected. Code tested to
not break standard serial console output for Raspberry Pi 2 on QEMU.
Graphic output under QEMU results write abort because QEMU reported
framebuffer size is not completely accessible, only 400 rows from 640x480
reported screen works for the given mode.

[PATCH v2] Updates to v2 version
  - formatting of newly introduced files normalized by rtems.uncrustify
  - incorrect clean after release spot by Gedare Bloom corrected
  - HDMI monitor presence test commented (solution is not ideal but works
    and if some more straightforward solution is found in future,
    then it can be replaced)
  - atomic flag used to ensure framebuffer single open only
    is left in a place
  - more cleanups and adjustment of compatibility with RPi2

Pavel Pisa (4):
  arm/raspberrypi: cmdline enhancement and early access workaround.
  arm/raspberrypi: ensure that correct RPI_PERIPHERAL_BASE is provided
    by raspberrypi.h
  arm/raspberrypi: Raspberry Pi v2 ALLOCATE_BUFFER VC4 operation returns
    direct address.
  arm/raspberrypi: move MMU in front of application image to respect
    variable memory size.

YANG Qiao (3):
  arm/raspberrypi: add VideoCore framebuffer without initialization
  arm/raspberrypi: add video outchar support for rpi bsp
  arm/raspberrypi: add fbcons support for rpi bsp

 c/src/lib/libbsp/arm/raspberrypi/Makefile.am       |   13 +-
 .../arm/raspberrypi/console/console-config.c       |   12 +-
 .../arm/raspberrypi/console/console_select.c       |  113 +
 c/src/lib/libbsp/arm/raspberrypi/console/fb.c      |  409 ++
 c/src/lib/libbsp/arm/raspberrypi/console/fbcons.c  |  177 +
 c/src/lib/libbsp/arm/raspberrypi/console/fbcons.h  |   47 +
 .../lib/libbsp/arm/raspberrypi/console/font_data.h | 4639 ++++++++++++++++++++
 c/src/lib/libbsp/arm/raspberrypi/console/outch.c   |  463 ++
 c/src/lib/libbsp/arm/raspberrypi/gpio/rpi-gpio.c   |    1 +
 c/src/lib/libbsp/arm/raspberrypi/include/bsp.h     |    9 +
 .../libbsp/arm/raspberrypi/include/raspberrypi.h   |    1 +
 c/src/lib/libbsp/arm/raspberrypi/include/rpi-fb.h  |   54 +
 c/src/lib/libbsp/arm/raspberrypi/misc/mailbox.c    |    1 +
 c/src/lib/libbsp/arm/raspberrypi/misc/timer.c      |    1 +
 c/src/lib/libbsp/arm/raspberrypi/misc/vc.c         |    4 +
 c/src/lib/libbsp/arm/raspberrypi/preinstall.am     |    8 +
 .../arm/raspberrypi/startup/bspgetworkarea.c       |   77 +
 .../libbsp/arm/raspberrypi/startup/bspstarthooks.c |    4 +
 c/src/lib/libbsp/arm/raspberrypi/startup/cmdline.c |   12 +-
 c/src/lib/libbsp/arm/raspberrypi/startup/linkcmds  |    6 +-
 c/src/lib/libbsp/arm/raspberrypi/startup/mminit.c  |   31 +
 21 files changed, 6071 insertions(+), 11 deletions(-)
 create mode 100644 c/src/lib/libbsp/arm/raspberrypi/console/console_select.c
 create mode 100644 c/src/lib/libbsp/arm/raspberrypi/console/fb.c
 create mode 100644 c/src/lib/libbsp/arm/raspberrypi/console/fbcons.c
 create mode 100644 c/src/lib/libbsp/arm/raspberrypi/console/fbcons.h
 create mode 100644 c/src/lib/libbsp/arm/raspberrypi/console/font_data.h
 create mode 100644 c/src/lib/libbsp/arm/raspberrypi/console/outch.c
 create mode 100644 c/src/lib/libbsp/arm/raspberrypi/include/rpi-fb.h
 create mode 100644 c/src/lib/libbsp/arm/raspberrypi/startup/bspgetworkarea.c
 create mode 100644 c/src/lib/libbsp/arm/raspberrypi/startup/mminit.c


More information about the devel mailing list