[PATCHv2/RFC 0/8] i386 VESA framebuffer support
Jan Dolezal
dolezj21 at fel.cvut.cz
Thu Nov 20 14:00:25 UTC 2014
Framebuffer driver for i386 PC686BSP utilizing VESA BIOS EXTENSIONS
to initialize graphics mode during startup of RTEMS executive.
Temporary switch to realmode is used for Video BIOS invocation.
The implementation has been tested with microwindows from RTEMS Graphics
Toolkit using QEMU {cirrus, std} and on real hardware - Intel Crestline
integrated graphic, NVidia GeForce 6600GT, AMD Radeon HD 7770 and some
other cards.
changes since v1:
- header namespace: <bsptblsizes.h> -> <bsp/tblsizes.h> [PATCH 1/8]
- names and implementation of converting functions between realmode
pointer and physical address and back [PATCH 2/8]
- GDTR manipulation functions parameters changed to use explicit
width types [PATCH 3/8]
- using macro RTEMS_INLINE_ROUTINE where applicable
- defined macro RTEMS_COMPILER_PACKED_ATTRIBUTE [PATCH 4/8]
- i386_raw_gdt_entry() present bit used as protection from using
entry if it is not completely written [PATCH 5/8]
- renamed realmode interface related files from int16* to realmode_int*
[PATCH 6/8]
- renamed and merged functions for obtaining realmode buffer
from *primary_buffer* to *default_buffer* [PATCH 6/8]
- edid.h - more portable - removed bitfields, using only byte size types
- dropped support for EDID v2 since it is deprecated
by v1.3 (2/2000) and may appear only as an extension
according to E-EDID (7/2006)
[PATCH 7/8]
- struct modeParams typedefed [PATCH 8/8]
changes proposed by and applied thanks to Gedare Bloom and Pavel Pisa
Jan Dolezal (8):
i386/pc386: configurable size of descriptor tables
score: i386: functions converting real mode pointer to physical
address and back
i386: GDTR manipulation functions parameters changed to use explicit
width types
cpukit: basedefs: macro for packed attribute
i386: global descriptor table manipulation functions
i386/shared/realmode_int: real mode interrupt interface
i386/pc386/include: header files for VESA BIOS EXTENSIONS and VESA
Extended Display Identification Data
i386/pc386: VESA based frame buffer utilizing real mode interrupt 10h
c/src/lib/libbsp/i386/pc386/Makefile.am | 10 +
c/src/lib/libbsp/i386/pc386/configure.ac | 18 +
c/src/lib/libbsp/i386/pc386/console/fb_vesa_rm.c | 858 +++++++++++++++++++++
c/src/lib/libbsp/i386/pc386/include/bsp.h | 6 +-
c/src/lib/libbsp/i386/pc386/include/edid.h | 513 ++++++++++++
c/src/lib/libbsp/i386/pc386/include/fb_vesa.h | 131 ++++
c/src/lib/libbsp/i386/pc386/include/tblsizes.h | 25 +
c/src/lib/libbsp/i386/pc386/include/vbe3.h | 463 +++++++++++
c/src/lib/libbsp/i386/pc386/preinstall.am | 22 +
c/src/lib/libbsp/i386/pc386/start/start.S | 8 +
c/src/lib/libbsp/i386/pc386/startup/ldsegs.S | 18 +-
c/src/lib/libbsp/i386/shared/irq/idt.c | 156 +++-
.../libbsp/i386/shared/realmode_int/realmode_int.c | 406 ++++++++++
.../libbsp/i386/shared/realmode_int/realmode_int.h | 85 ++
c/src/lib/libcpu/i386/cpu.h | 95 ++-
c/src/lib/libcpu/i386/idtr.S | 6 +-
cpukit/score/cpu/i386/cpu_asm.S | 43 ++
cpukit/score/cpu/i386/rtems/score/i386.h | 32 +
cpukit/score/include/rtems/score/basedefs.h | 10 +
19 files changed, 2853 insertions(+), 52 deletions(-)
create mode 100644 c/src/lib/libbsp/i386/pc386/console/fb_vesa_rm.c
create mode 100644 c/src/lib/libbsp/i386/pc386/include/edid.h
create mode 100644 c/src/lib/libbsp/i386/pc386/include/fb_vesa.h
create mode 100644 c/src/lib/libbsp/i386/pc386/include/tblsizes.h
create mode 100644 c/src/lib/libbsp/i386/pc386/include/vbe3.h
create mode 100644 c/src/lib/libbsp/i386/shared/realmode_int/realmode_int.c
create mode 100644 c/src/lib/libbsp/i386/shared/realmode_int/realmode_int.h
--
1.9.1
More information about the devel
mailing list