Hi Gerd,
I was curious to see what the "sercon" stuff would look like in
SeaVGABIOS instead of in SeaBIOS. So, I put together a quick
prototype. The code is also at:
https://github.com/KevinOConnor/seabios/tree/testing
This is just a proof-of-concept thing - I didn't implement any of the
useful features you have in your series. Specifically, it doesn't
unclutter the serial output, doesn't implement cp437 translations, and
doesn't handle multi-byte input. It does does have basic input,
…
[View More]output, and split-output handling though.
I'm not sure if this is better than a SeaBIOS implementation. I
suspect it will be easier to handle vga quirks this way. However,
handling exotic serial outputs (eg, mmio and usb based) would be
better suited in SeaBIOS.
Thoughts?
-Kevin
Kevin O'Connor (3):
sercon: Initial support for VGA emulation over serial port
sercon: Add basic keyboard input support
sercon: Support "split output" mode
Makefile | 2 +-
vgasrc/Kconfig | 6 +
vgasrc/sercon.c | 356 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
vgasrc/vgabios.c | 15 ++-
vgasrc/vgabios.h | 5 +
vgasrc/vgaentry.S | 7 ++
vgasrc/vgahw.h | 72 ++++++++++-
vgasrc/vgainit.c | 12 +-
vgasrc/vgautil.h | 24 ++++
9 files changed, 482 insertions(+), 17 deletions(-)
create mode 100644 vgasrc/sercon.c
--
2.5.5
[View Less]
This series add several fixes to coreboot's framebuffer implementation
and it main purpose is to fix Microsoft's Windows as supported OS.
Tests showed that it also fixes ISOLINUX and gfxboot.
The series fixes the following issues:
* Windows shows no image in text-mode
* Windows NTLDR/bootmgr shows no image in VESA mode
* Windows shows no image in VESA mode
* ISOLINUX requires VESA mode 640x480
* GFXBOOT requires 32bpp VESA modes
I was able to boot Windows with the following configurations:
*…
[View More] using VgaSave driver in text-mode with a
fixed display resolution of 640x480 at 4Bpp.
* using VgaSave driver in VESA mode and
set a display resolution up to 1600x1200 at 24Bpp.
* using VgaSave driver in Windows's "Safe Mode" in VESA mode and
set a display resolution up to 1600x1200 at 24Bpp.
Most likely other VESA compatible bootloaders and operating systems
will be fixed, too.
Changes since v2:
* Disable VESA modes in cbvga_init
* No Intel or Windows specific patches
* Update commit message of "Assume VGA compatible GPU in text-mode"
* Tested and dokumented more bootloaders
Patrick Rudolph (5):
SeaVGABios/cbvga: Advertise correct pixel format
SeaVGABios/cbvga: Assume VGA compatible GPU in text-mode
SeaVGABIOS/vbe: Query driver for scanline pitch v2
SeaVGABios/cbvga: Use active mode to clear screen
SeaVGABios/cbvga: Advertise compatible VESA modes
vgasrc/cbvga.c | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
vgasrc/stdvga.c | 5 ++
vgasrc/vbe.c | 2 +-
vgasrc/vgahw.h | 6 +++
vgasrc/vgautil.h | 2 +
5 files changed, 144 insertions(+), 7 deletions(-)
--
2.9.3
[View Less]
================================================================
KVM Forum 2017: Call For Participation
October 25-27, 2017 - Hilton Prague - Prague, Czech Republic
(All submissions must be received before midnight June 15, 2017)
=================================================================
KVM Forum is an annual event that presents a rare opportunity
for developers and users to meet, discuss the state of Linux
virtualization technology, and plan for the challenges ahead.
We invite you …
[View More]to lead part of the discussion by submitting a speaking
proposal for KVM Forum 2017.
At this highly technical conference, developers driving innovation
in the KVM virtualization stack (Linux, KVM, QEMU, libvirt) can
meet users who depend on KVM as part of their offerings, or to
power their data centers and clouds.
KVM Forum will include sessions on the state of the KVM
virtualization stack, planning for the future, and many
opportunities for attendees to collaborate. As we celebrate ten years
of KVM development in the Linux kernel, KVM continues to be a
critical part of the FOSS cloud infrastructure.
This year, KVM Forum is joining Open Source Summit in Prague,
Czech Republic. Selected talks from KVM Forum will be presented on
Wednesday October 25 to the full audience of the Open Source Summit.
Also, attendees of KVM Forum will have access to all of the talks from
Open Source Summit on Wednesday.
http://events.linuxfoundation.org/cfp
Suggested topics:
* Scaling, latency optimizations, performance tuning, real-time guests
* Hardening and security
* New features
* Testing
KVM and the Linux kernel:
* Nested virtualization
* Resource management (CPU, I/O, memory) and scheduling
* VFIO: IOMMU, SR-IOV, virtual GPU, etc.
* Networking: Open vSwitch, XDP, etc.
* virtio and vhost
* Architecture ports and new processor features
QEMU:
* Management interfaces: QOM and QMP
* New devices, new boards, new architectures
* Graphics, desktop virtualization and virtual GPU
* New storage features
* High availability, live migration and fault tolerance
* Emulation and TCG
* Firmware: ACPI, UEFI, coreboot, U-Boot, etc.
Management and infrastructure
* Managing KVM: Libvirt, OpenStack, oVirt, etc.
* Storage: Ceph, Gluster, SPDK, etc.r
* Network Function Virtualization: DPDK, OPNFV, OVN, etc.
* Provisioning
===============
SUBMITTING YOUR PROPOSAL
===============
Abstracts due: June 15, 2017
Please submit a short abstract (~150 words) describing your presentation
proposal. Slots vary in length up to 45 minutes. Also include the proposal
type -- one of:
- technical talk
- end-user talk
Submit your proposal here:
http://events.linuxfoundation.org/cfp
Please only use the categories "presentation" and "panel discussion"
You will receive a notification whether or not your presentation proposal
was accepted by August 10, 2017.
Speakers will receive a complimentary pass for the event. In the instance
that case your submission has multiple presenters, only the primary speaker for a
proposal will receive a complimentary event pass. For panel discussions, all
panelists will receive a complimentary event pass.
TECHNICAL TALKS
A good technical talk should not just report on what has happened over
the last year; it should present a concrete problem and how it impacts
the user and/or developer community. Whenever applicable, focus on
work that needs to be done, difficulties that haven't yet been solved,
and on decisions that other developers should be aware of. Summarizing
recent developments is okay but it should not be more than a small
portion of the overall talk.
END-USER TALKS
One of the big challenges as developers is to know what, where and how
people actually use our software. We will reserve a few slots for end
users talking about their deployment challenges and achievements.
If you are using KVM in production you are encouraged submit a speaking
proposal. Simply mark it as an end-user talk. As an end user, this is a
unique opportunity to get your input to developers.
HANDS-ON / BOF SESSIONS
We will reserve some time for people to get together and discuss
strategic decisions as well as other topics that are best solved within
smaller groups.
These sessions will be announced during the event. If you are interested
in organizing such a session, please add it to the list at
http://www.linux-kvm.org/page/KVM_Forum_2017_BOF
Let people you think who might be interested know about your BOF, and encourage
them to add their names to the wiki page as well. Please try to
add your ideas to the list before KVM Forum starts.
PANEL DISCUSSIONS
If you are proposing a panel discussion, please make sure that you list
all of your potential panelists in your the abstract. We will request full
biographies if a panel is accepted.
===============
HOTEL / TRAVEL
===============
This year's event will take place at the Hilton Prague.
For information on discounted room rates for conference attendees
and on other hotels close to the conference, please visit
http://events.linuxfoundation.org/events/kvm-forum/attend/hotel-travel.
===============
IMPORTANT DATES
===============
Submission deadline: June 15, 2017
Notification: August 10, 2017
Schedule announced: August 17, 2017
Event dates: October 25-27, 2017
Thank you for your interest in KVM. We're looking forward to your
submissions and seeing you at the KVM Forum 2017 in October!
-your KVM Forum 2017 Program Committee
Please contact us with any questions or comments at
kvm-forum-2017-pc(a)redhat.com
[View Less]
On Thu, May 11, 2017 at 11:22:02PM +0000, Xu, Anthony wrote:
> > SeaBIOS has a couple of different methods to accomplish this mode
> > switching - it can directly switch modes (C16_BIG switch) or it can
> > use a helper in SMM mode to perform the switch (C16_SMM). The
> > preferred method is C16_SMM as C16_BIG isn't available in VM86 mode
> > and it also clobbers the 16bit segment registers.
>
> Hi Kevin,
>
> Why does SeaBios use VM86 mode?
As Paolo …
[View More]mentioned, SeaBIOS doesn't use it, but it must support
callers that use it.
> vtx supports real mode long time ago.
>
> C16_SMM is slow because it causes several extra switches between VM and QEMU.
> I would prefer C16_BIG for better performance.
> Does SeaBios know if it runs in real mode or VM86 mode?
> Can SeaBios choose C16_SMM/C16_BIG based on VCPU mode?
Yes, SeaBIOS could use the smsw instruction (see x86.h:cr0_vm86_read)
to check if it is in VM86 mode. Using C16_BIG would still clobber the
segment registers, but it might be worth that risk to avoid the extra
overhead of C16_SMM.
-Kevin
[View Less]
On 12/05/2017 01:22, Xu, Anthony wrote:
>> SeaBIOS has a couple of different methods to accomplish this mode
>> switching - it can directly switch modes (C16_BIG switch) or it can
>> use a helper in SMM mode to perform the switch (C16_SMM). The
>> preferred method is C16_SMM as C16_BIG isn't available in VM86 mode
>> and it also clobbers the 16bit segment registers.
>
> Hi Kevin,
>
> Why does SeaBios use VM86 mode?
SeaBIOS doesn't, but for example …
[View More]old DOS extenders uses it. You can run
Windows 95 inside SeaBIOS.
Paolo
> vtx supports real mode long time ago.
>
> C16_SMM is slow because it causes several extra switches between VM and QEMU.
> I would prefer C16_BIG for better performance.
> Does SeaBios know if it runs in real mode or VM86 mode?
> Can SeaBios choose C16_SMM/C16_BIG based on VCPU mode?
>
>
> Thanks,
> Anthony
>
[View Less]
On Wed, May 10, 2017 at 07:28:44PM +0000, Xu, Anthony wrote:
> > From: Kevin O'Connor [mailto:kevin@koconnor.net]
> > On Tue, May 09, 2017 at 08:39:07PM +0000, Xu, Anthony wrote:
> > > I dig into seebios code, and found ahci_process_op is called with A20 off,
> > >
> > > The call trace is,
> > > process_op_16->process_op_both->call32->call32_smm->process_op_32-
> > >ahci_process_op
> > >
> > > call32_smm …
[View More]calls call32_prep, but because the method is C16_SMM, A20 is
> > not enabled in call32_prep.
> > > ahci_process_op is called with A20 off.
> >
> > As I understand it, entering System Managament Mode (SMM) should
> > automatically enable A20, so it should not be necessary for call32_smm
> > to enable it. Are you sure the issue is related to A20 instead of
> > some other issue with SMM?
>
> I'm pretty sure the issue is related to A20, I'm not familiar with Seabios code,
> I'm not sure why call32 needs to call32_smm. If my understanding is correct,
> VCPU is not in SMM mode at the time.
As background, seabios must support disk read/write requests when
the x86 processor is in 16bit mode. There's some info on the modes
seabios supports at: https://www.seabios.org/Memory_Model
Unfortunately, some disk controllers can only be controlled when the
processor is in 32bit mode - ahci is an example of this. So, to
service these calls, seabios must switch from 16bit mode to 32bit
mode, perform the disk operation, and then return to 16bit mode.
SeaBIOS has a couple of different methods to accomplish this mode
switching - it can directly switch modes (C16_BIG switch) or it can
use a helper in SMM mode to perform the switch (C16_SMM). The
preferred method is C16_SMM as C16_BIG isn't available in VM86 mode
and it also clobbers the 16bit segment registers.
If you don't want to use C16_SMM, you can turn off CONFIG_CALL32_SMM
via "make menuconfig".
It's still not clear to me why C16_SMM doesn't work though - as I
think it should have saved and restored the A20 flag.
-Kevin
[View Less]
On Tue, May 09, 2017 at 08:39:07PM +0000, Xu, Anthony wrote:
> Hi All,
>
> I recently met an issue, I can't boot my centos guest in below scenarios.
>
> I disabled kvmvapic by
>
> diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c
> index c3829e3..52be2b0 100644
> --- a/hw/intc/apic_common.c
> +++ b/hw/intc/apic_common.c
> @@ -440,7 +440,7 @@ static const VMStateDescription vmstate_apic_common = {
> static Property apic_properties_common[] = {
…
[View More]> DEFINE_PROP_UINT8("version", APICCommonState, version, 0x14),
> DEFINE_PROP_BIT("vapic", APICCommonState, vapic_control, VAPIC_ENABLE_BIT,
> - true),
> + false),
> DEFINE_PROP_BOOL("legacy-instance-id", APICCommonState, legacy_instance_id,
> false),
> DEFINE_PROP_END_OF_LIST(),
>
>
> I run Qemu in TCG mode
>
> ./x86_64-softmmu/qemu-system-x86_64 -bios /home/root/git/seabios/out/bios.bin -machine q35
> -m 1G -drive format=raw,file=/home/root/images/centos7.2.img,if=ide,index=0 -nographic
> -nodefaults -serial stdio -monitor pty
>
> It can't boot with below message,
> "
> Booting from Hard Disk...
> WARNING - Timeout at ahci_command:154!
> Boot failed: could not read the boot disk
>
> enter handle_18:
> NULL
> Booting from Floppy...
> Boot failed: could not read the boot disk
> "
>
> Once I add kvmvapic , it can boot.
>
> I dig into seebios code, and found ahci_process_op is called with A20 off,
>
> The call trace is,
> process_op_16->process_op_both->call32->call32_smm->process_op_32->ahci_process_op
>
> call32_smm calls call32_prep, but because the method is C16_SMM, A20 is not enabled in call32_prep.
> ahci_process_op is called with A20 off.
As I understand it, entering System Managament Mode (SMM) should
automatically enable A20, so it should not be necessary for call32_smm
to enable it. Are you sure the issue is related to A20 instead of
some other issue with SMM?
-Kevin
[View Less]