These two patches enable better support for text highlighting and
colors when using the "coreboot native vga" seavgabios option rom. It
is a bit of a hack, but seems to improve things in a couple of boot
loaders I tested.
This is also at (along with the previous usb series):
https://github.com/KevinOConnor/seabios/tree/testing
-Kevin
Kevin O'Connor (2):
vgabios: Add support for reading framebuffer in "direct" mode
vgabios: Add support handling text mode attributes while in graphics
…
[View More] mode
vgasrc/Kconfig | 6 ++++++
vgasrc/vgafb.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
2 files changed, 61 insertions(+), 8 deletions(-)
--
1.9.3
[View Less]
This series reworks the internal 16bit <-> 32bit trampolining that the
SeaBIOS code uses during runtime, and it adds support for using System
Management Mode (SMM) for performing a more correct switch to 32bit
mode during runtime. Currently, QEMU v2.1 in TCG mode is needed in
order for the SMM handler to be utilized.
This series was inspired by the desire to move more hardware
processing to 32bit mode. This change, however, does not move any
additional code to 32bit. The series may …
[View More]still be useful though when
running some existing 32bit drivers (eg, ahci and xhci).
The series is also available at:
https://github.com/KevinOConnor/seabios/tree/testing
With the completion of this series, the full 32bit hardware branch is
down to only three patches. For reference, that branch is at:
https://github.com/KevinOConnor/seabios/tree/testing-32bit-drivers
-Kevin
Kevin O'Connor (12):
Move stack hop code below call32/call16 code in stacks.c
Add need_hop_back() call that determines if stack_hop_back is needed
Update invoke_mouse_handler() to use need_hop_back()
Update stack_hop_back() to jump to 16bit mode if called in 32bit mode.
Track when entering via call32() and use the same mode for
stack_hop_back()
Simplify farcall16 code
Update reset() to use call16_back()
build: Support declaring 32bit C functions that must reside in the
f-segment
Move call16() functions from romlayout.S to inline assembler in
stacks.c
Break up call32() into call32() and call32_sloppy()
Fully restore 16bit state during call16_sloppy()
Implement call32 mechanism using SMIs.
scripts/layoutrom.py | 16 +-
src/Kconfig | 4 +
src/fw/smm.c | 46 ++++-
src/mouse.c | 15 +-
src/romlayout.S | 42 -----
src/stacks.c | 510 ++++++++++++++++++++++++++++++++++++++-------------
src/stacks.h | 23 ++-
src/types.h | 4 +
8 files changed, 477 insertions(+), 183 deletions(-)
--
1.9.3
[View Less]
Dear SeaBIOS folks,
testing QEMU with coreboot built from commit a296f9e3 (Kconfig: Allow
native vga init to be selectable for SeaBIOS payload) [1] and SeaBIOS
and SeaVGABIOS (selected in coreboot’s Payload menu), SeaBIOS does not
display any graphics although the console says, it has initialized it.
$ build/cbfstool build/coreboot.rom print
coreboot.rom: 256 kB, bootblocksize 944, romsize 262144, offset 0x0
alignment: 64 bytes, architecture: x86
Name …
[View More] Offset Type Size
cmos_layout.bin 0x0 cmos_layout 1160
fallback/romstage 0x4c0 stage 18528
fallback/ramstage 0x4d80 stage 62865
fallback/payload 0x14380 payload 55783
vgaroms/seavgabios.bin 0x21dc0 raw 27136
config 0x28800 raw 3533
(empty) 0x29600 null 91608
$ qemu-system-i386 -version
QEMU emulator version 2.1.2 (Debian 2.1+dfsg-5), Copyright (c) 2003-2008 Fabrice Bellar
$ qemu-system-i386 -bios build/coreboot.rom -hda /dev/zero -serial stdio
[…]
Scan for VGA option rom
Running option rom at c000:0003
pmm call arg1=0
Running option rom at c980:0003
Start SeaVGABIOS (version rel-1.7.5-0-ge51488c-20141004_165959-my-qemu-system)
enter vga_post:
a=00000000 b=0000ffff c=00000000 d=0000ffff ds=0000 es=f000 ss=0000
si=00000000 di=00007020 bp=00000000 sp=00006e1a cs=f000 ip=d32d f=0000
coreboot vga init
Found FB @ fc000000 800x600 with 32 bpp (3200 stride)
set VGA mode 140
Attempting to allocate VGA stack via pmm call to f000:d3a2
pmm call arg1=0
VGA stack allocated at ef390
Turning on vga text mode console
set VGA mode 3
SeaBIOS (version rel-1.7.5-0-ge51488c-20141004_165950-my-qemu-system)
[…]
Please find all files attached. I do not attach the 256 kB firmware
image as the list limit is just 140 kB.
Thanks,
Paul
[1] http://review.coreboot.org/6891
[2] http://www.coreboot.org/QEMU
[View Less]