Commits on Oct 26, 2016

  1. usb: Make usb_time_sigatt variable static

    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed Oct 26, 2016
    Copy the full SHA
    c5e56b2 View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2016

  1. drop "etc/boot-cpus" fw_cfg file and reuse legacy QEMU_CFG_NB_CPUS

    since QEMU_CFG_NB_CPUS not going away anytime soon
    and serves the same purpose as just added "etc/boot-cpus" fw_cfg
    drop support for "etc/boot-cpus" while this code is not
    in use yet (i.e. QEMU with "etc/boot-cpus" hasn't been released)
    and reuse QEMU_CFG_NB_CPUS instead of it.
    
    Signed-off-by: Igor Mammedov <imammedo@redhat.com>
    Igor Mammedov authored and KevinOConnor committed Nov 21, 2016
    Copy the full SHA
    b98c658 View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2016

  1. tpm: Add comment banners to tcg.c separating major parts of spec

    No code changes; just code movement.
    
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed Nov 27, 2016
    Copy the full SHA
    2f97570 View commit details
    Browse the repository at this point in the history
  2. tpm: Don't call tpm_set_failure() from tpm12_get_capability()

    In the event of a failure in the low-level tpm12_get_capability()
    code, just return an error code.  The caller can shutdown the TPM if
    needed - the only place where that is needed is during a failure in
    tpm12_determine_timeouts().
    
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed Nov 27, 2016
    Copy the full SHA
    d468d59 View commit details
    Browse the repository at this point in the history
  3. tpm: Move code around in tcgbios.c to keep like code together

    No code changes; just code movement.
    
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed Nov 27, 2016
    Copy the full SHA
    0166993 View commit details
    Browse the repository at this point in the history
  4. acpi: Generalize find_fadt() and find_tcpa_by_rsdp() into find_acpi_t…

    …able()
    
    The find_fadt() and find_tcpa_by_rsdp() functions are very similar.
    Create a new find_acpi_table() function and replace the two functions
    with this new function.
    
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed Nov 27, 2016
    Copy the full SHA
    9ec57de View commit details
    Browse the repository at this point in the history
  5. tpm: Don't call tpm_build_and_send_cmd() from tpm20_stirrandom()

    Instead call tpmhw_transmit() directly.
    
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed Nov 27, 2016
    Copy the full SHA
    538d9b7 View commit details
    Browse the repository at this point in the history
  6. tpm: Rework tpm_build_and_send_cmd() into tpm_simple_cmd()

    Instead of passing an arbitrary buffer as a parameter to
    tpm_build_and_send_cmd(), just support the simpler case of a parameter
    that is only 0, 1, or 2 bytes in length.  This allows the callers to
    pass the parameter directly and not worry about the big-endian
    encoding.  Rename the function to tpm_simple_cmd().
    
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed Nov 27, 2016
    Copy the full SHA
    846fd31 View commit details
    Browse the repository at this point in the history
  7. tpm: Log TPM 2 digest structure in little endian format

    The parameters for extending the PCRs of a TPM 2 are written in
    big endian format when sent to the TPM. However, the log needs
    to be written in little endian format, so we cannot just copy
    the structure into the log as-is. To support the little endian
    format in the log, we extend the function writing the TPM 2
    digest structure with a parameter that allows us to choose the
    endianess of a few parameters. We then rewrite the digest structure
    in little endian format for the log.
    
    Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
    stefanberger authored and KevinOConnor committed Nov 27, 2016
    Copy the full SHA
    7b7b49e View commit details
    Browse the repository at this point in the history

Commits on Dec 30, 2016

  1. serialio: Support for mmap serial ports

    Some chipsets have memory mapped serial ports. The protocol is the same
    as an standard uart, but with memory read/write instead of inb/outb.
    
    Tested-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
    Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    ribalda authored and KevinOConnor committed Dec 30, 2016
    Copy the full SHA
    9332965 View commit details
    Browse the repository at this point in the history

Commits on Jan 17, 2017

  1. ahci: Set upper 32-bit registers to zero

    If the HBA supports 64-bit addressing, the registers may contain
    non-zero values, for example after reboot as a leftover from the
    OS driving the adapter.
    
    Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Ladi Prosek <lprosek@redhat.com>
    ladipro authored and KevinOConnor committed Jan 17, 2017
    Copy the full SHA
    106543d View commit details
    Browse the repository at this point in the history

Commits on Jan 29, 2017

  1. vgasrc: Increase debug level

    You only want this information for debugging. As it also slows down the
    boot considerably, as, for example, for every character of the GRUB
    menu, something is sent over the serial console.
    
    Therefore, increase the debugging level to 9.
    
    Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de>
    paulmenzel authored and KevinOConnor committed Jan 29, 2017
    Copy the full SHA
    970af16 View commit details
    Browse the repository at this point in the history

Commits on Feb 11, 2017

  1. ps2port: Disable keyboard/mouse prior to resetting ps2 controller

    If one of the ps2 ports is enabled prior to the ps2 controller reset
    then it is possible a device event (eg, key press or mouse move) could
    be mistaken for the controller reset response code.  This would result
    in a failure and the keyboard would be disabled during the boot.
    Always disabling the keyboard and mouse prior to reset ensures that
    the controller reset return code can be read properly.
    
    Tested-by: Paul Menzel <paulepanter@users.sourceforge.net>
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed Feb 11, 2017
    Copy the full SHA
    dbf9dd2 View commit details
    Browse the repository at this point in the history

Commits on Feb 20, 2017

  1. block: add NVMe boot support

    This patch enables SeaBIOS to boot from NVMe. Finding namespaces and
    basic I/O works. Testing has been done in qemu and so far it works with
    Grub, syslinux, and the FreeBSD loader. You need a recent Qemu (>=
    2.7.0), because older versions have buggy NVMe support.
    
    The NVMe code is currently only enabled on Qemu due to lack of testing
    on real hardware.
    
    Signed-off-by: Julian Stecklina <jsteckli@amazon.de>
    Julian Stecklina authored and KevinOConnor committed Feb 20, 2017
    Copy the full SHA
    c83e15b View commit details
    Browse the repository at this point in the history

Commits on Feb 21, 2017

  1. QEMU DMA: Add DMA write capability

    This allows BIOS to write data back to QEMU using the DMA interface and
    provides a higher-level abstraction to write to a fw_cfg file
    
    Signed-off-by: Ben Warren <ben@skyportsystems.com>
    Reviewed-by: Laszlo Ersek <lersek@redhat.com>
    Reviewed-by: Igor Mammedov <imammedo@redhat.com>
    Ben Warren authored and KevinOConnor committed Feb 21, 2017
    Copy the full SHA
    f991822 View commit details
    Browse the repository at this point in the history
  2. romfile-loader: Switch to using named structs

    This is a little cleaner and matches how the command structures are
    defined in QEMU.
    
    Signed-off-by: Ben Warren <ben@skyportsystems.com>
    Reviewed-by: Laszlo Ersek <lersek@redhat.com>
    Reviewed-by: Igor Mammedov <imammedo@redhat.com>
    Ben Warren authored and KevinOConnor committed Feb 21, 2017
    Copy the full SHA
    e5bebc7 View commit details
    Browse the repository at this point in the history
  3. QEMU fw_cfg: Add command to write back address of file

    This command is similar to ADD_POINTER, but instead of patching
    memory, it writes the pointer back to QEMU over the DMA interface.
    
    Signed-off-by: Ben Warren <ben@skyportsystems.com>
    Reviewed-by: Laszlo Ersek <lersek@redhat.com>
    Reviewed-by: Igor Mammedov <imammedo@redhat.com>
    Ben Warren authored and KevinOConnor committed Feb 21, 2017
    Copy the full SHA
    bb9cbbc View commit details
    Browse the repository at this point in the history
  4. QEMU fw_cfg: Add functions for accessing files by key

    Due to memory contraints, when resuming from S3 the fw_cfg "files" API
    isn't available.  This adds a simple API to get a file 'key', and to
    write to the file using the key as a reference.
    
    Signed-off-by: Ben Warren <ben@skyportsystems.com>
    Reviewed-by: Igor Mammedov <imammedo@redhat.com>
    Reviewed-by: Laszlo Ersek <lersek@redhat.com>
    Ben Warren authored and KevinOConnor committed Feb 21, 2017
    Copy the full SHA
    336b60b View commit details
    Browse the repository at this point in the history
  5. QEMU fw_cfg: Write fw_cfg back on S3 resume

    Any pointers to BIOS-allocated memory that were written back to QEMU
    fw_cfg files are replayed when resuming from S3 sleep.
    
    Signed-off-by: Ben Warren <ben@skyportsystems.com>
    Reviewed-by: Laszlo Ersek <lersek@redhat.com>
    Reviewed-by: Igor Mammedov <imammedo@redhat.com>
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    Ben Warren authored and KevinOConnor committed Feb 21, 2017
    Copy the full SHA
    8f598a4 View commit details
    Browse the repository at this point in the history

Commits on Mar 2, 2017

  1. docs: Note release dates for 1.10.1 and 1.10.2

    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed Mar 2, 2017
    Copy the full SHA
    6bc4164 View commit details
    Browse the repository at this point in the history
  2. nvme: support NVMe 1.0 controllers

    Rather than using the Identify command with CNS 01b (GET_NS_LIST), which
    was added in NVMe 1.1, we can just enumerate all of the possible
    namespace IDs.
    
    The relevant part of the NVMe spec reads:
    
      Namespaces shall be allocated in order (starting with 1) and packed
      sequentially.
    
    Since the previously-used GET_NS_LIST only returns active namespaces, we
    also need a check in nvme_probe_ns() to ensure that inactive namespaces
    are not reported as boot devices.  This can be accomplished by checking
    for non-zero block count - the spec indicates that Identify Namespace
    for an inactive namespace ID will return all zeroes.
    
    This should have no impact on the QEMU NVMe device model, since it
    always reports exactly one namespace (NSID 1).
    
    Signed-off-by: Daniel Verkamp <daniel@drv.nu>
    danielverkamp authored and KevinOConnor committed Mar 2, 2017
    Copy the full SHA
    f21e304 View commit details
    Browse the repository at this point in the history
  3. nvme: extend command timeout to 5 seconds

    500 ms is not sufficient for the admin commands used during
    initialization on some real hardware.
    
    Signed-off-by: Daniel Verkamp <daniel@drv.nu>
    danielverkamp authored and KevinOConnor committed Mar 2, 2017
    Copy the full SHA
    21de72f View commit details
    Browse the repository at this point in the history
  4. nvme: fix reversed loop condition in cmd_readwrite

    It looks like the intent was to exit the loop if a command failed, but
    the current code would actually continue looping in that case.
    
    Signed-off-by: Daniel Verkamp <daniel@drv.nu>
    Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
    danielverkamp authored and KevinOConnor committed Mar 2, 2017
    Copy the full SHA
    2e82b46 View commit details
    Browse the repository at this point in the history
  5. nvme: fix extraction of status code bits

    The status code field is 8 bits wide starting at bit 1; the previous
    code would truncate the top bit.
    
    Signed-off-by: Daniel Verkamp <daniel@drv.nu>
    Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
    danielverkamp authored and KevinOConnor committed Mar 2, 2017
    Copy the full SHA
    d8a6c84 View commit details
    Browse the repository at this point in the history
  6. nvme: fix copy-paste mistake in comment

    Signed-off-by: Daniel Verkamp <daniel@drv.nu>
    Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
    danielverkamp authored and KevinOConnor committed Mar 2, 2017
    Copy the full SHA
    1415d46 View commit details
    Browse the repository at this point in the history

Commits on Mar 13, 2017

  1. resume: Don't attempt to use generic reboot mechanisms on QEMU

    On QEMU it's necessary to manually reset the BIOS memory region
    between 0xc0000-0x100000 on a reboot.  After this manual memory reset
    is completed, it's not valid to use the generic reset mechanisms.
    Rename qemu_prep_reset() to qemu_reboot() and change the function to
    immediately reboot after the code memcpy.
    
    This fixes a bug that could cause code corruption on reboots - calling
    the udelay() function (as invoked by i8042_reboot and/or pci_reboot)
    was not valid after the BIOS was memcpy'd.
    
    Reported-by: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
    Tested-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed Mar 13, 2017
    Copy the full SHA
    c68aff5 View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2017

  1. config: Add function to check if fw_cfg exists

    It was found qemu_get_present_cpus_count may return impossible
    number of cpus because of not checking if fw_cfg exists before
    using it. That may lead to undefined behavior of emulator,
    in particular Bochs that freezes.
    
    Signed-off-by: Petr Berky <petr.berky@email.cz>
    Petr Berky authored and KevinOConnor committed Mar 30, 2017
    Copy the full SHA
    5fbf246 View commit details
    Browse the repository at this point in the history

Commits on Apr 25, 2017

  1. coreboot: Adapt to upstream CBMEM console changes

    coreboot's CBMEM console format changed with
    https://review.coreboot.org/#/c/18301. This patch adapts the SeaBIOS
    implementation to support the new format. (SeaBIOS versions with this
    patch will continue to work fine with older version of coreboot. SeaBIOS
    versions without this patch may fail to log messages to the CBMEM
    console if run with newer versions of coreboot, but should not
    experience any more serious issues than that.)
    
    Signed-off-by: Julius Werner <jwerner@chromium.org>
    jwerner-chromium authored and KevinOConnor committed Apr 25, 2017
    Copy the full SHA
    19fdcca View commit details
    Browse the repository at this point in the history
  2. boot: Increase description size in boot menu

    Increase the boot menu description size so that menu items up to 80
    characters display without truncation.
    
    Reported-by: Rene Shuster <rene.shuster@bcsemail.org>
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed Apr 25, 2017
    Copy the full SHA
    6f090f8 View commit details
    Browse the repository at this point in the history

Commits on May 2, 2017

  1. blockcmd: accept only disks and CD-ROMs

    Luns that report to INQUIRY with a type other than CD-ROM are considered
    disks.  This isn't necessarily the case; working with such luns as disks
    may lead to unpredictable results.
    
    So bail out if the lun is neither CD-ROM nor disk.
    
    Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
    rvka authored and KevinOConnor committed May 2, 2017
    Copy the full SHA
    177aecf View commit details
    Browse the repository at this point in the history
  2. blockcmd: generic SCSI luns enumeration

    Add two generic functions to discover active LUNs on a SCSI target.
    
    The functions take a temporary drive descriptor on the target, and a
    callback to create a new drive descriptor with a new LUN using the
    temporary one as a template.
    
    One of the functions performs REPORT LUNS on the temporary drive to
    obtain the list of candidate luns; the other sequentially iterates the
    lun numbers up to the given maximum, and is meant as a fallback.  Both
    functions return the number of successfully created drive descriptors,
    or a negative number if an error occured.
    
    This will allow to lift the limitation of most of the SCSI drivers that
    support booting off the LUN #0 only.
    
    Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
    rvka authored and KevinOConnor committed May 2, 2017
    Copy the full SHA
    750188d View commit details
    Browse the repository at this point in the history
  3. virtio-scsi: enumerate luns with REPORT LUNS

    Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
    rvka authored and KevinOConnor committed May 2, 2017
    Copy the full SHA
    69ebdef View commit details
    Browse the repository at this point in the history
  4. esp-scsi: enumerate luns with REPORT LUNS

    Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
    rvka authored and KevinOConnor committed May 2, 2017
    Copy the full SHA
    3aadef4 View commit details
    Browse the repository at this point in the history
  5. usb-uas: enumerate luns with REPORT LUNS

    Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
    rvka authored and KevinOConnor committed May 2, 2017
    Copy the full SHA
    8579fd2 View commit details
    Browse the repository at this point in the history
  6. pvscsi: fix the comment about lun enumeration

    The comment in pvscsi_scan_target (presumably c&p-ed from another
    driver) reads that REPORTS LUNS should better be used to enumerate the
    luns on the target.
    
    However, according to the Linux driver, the device supports no more than
    a single lun per target.
    
    So adjust the comment to tell exactly that.
    
    Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
    rvka authored and KevinOConnor committed May 2, 2017
    Copy the full SHA
    0a6e0a8 View commit details
    Browse the repository at this point in the history
  7. mpt-scsi: try to enumerate luns with REPORT LUNS

    Enumerate active luns with REPORT LUNS and, if that fails[*], fall back
    to sequentially enumerating them up to (arbitrarily chosen) #8.
    
    Note that this patch also makes mpt_scsi_cmd accept luns other than 0;
    I've no idea what was the original motivation not to, and what can break
    due to this change (nothing broke in my basic tests with QEMU).
    
    [*] in current QEMU, REPORT LUNS does fail in mptsas1068 because the
    returned data is smaller than the allocation length which is (wrongly)
    considered an underflow.
    
    Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
    rvka authored and KevinOConnor committed May 2, 2017
    Copy the full SHA
    cf480dd View commit details
    Browse the repository at this point in the history
  8. lsi-scsi: reset in case of a serious problem

    When the device reports a serious problem via SIST[01] registers, it
    needs to be reset, otherwise the following requests will most likely
    fail, too.
    
    In particular, REPORT LUNS which fails (wrongly) with underflow in QEMU
    makes all the following requests fail, too, rendering the device
    unusable.
    
    Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
    rvka authored and KevinOConnor committed May 2, 2017
    Copy the full SHA
    1127784 View commit details
    Browse the repository at this point in the history
  9. lsi-scsi: try to enumerate luns with REPORT LUNS

    Enumerate active luns with REPORT LUNS and, if that fails[*], fall back
    to sequentially enumerating them up to (arbitrarily chosen) #8 [**].
    
    [*] in current QEMU, REPORT LUNS does fail in lsi53c895a because the
    returned data is smaller than the allocation length which is (wrongly)
    considered an underflow
    
    [**] in current QEMU, luns above 0 are not supported in lsi53c895a, so
    this patch is here only for completeness.
    
    Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
    rvka authored and KevinOConnor committed May 2, 2017
    Copy the full SHA
    3198c06 View commit details
    Browse the repository at this point in the history

Commits on May 3, 2017

  1. src: Minor - remove tab characters that slipped into SeaBIOS C code

    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed May 3, 2017
    Copy the full SHA
    3fdabae View commit details
    Browse the repository at this point in the history

Commits on May 10, 2017

  1. NVMe: Allow NVMe to be enabled on real hardware

    A couple of users have reported success with the NVMe driver on real
    hardware, so allow it to be enabled outside of QEMU.
    
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed May 10, 2017
    Copy the full SHA
    235a819 View commit details
    Browse the repository at this point in the history

Commits on May 16, 2017

  1. smm: Backup and restore A20 on an SMI based mode switch

    QEMU does not store the A20 setting in the SMM cpu environment area
    (and it does not look like real CPUs do either).  So, manually backup
    and restore A20 on a mode switch.
    
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed May 16, 2017
    Copy the full SHA
    d8b3080 View commit details
    Browse the repository at this point in the history
  2. stacks: Make sure to initialize Call16Data

    Initialize the Call16Data at startup - otherwise some early yield()
    calls may check for interrupts without using the preferred A20
    setting.
    
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed May 16, 2017
    Copy the full SHA
    5869a6b View commit details
    Browse the repository at this point in the history
  3. stacks: Don't update the A20 settings if they haven't changed

    The A20 setting is almost always enabled - only issue an outb() if the
    A20 is actually changing.  This reduces the number of outb() calls.
    
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed May 16, 2017
    Copy the full SHA
    8ebb33b View commit details
    Browse the repository at this point in the history

Commits on Jun 12, 2017

  1. stacks: There is no need to disable NMI if it is already disabled

    Don't write to the cmos index port on a mode switch if NMI is already
    disabled.  This reduces the number of outb() calls.
    
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
    KevinOConnor committed Jun 12, 2017
    Copy the full SHA
    dee3c15 View commit details
    Browse the repository at this point in the history
  2. blockcmd: start REPORT_LUNS with the smallest buffer

    A number of emulated SCSI devices in QEMU incorrectly return an error
    to REPORT_LUNS command when the size of the data returned is smaller
    than the allocation length passed in.
    
    To work it around, start with the smallest allocation length possible:
    for 1 entry.  This is a slight pessimization because it would require
    another REPORT_LUNS iteration if the target has more than a single LUN,
    but this appears to have negligible impact on boot times, and makes
    REPORT_LUNS enumeration work for more QEMU devices (lsi53c895a,
    mptsas1068).
    
    Reported-by: Maciej Józefczyk <maciej.jozefczyk@corp.ovh.com>
    Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
    rvka authored and KevinOConnor committed Jun 12, 2017
    Copy the full SHA
    6345621 View commit details
    Browse the repository at this point in the history
  3. Revert "lsi-scsi: reset in case of a serious problem"

    This reverts commit 1127784.
    
    It was originally introduced to deal with the case when REPORT_LUNS
    caused an error in QEMU implementation of lsi53c895a and left it in a
    "confused" state making further interaction impossible.
    
    However the remedy was worse than the disease: the reset was
    controller-wide causing all luns to reset, losing all in-flight requests;
    upon that all luns lit up unit_attention condition, so that any
    non-informational request would fail with check_condition status.  As a
    result, the lun enumeration succeeded and I saw the respective entries
    in the boot menu during my testing, but the read from those luns ended
    with an error and booting failed, which I didn't bother to test.
    
    So this reverts to the original error handling behavior.  The problem
    with the failing REPORT_LUNS is addressed in the preceding patch, by
    making it unlikely to fail.
    
    Reported-by: Maciej Józefczyk <maciej.jozefczyk@corp.ovh.com>
    Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
    rvka authored and KevinOConnor committed Jun 12, 2017
    Copy the full SHA
    58953eb View commit details
    Browse the repository at this point in the history
  4. SeaVGABios/cbvga: Advertise correct pixel format

    Accumulate the pixel format's bits instead relying on coreboot's
    bits_per_pixel, which says nothing about the active pixel format.
    
    Allows VBE to correctly advertise XRGB8 and BGRX8 framebuffer formats,
    commonly used by coreboot.
    
    Fixes at least Windows Bootloader and gfxboot.
    
    Signed-off-by: Patrick Rudolph <siro@das-labor.org>
    siro20 authored and KevinOConnor committed Jun 12, 2017
    Copy the full SHA
    4b42cc4 View commit details
    Browse the repository at this point in the history
  5. SeaVGABIOS/vbe: Query driver for scanline pitch v2

    Query the driver for the real scanline pitch in bytes.
    
    As cbvga doesn't change the pitch on mode change, always
    return the same pitch, that might exceed width times Bytes-per-pixel.
    
    Report the default stdvga pitch for all other drivers.
    
    Signed-off-by: Patrick Rudolph <siro@das-labor.org>
    siro20 authored and KevinOConnor committed Jun 12, 2017
    Copy the full SHA
    4902b8a View commit details
    Browse the repository at this point in the history
  6. SeaVGABios/cbvga: Use active mode to clear screen

    As coreboot framebuffer is immutable always use CBmodeinfo.
    
    Signed-off-by: Patrick Rudolph <siro@das-labor.org>
    siro20 authored and KevinOConnor committed Jun 12, 2017
    Copy the full SHA
    6b69446 View commit details
    Browse the repository at this point in the history
  7. SeaVGABios/cbvga: Advertise compatible VESA modes

    Advertise compatible VESA modes, that are smaller or equal to
    coreboot's active framebuffer. Only modes that have the same Bpp
    are advertise and can be selected.
    
    Allows the Windows 7 bootloader NTLDR to show up in VESA mode.
    Allows to show the Windows 7 boot logo.
    Allows Windows to boot in safe mode and in normal boot using
    VgaSave driver with resolution up to 1600x1200.
    
    This fixes most likely other bootloader and operating systems as well,
    in case the are relying on VESA framebuffer support.
    
    Signed-off-by: Patrick Rudolph <siro@das-labor.org>
    siro20 authored and KevinOConnor committed Jun 12, 2017
    Copy the full SHA
    e30d51c View commit details
    Browse the repository at this point in the history