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 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel