The work areas (RTEMS work space and C program heap) will be initialized
now in a separate step and are no longer part of
rtems_initialize_data_structures(). Initialization is performed with
tables of Heap_Area entries. This allows usage of scattered memory
areas present on various small scale micro-controllers.
The sbrk() support API changes also. The bsp_sbrk_init() must now deal
with a minimum size for the first memory chunk to take the configured
work space size into account.
- A typo prevents if_smc.c from being built when configured;
- The argument passed to the interrupt handler was incorrect and the
addition of support for RTEMS_INTERRUPT_SHARED exposed it;
- A "#ifdef DEBUG" is supposed to be "#if DEBUG" since 0 is supposed to
make it quiet.
The user has to explicitly enable this driver, choosing
it over the existing (and lame) CGA frame buffer driver
using USE_CIRRUS_GD5446=1 on the configure command line.
Implementation is tested to work on QEMU simulator only.
QEMU offers this hardware by default for PC platform but
it can be requested by "-vga cirrus" option for other PCI
aware systems in development/next QEMU releases as well.
Next sources have been used for driver implementation:
- RTEMS fb_vga.c - Rosimildo da Silva ( rdasilva@connecttel.com )
- Cirrus xf86 driver - used as VGA hardware setup documentation
- CL-GD5446 Technical Reference Manual, 1996, Second Edition
fb_vga.c has to be replaced by fb_cirrus.c in
rtems/c/src/lib/libbsp/i386/pc386/Makefile.am
to test the driver now. We expect to discus and include driver
section mechanism after driver testing.
Patch version 2:
- comments style updated according to Joel Sherrill review
- use static for variables and functions to compile without warnings
Signed-off-by: Alexandru-Sever Horin <alex.sever.h@gmail.com>
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>