Re: [SeaBIOS] Chromebook doesn't boot BSD

2016-02-15 Thread Ronny
On Mon, 15 Feb 2016 12:27:09 -0500
Kevin O'Connor  wrote:

> On Mon, Feb 15, 2016 at 05:16:06PM +0100, Ronny Schneider wrote:
> > > Am 15.02.2016 um 15:40 schrieb edward wandasiewicz <0.w3...@gmail.com>:
> > > On Sun, Feb 14, 2016 at 11:02 PM, Kevin O'Connor  
> > > wrote:
> > >> - it looks more like the various BSD kernels don't like the USB
> > >> controller and/or USB drive on your machine.  Have you tried
> > >> using a different type of USB drive for the install media?  It's
> > >> also possible there's something in the ACPI tables that coreboot
> > >> provides that is confusing the BSDs.
> > 
> > I tried several usb-sticks and sd-cards. Every time the same result:
> > it doesn’t work.  If i boot NetBSD without ACPI-support the screen
> > turns black and stays this way until the machine is shut down.
> > 
> > >> Your logs seem to indicate you also have an eMMC and an SD card.
> > >> Have you tried placing the install media on an SD card instead of
> > >> USB?
> > 
> > That’s right. The main storage device of this Chromebook is an
> > eMMC. Booting from SD card is working if it is a linux. BSD won’t
> > start from. The same results as using an usb stick.
> > 
> > >> Another thing you could do is launch the install media with the
> > >> same verson of SeaBIOS on QEMU emulating an XHCI drive and SD
> > >> drive - just to see if it's possible to reproduce outside of your
> > >> particular machine.  See below.
> > 
> > Using QEMU it is working flawlessly, wether the SeaBIOS version is
> > 1.8, 1.9 or 1.9.1 (which i compiled myself).  So it really seems to
> > be a problem with the BSDs.
> 
> So, if both XHCI and SD work on QEMU, then I don't have much of a
> guess as to what the underlying problem is.  It's odd that two
> independent hardware systems (xhci and sd) would both experience the
> same failure to find the root drive.
> 
> As a long shot, you could compile seabios without CONFIG_SDCARD and
> then deploy it on your chromebook - just to see if booting from usb
> then works.  Similarly, you could try without CONFIG_USB_XHCI to see
> if sd somehow then works.  I don't have much hope either would help
> though.
> 
> The other option would be to follow up with the various BSD developers
> to see if you can extract more debug information to narrow down the
> cause of the failure.
> 
> -Kevin

I opened a bug at the DragonFlyBSD list for bugs and will see if someone can 
help with this problem: https://bugs.dragonflybsd.org/issues/2890

Maybe i have to get in touch with the other BSD-devs.

Thank you all so far! :-)

Best greetings,
-- Ronny Schneider

___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios

Re: [SeaBIOS] [Qemu-devel] [RFC PATCH v3 3/3] fw/pci: Allocate IGD stolen memory

2016-02-15 Thread Michael S. Tsirkin
On Mon, Feb 15, 2016 at 02:50:41PM -0500, Kevin O'Connor wrote:
> On Mon, Feb 15, 2016 at 09:29:26PM +0200, Michael S. Tsirkin wrote:
> > I can build a generic interface to pass addresses
> > allocated by bios back to QEMU. It looks like this would
> > be useful for other purposes as well.  Interested?
> 
> If this is undertaken, I suggest extending fw_cfg to support "writable
> files" instead of introducing a whole new interface.
> 
> -Kevin

Exactly, this is what I had in mind.

-- 
MST

___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios


Re: [SeaBIOS] [Qemu-devel] [RFC PATCH v3 3/3] fw/pci: Allocate IGD stolen memory

2016-02-15 Thread Alex Williamson
On Mon, 15 Feb 2016 21:29:26 +0200
"Michael S. Tsirkin"  wrote:

> On Mon, Feb 15, 2016 at 12:20:23PM -0700, Alex Williamson wrote:
> > On Mon, 15 Feb 2016 10:54:51 +0100
> > Igor Mammedov  wrote:
> >   
> > > On Sat, 13 Feb 2016 18:03:31 -0700
> > > Alex Williamson  wrote:
> > >   
> > > > On Sat, 13 Feb 2016 19:20:32 -0500
> > > > "Kevin O'Connor"  wrote:
> > > > 
> > > > > On Sat, Feb 13, 2016 at 01:57:09PM -0700, Alex Williamson wrote:  
> > > > > > On Sat, 13 Feb 2016 15:05:09 -0500
> > > > > > "Kevin O'Connor"  wrote:
> > > > > > > On Sat, Feb 13, 2016 at 11:51:51AM -0700, Alex Williamson wrote:  
> > > > > > >   
> > > > > > > > On Sat, 13 Feb 2016 13:18:39 -0500
> > > > > > > > "Kevin O'Connor"  wrote:  
> > > > > > > > > On Sat, Feb 13, 2016 at 08:12:09AM -0700, Alex Williamson 
> > > > > > > > > wrote:  
> > > > > > > > > > On Fri, 12 Feb 2016 21:49:04 -0500
> > > > > > > > > > "Kevin O'Connor"  wrote:
> > > > > > > > > > > On Fri, Feb 12, 2016 at 05:23:18PM -0700, Alex Williamson 
> > > > > > > > > > > wrote:
> > > > > > > > > > > > Intel IGD makes use of memory allocated and marked 
> > > > > > > > > > > > reserved by the
> > > > > > > > > > > > BIOS as a stolen memory range.  For the most part, 
> > > > > > > > > > > > guest drivers don't
> > > > > > > > > > > > make use of this, but our achilles heel is the vBIOS.  
> > > > > > > > > > > > The vBIOS
> > > > > > > > > > > > programs the device to use the host stolen memory range 
> > > > > > > > > > > > and it's used
> > > > > > > > > > > > in the pre-boot environment.  Generally the guest won't 
> > > > > > > > > > > > have access to
> > > > > > > > > > > > the host stolen memory area, so these accesses either 
> > > > > > > > > > > > land in VM
> > > > > > > > > > > > memory or unassigned space and generate IOMMU faults.  
> > > > > > > > > > > > By allocating
> > > > > > > > > > > > this range in SeaBIOS and programming it into the 
> > > > > > > > > > > > device, QEMU (via
> > > > > > > > > > > > vfio) can make sure this guest allocated stolen memory 
> > > > > > > > > > > > range is used
> > > > > > > > > > > > instead.  
> > > > > > > > > > > 
> > > > > > > > > > > What does "vBIOS" mean in this context?  Is it the video 
> > > > > > > > > > > device option
> > > > > > > > > > > rom or something else?
> > > > > > > > > > 
> > > > > > > > > > vBIOS = video BIOS, you're correct, it's just the video 
> > > > > > > > > > device option
> > > > > > > > > > ROM.
> > > > > > > > > 
> > > > > > > > > Is the problem from when the host runs the video option rom, 
> > > > > > > > > or is the
> > > > > > > > > problem from the guest (via SeaBIOS) running the video option 
> > > > > > > > > rom?  If
> > > > > > > > > the guest is running the option rom, is it the first time the 
> > > > > > > > > option
> > > > > > > > > rom has been run for the machine (ie, was the option rom not 
> > > > > > > > > executed
> > > > > > > > > on the host when the host machine first booted)?
> > > > > > > > > 
> > > > > > > > > FWIW, many of the chromebooks use coreboot with Intel 
> > > > > > > > > graphics and a
> > > > > > > > > number of users have installed SeaBIOS (running natively) on 
> > > > > > > > > their
> > > > > > > > > machines.  Running the intel video option rom more than once 
> > > > > > > > > has been
> > > > > > > > > known to cause issues.  
> > > > > > > > 
> > > > > > > > The issue is in the VM and it occurs every time the option ROM 
> > > > > > > > is
> > > > > > > > executed.  Standard VGA text mode displays fine (ex. SeaBIOS 
> > > > > > > > version
> > > > > > > > string and boot menu), but any sort of extended graphics mode 
> > > > > > > > (ex. live
> > > > > > > > CD boot menu) tries to make use of the host memory area which
> > > > > > > > corresponds to the stolen memory area of the physical device.  
> > > > > > > > We're
> > > > > > > > not really sure how the ROM execution arrives at these 
> > > > > > > > addresses (not
> > > > > > > > from the device according to access traces), but we can see 
> > > > > > > > when the
> > > > > > > > ROM is writing these addresses to the device and modify they 
> > > > > > > > addresses
> > > > > > > > to point at a VM memory range which we've allocated.  That's 
> > > > > > > > what this
> > > > > > > > code attempts to do, allocate a buffer and tell QEMU about it 
> > > > > > > > via the
> > > > > > > > BDSM (Base Data of Stolen Memory) register.  
> > > > > > > 
> > > > > > > Forgive me if I'm not fully understanding this.  If I read what 
> > > > > > > you're
> > > > > > > saying then the sequence is something like:
> > > > > > > 
> > > > > > > 1 - the host system bios (or vgabios) programs the GTT/stolen 
> > > > > > > memory
> > > > > > > base register at host system bootup time and reserves it in 
> > > > > > > the
> > > > > > > host e820 map.
> > > > > > > 
> > > > > > >

Re: [SeaBIOS] [Qemu-devel] [RFC PATCH v3 3/3] fw/pci: Allocate IGD stolen memory

2016-02-15 Thread Kevin O'Connor
On Mon, Feb 15, 2016 at 09:29:26PM +0200, Michael S. Tsirkin wrote:
> I can build a generic interface to pass addresses
> allocated by bios back to QEMU. It looks like this would
> be useful for other purposes as well.  Interested?

If this is undertaken, I suggest extending fw_cfg to support "writable
files" instead of introducing a whole new interface.

-Kevin

___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios


Re: [SeaBIOS] [Qemu-devel] [RFC PATCH v3 3/3] fw/pci: Allocate IGD stolen memory

2016-02-15 Thread Michael S. Tsirkin
On Mon, Feb 15, 2016 at 12:20:23PM -0700, Alex Williamson wrote:
> On Mon, 15 Feb 2016 10:54:51 +0100
> Igor Mammedov  wrote:
> 
> > On Sat, 13 Feb 2016 18:03:31 -0700
> > Alex Williamson  wrote:
> > 
> > > On Sat, 13 Feb 2016 19:20:32 -0500
> > > "Kevin O'Connor"  wrote:
> > >   
> > > > On Sat, Feb 13, 2016 at 01:57:09PM -0700, Alex Williamson wrote:
> > > > > On Sat, 13 Feb 2016 15:05:09 -0500
> > > > > "Kevin O'Connor"  wrote:  
> > > > > > On Sat, Feb 13, 2016 at 11:51:51AM -0700, Alex Williamson wrote:
> > > > > >   
> > > > > > > On Sat, 13 Feb 2016 13:18:39 -0500
> > > > > > > "Kevin O'Connor"  wrote:
> > > > > > > > On Sat, Feb 13, 2016 at 08:12:09AM -0700, Alex Williamson 
> > > > > > > > wrote:
> > > > > > > > > On Fri, 12 Feb 2016 21:49:04 -0500
> > > > > > > > > "Kevin O'Connor"  wrote:  
> > > > > > > > > > On Fri, Feb 12, 2016 at 05:23:18PM -0700, Alex Williamson 
> > > > > > > > > > wrote:  
> > > > > > > > > > > Intel IGD makes use of memory allocated and marked 
> > > > > > > > > > > reserved by the
> > > > > > > > > > > BIOS as a stolen memory range.  For the most part, guest 
> > > > > > > > > > > drivers don't
> > > > > > > > > > > make use of this, but our achilles heel is the vBIOS.  
> > > > > > > > > > > The vBIOS
> > > > > > > > > > > programs the device to use the host stolen memory range 
> > > > > > > > > > > and it's used
> > > > > > > > > > > in the pre-boot environment.  Generally the guest won't 
> > > > > > > > > > > have access to
> > > > > > > > > > > the host stolen memory area, so these accesses either 
> > > > > > > > > > > land in VM
> > > > > > > > > > > memory or unassigned space and generate IOMMU faults.  By 
> > > > > > > > > > > allocating
> > > > > > > > > > > this range in SeaBIOS and programming it into the device, 
> > > > > > > > > > > QEMU (via
> > > > > > > > > > > vfio) can make sure this guest allocated stolen memory 
> > > > > > > > > > > range is used
> > > > > > > > > > > instead.
> > > > > > > > > > 
> > > > > > > > > > What does "vBIOS" mean in this context?  Is it the video 
> > > > > > > > > > device option
> > > > > > > > > > rom or something else?  
> > > > > > > > > 
> > > > > > > > > vBIOS = video BIOS, you're correct, it's just the video 
> > > > > > > > > device option
> > > > > > > > > ROM.  
> > > > > > > > 
> > > > > > > > Is the problem from when the host runs the video option rom, or 
> > > > > > > > is the
> > > > > > > > problem from the guest (via SeaBIOS) running the video option 
> > > > > > > > rom?  If
> > > > > > > > the guest is running the option rom, is it the first time the 
> > > > > > > > option
> > > > > > > > rom has been run for the machine (ie, was the option rom not 
> > > > > > > > executed
> > > > > > > > on the host when the host machine first booted)?
> > > > > > > > 
> > > > > > > > FWIW, many of the chromebooks use coreboot with Intel graphics 
> > > > > > > > and a
> > > > > > > > number of users have installed SeaBIOS (running natively) on 
> > > > > > > > their
> > > > > > > > machines.  Running the intel video option rom more than once 
> > > > > > > > has been
> > > > > > > > known to cause issues.
> > > > > > > 
> > > > > > > The issue is in the VM and it occurs every time the option ROM is
> > > > > > > executed.  Standard VGA text mode displays fine (ex. SeaBIOS 
> > > > > > > version
> > > > > > > string and boot menu), but any sort of extended graphics mode 
> > > > > > > (ex. live
> > > > > > > CD boot menu) tries to make use of the host memory area which
> > > > > > > corresponds to the stolen memory area of the physical device.  
> > > > > > > We're
> > > > > > > not really sure how the ROM execution arrives at these addresses 
> > > > > > > (not
> > > > > > > from the device according to access traces), but we can see when 
> > > > > > > the
> > > > > > > ROM is writing these addresses to the device and modify they 
> > > > > > > addresses
> > > > > > > to point at a VM memory range which we've allocated.  That's what 
> > > > > > > this
> > > > > > > code attempts to do, allocate a buffer and tell QEMU about it via 
> > > > > > > the
> > > > > > > BDSM (Base Data of Stolen Memory) register.
> > > > > > 
> > > > > > Forgive me if I'm not fully understanding this.  If I read what 
> > > > > > you're
> > > > > > saying then the sequence is something like:
> > > > > > 
> > > > > > 1 - the host system bios (or vgabios) programs the GTT/stolen memory
> > > > > > base register at host system bootup time and reserves it in the
> > > > > > host e820 map.
> > > > > > 
> > > > > > 2 - upon running qemu, the guest reruns the vga bios option rom 
> > > > > > which
> > > > > > seems to work (ie, text mode works)
> > > > > > 
> > > > > > 3 - in the guest, upon running a bootloader that uses graphics mode,
> > > > > > the bootloader calls the vgabios to switch to graphics mode, and
> > > > > > the vgabios

Re: [SeaBIOS] [Qemu-devel] [RFC PATCH v3 3/3] fw/pci: Allocate IGD stolen memory

2016-02-15 Thread Alex Williamson
On Mon, 15 Feb 2016 10:54:51 +0100
Igor Mammedov  wrote:

> On Sat, 13 Feb 2016 18:03:31 -0700
> Alex Williamson  wrote:
> 
> > On Sat, 13 Feb 2016 19:20:32 -0500
> > "Kevin O'Connor"  wrote:
> >   
> > > On Sat, Feb 13, 2016 at 01:57:09PM -0700, Alex Williamson wrote:
> > > > On Sat, 13 Feb 2016 15:05:09 -0500
> > > > "Kevin O'Connor"  wrote:  
> > > > > On Sat, Feb 13, 2016 at 11:51:51AM -0700, Alex Williamson wrote:  
> > > > > > On Sat, 13 Feb 2016 13:18:39 -0500
> > > > > > "Kevin O'Connor"  wrote:
> > > > > > > On Sat, Feb 13, 2016 at 08:12:09AM -0700, Alex Williamson wrote:  
> > > > > > >   
> > > > > > > > On Fri, 12 Feb 2016 21:49:04 -0500
> > > > > > > > "Kevin O'Connor"  wrote:  
> > > > > > > > > On Fri, Feb 12, 2016 at 05:23:18PM -0700, Alex Williamson 
> > > > > > > > > wrote:  
> > > > > > > > > > Intel IGD makes use of memory allocated and marked reserved 
> > > > > > > > > > by the
> > > > > > > > > > BIOS as a stolen memory range.  For the most part, guest 
> > > > > > > > > > drivers don't
> > > > > > > > > > make use of this, but our achilles heel is the vBIOS.  The 
> > > > > > > > > > vBIOS
> > > > > > > > > > programs the device to use the host stolen memory range and 
> > > > > > > > > > it's used
> > > > > > > > > > in the pre-boot environment.  Generally the guest won't 
> > > > > > > > > > have access to
> > > > > > > > > > the host stolen memory area, so these accesses either land 
> > > > > > > > > > in VM
> > > > > > > > > > memory or unassigned space and generate IOMMU faults.  By 
> > > > > > > > > > allocating
> > > > > > > > > > this range in SeaBIOS and programming it into the device, 
> > > > > > > > > > QEMU (via
> > > > > > > > > > vfio) can make sure this guest allocated stolen memory 
> > > > > > > > > > range is used
> > > > > > > > > > instead.
> > > > > > > > > 
> > > > > > > > > What does "vBIOS" mean in this context?  Is it the video 
> > > > > > > > > device option
> > > > > > > > > rom or something else?  
> > > > > > > > 
> > > > > > > > vBIOS = video BIOS, you're correct, it's just the video device 
> > > > > > > > option
> > > > > > > > ROM.  
> > > > > > > 
> > > > > > > Is the problem from when the host runs the video option rom, or 
> > > > > > > is the
> > > > > > > problem from the guest (via SeaBIOS) running the video option 
> > > > > > > rom?  If
> > > > > > > the guest is running the option rom, is it the first time the 
> > > > > > > option
> > > > > > > rom has been run for the machine (ie, was the option rom not 
> > > > > > > executed
> > > > > > > on the host when the host machine first booted)?
> > > > > > > 
> > > > > > > FWIW, many of the chromebooks use coreboot with Intel graphics 
> > > > > > > and a
> > > > > > > number of users have installed SeaBIOS (running natively) on their
> > > > > > > machines.  Running the intel video option rom more than once has 
> > > > > > > been
> > > > > > > known to cause issues.
> > > > > > 
> > > > > > The issue is in the VM and it occurs every time the option ROM is
> > > > > > executed.  Standard VGA text mode displays fine (ex. SeaBIOS version
> > > > > > string and boot menu), but any sort of extended graphics mode (ex. 
> > > > > > live
> > > > > > CD boot menu) tries to make use of the host memory area which
> > > > > > corresponds to the stolen memory area of the physical device.  We're
> > > > > > not really sure how the ROM execution arrives at these addresses 
> > > > > > (not
> > > > > > from the device according to access traces), but we can see when the
> > > > > > ROM is writing these addresses to the device and modify they 
> > > > > > addresses
> > > > > > to point at a VM memory range which we've allocated.  That's what 
> > > > > > this
> > > > > > code attempts to do, allocate a buffer and tell QEMU about it via 
> > > > > > the
> > > > > > BDSM (Base Data of Stolen Memory) register.
> > > > > 
> > > > > Forgive me if I'm not fully understanding this.  If I read what you're
> > > > > saying then the sequence is something like:
> > > > > 
> > > > > 1 - the host system bios (or vgabios) programs the GTT/stolen memory
> > > > > base register at host system bootup time and reserves it in the
> > > > > host e820 map.
> > > > > 
> > > > > 2 - upon running qemu, the guest reruns the vga bios option rom which
> > > > > seems to work (ie, text mode works)
> > > > > 
> > > > > 3 - in the guest, upon running a bootloader that uses graphics mode,
> > > > > the bootloader calls the vgabios to switch to graphics mode, and
> > > > > the vgabios sends commands to the graphics hardware that somehow
> > > > > reference the host stolen memory  
> > > > 
> > > > What exactly happens here isn't clear to me, but this is a plausible
> > > > explanation.  What we see in tracing access to the hardware is that a
> > > > bunch of addresses are written to the device that fall within the host
> > > > 

Re: [SeaBIOS] [RFC PATCH v3 3/3] fw/pci: Allocate IGD stolen memory

2016-02-15 Thread Alex Williamson
On Mon, 15 Feb 2016 11:31:41 +0100
Gerd Hoffmann  wrote:

>   Hi,
> 
> > The issue is in the VM and it occurs every time the option ROM is
> > executed.  Standard VGA text mode displays fine (ex. SeaBIOS version
> > string and boot menu), but any sort of extended graphics mode (ex. live
> > CD boot menu) tries to make use of the host memory area which
> > corresponds to the stolen memory area of the physical device.  
> 
> I'm wondering whenever we can just use seavgabios (and support standard
> vga modes only).

The reason we need the vBIOS is to turn on the LCD panel, which in turn
has this dependency on the stolen memory area.  I'd be pretty surprised
if a generic VGA BIOS affected the panel in any way.  Maybe seavgabios
could be used for desktop IGD assignment, though I don't really know
how to detect an attached panel.  Thanks,

Alex

___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios


Re: [SeaBIOS] Chromebook doesn't boot BSD

2016-02-15 Thread Kevin O'Connor
On Mon, Feb 15, 2016 at 05:16:06PM +0100, Ronny Schneider wrote:
> > Am 15.02.2016 um 15:40 schrieb edward wandasiewicz <0.w3...@gmail.com>:
> > On Sun, Feb 14, 2016 at 11:02 PM, Kevin O'Connor  wrote:
> >> - it looks more like the various BSD kernels don't like the USB
> >> controller and/or USB drive on your machine.  Have you tried
> >> using a different type of USB drive for the install media?  It's
> >> also possible there's something in the ACPI tables that coreboot
> >> provides that is confusing the BSDs.
> 
> I tried several usb-sticks and sd-cards. Every time the same result:
> it doesn’t work.  If i boot NetBSD without ACPI-support the screen
> turns black and stays this way until the machine is shut down.
> 
> >> Your logs seem to indicate you also have an eMMC and an SD card.
> >> Have you tried placing the install media on an SD card instead of
> >> USB?
> 
> That’s right. The main storage device of this Chromebook is an
> eMMC. Booting from SD card is working if it is a linux. BSD won’t
> start from. The same results as using an usb stick.
> 
> >> Another thing you could do is launch the install media with the
> >> same verson of SeaBIOS on QEMU emulating an XHCI drive and SD
> >> drive - just to see if it's possible to reproduce outside of your
> >> particular machine.  See below.
> 
> Using QEMU it is working flawlessly, wether the SeaBIOS version is
> 1.8, 1.9 or 1.9.1 (which i compiled myself).  So it really seems to
> be a problem with the BSDs.

So, if both XHCI and SD work on QEMU, then I don't have much of a
guess as to what the underlying problem is.  It's odd that two
independent hardware systems (xhci and sd) would both experience the
same failure to find the root drive.

As a long shot, you could compile seabios without CONFIG_SDCARD and
then deploy it on your chromebook - just to see if booting from usb
then works.  Similarly, you could try without CONFIG_USB_XHCI to see
if sd somehow then works.  I don't have much hope either would help
though.

The other option would be to follow up with the various BSD developers
to see if you can extract more debug information to narrow down the
cause of the failure.

-Kevin

___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios

Re: [SeaBIOS] Chromebook doesn't boot BSD

2016-02-15 Thread Ronny Schneider

> Am 15.02.2016 um 15:40 schrieb edward wandasiewicz <0.w3...@gmail.com>:
> 
> On Sun, Feb 14, 2016 at 11:02 PM, Kevin O'Connor  wrote:
>> On Sun, Feb 14, 2016 at 08:30:47PM +0100, Ronny Schneider wrote:
 Am 14.02.2016 um 19:29 schrieb Kevin O'Connor :
 On Sun, Feb 14, 2016 at 06:04:16PM +0100, Ronny Schneider wrote:
> Hello there,
> 
> i have a Toshiba Chromebook 2 (CB30-B-104) with a flashed on SeaBIOS by 
> the script from John Lewis: 
> https://johnlewis.ie/custom-chromebook-firmware/rom-download/
> 
> Linux is running very well but i want to see OpenBSD 5.8 on this laptop. 
> But it’s not working, neither do FreeBSD 10.2, NetBSD 7.0 or DragonFly 
> 4.2. The boot stops at the point where the kernel wants to mount the 
> root-filesystem. I even copied an installed OpenBSD-System from an 
> usb-stick onto the emmc-flash of the chromebook but it’s not working.
> 
> I googled arround and found out the problem is not unknown among the 
> Chromebook Pixel. So i thought i could help a little by providing my 
> cbmem-bootlog for my machine: http://pastebin.com/asLqar5q
> If i can do more to see OpenBSD booting on this laptop, please let me 
> know :-)
 
 When you say "it's not working" - what happens - does the machine hang or 
 does it attempt to reboot?
 If it hangs, are you sure the machine is really stuck instead of just the 
 display not working?
>>> 
>>> The Display is working all the time. Using NetBSD, it also applies the 
>>> native resolution of the panel.
>>> 
 If it hangs, can you provide all the information on the screen prior to 
 the hang.
>>> 
>>> I used the amd64 install-images on an 64GB USB3-Stick for the following 
>>> pictures. If you want me to copy the installer-images onto the mmc of the 
>>> chromebook, tell me please.
>>> 
>>> With FreeBSD 11 it freezes. The machine hangs at the moment the kernel 
>>> tries to mount the root-filesystem and does not respond to any keypress 
>>> anymore. I have to shutdown the chromebook by keep pressing on the 
>>> powerbutton for a few seconds.
>>> Image: http://bilderhochladen.org/i/SFrHFStWws/
>>> 
>>> With OpenBSD 5.8 it „stalls“. The Cursor is blinking but nothing more 
>>> happens. Although the chromebook shuts down when the powerbutton is pressed.
>>> Image: http://bilderhochladen.org/i/4jFRYDYO11/
>>> 
>>> With NetBSD 7.0 it „stalls“ too. The Cursor is not blinking but i can enter 
>>> a „root device“. If nothing is entered it gives me the choice of either 
>>> „ddb“, „halt“ or „reboot“. „Halt" and „Reboot" are working properly, the 
>>> machine shuts down or reboots correctly.
>>> Image 1: http://bilderhochladen.org/i/zgq1usG2Ri/
>>> Image 2: http://bilderhochladen.org/i/EqVSDbn25x/
>>> 
>>> With Dragonfly 4.2 the kernel stops at the moment it tries to mount the 
>>> root-filesystem and asks me to enter the device. The machine has to be shut 
>>> down via holding the powerbutton for a few seconds.
>>> Image 1: http://bilderhochladen.org/i/TRIdjee9VP/
>>> Image 2: http://bilderhochladen.org/i/khPrwt4P0C/
>>> 
>> 
>> So if I understand correctly, you are attempting to launch BSD install
>> media from a USB drive, and the installer fails to start?
>> 
>> This doesn't look like a typical SeaBIOS issue
> 
> Try OpenBSD snapshots.
> 
> You're findings on the Toshiba Chromebook 2 may vary from what I found
> with the Chromebook Pixel 2015.
> 
> bsd.rd - you cant directly boot a bsd.rd kernel as it doesn't load
> inteldrm. VGA only, but there's no VGA 800x600 resolution for SeaBIOS
> to use, hence no dmesg output. It does boot, but you don't see the
> screen changes.
> 
> bsd - snapshots only - will load inteldrm
> 
> bsd 5.8 - will not load inteldrm
> 
> It will load the kernel (bsd snapsots) but won't display any dmesg
> output, until the kernel finds inteldrm, then it will output dmesg and
> hey presto, we've booted up.
> 
> If you want to update OpenBSD bsd, I use arch Linux and boot bsd.rd
> through qemu.
> 
> This patch
> 
> http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/dev/pci/drm/i915/i915_drv.c?sortby=date
> 
> Revision 1.95 fixes this issue, hence snapshots only.
> 
> This only refers to the Chromebook Pixel 2015 only.
> 
> If we run
> 
> $ vbeinfo
> 
> in grub2, we only get one resolution available, of 1280 x 850 x 16. No
> 800 x 600, so no dmesg output till inteldrm hits.
> 
> Coolstar organisation on Google+ (search coreboot Google+) has found a
> patch for Coreboot to fix this resolution problem at boot,.
> 
> I used
> 
> http://goo.gl/9sgchs
> 
> from https://wiki.archlinux.org/index.php/Chrome_OS_devices
> 
> to repartition the SSD on the Pixel 2015, install Arch, Grub2 &
> OpenBSD keeping ChromeOS too for updates to Coreboot & SeaBIOS.
> 
> You can install OpenBSD to the SSD and write the MBR (no Grub
> installed) and it will boot up via Ctrl-L keeping ChromeOS via Ctrl-D.
> But you need another OS to boot bsd.rd via qemu to upd

Re: [SeaBIOS] Chromebook doesn't boot BSD

2016-02-15 Thread edward wandasiewicz
On Sun, Feb 14, 2016 at 11:02 PM, Kevin O'Connor  wrote:
> On Sun, Feb 14, 2016 at 08:30:47PM +0100, Ronny Schneider wrote:
>> > Am 14.02.2016 um 19:29 schrieb Kevin O'Connor :
>> > On Sun, Feb 14, 2016 at 06:04:16PM +0100, Ronny Schneider wrote:
>> >> Hello there,
>> >>
>> >> i have a Toshiba Chromebook 2 (CB30-B-104) with a flashed on SeaBIOS by 
>> >> the script from John Lewis: 
>> >> https://johnlewis.ie/custom-chromebook-firmware/rom-download/
>> >>
>> >> Linux is running very well but i want to see OpenBSD 5.8 on this laptop. 
>> >> But it’s not working, neither do FreeBSD 10.2, NetBSD 7.0 or DragonFly 
>> >> 4.2. The boot stops at the point where the kernel wants to mount the 
>> >> root-filesystem. I even copied an installed OpenBSD-System from an 
>> >> usb-stick onto the emmc-flash of the chromebook but it’s not working.
>> >>
>> >> I googled arround and found out the problem is not unknown among the 
>> >> Chromebook Pixel. So i thought i could help a little by providing my 
>> >> cbmem-bootlog for my machine: http://pastebin.com/asLqar5q
>> >> If i can do more to see OpenBSD booting on this laptop, please let me 
>> >> know :-)
>> >
>> > When you say "it's not working" - what happens - does the machine hang or 
>> > does it attempt to reboot?
>> > If it hangs, are you sure the machine is really stuck instead of just the 
>> > display not working?
>>
>> The Display is working all the time. Using NetBSD, it also applies the 
>> native resolution of the panel.
>>
>> > If it hangs, can you provide all the information on the screen prior to 
>> > the hang.
>>
>> I used the amd64 install-images on an 64GB USB3-Stick for the following 
>> pictures. If you want me to copy the installer-images onto the mmc of the 
>> chromebook, tell me please.
>>
>> With FreeBSD 11 it freezes. The machine hangs at the moment the kernel tries 
>> to mount the root-filesystem and does not respond to any keypress anymore. I 
>> have to shutdown the chromebook by keep pressing on the powerbutton for a 
>> few seconds.
>> Image: http://bilderhochladen.org/i/SFrHFStWws/
>>
>> With OpenBSD 5.8 it „stalls“. The Cursor is blinking but nothing more 
>> happens. Although the chromebook shuts down when the powerbutton is pressed.
>> Image: http://bilderhochladen.org/i/4jFRYDYO11/
>>
>> With NetBSD 7.0 it „stalls“ too. The Cursor is not blinking but i can enter 
>> a „root device“. If nothing is entered it gives me the choice of either 
>> „ddb“, „halt“ or „reboot“. „Halt" and „Reboot" are working properly, the 
>> machine shuts down or reboots correctly.
>> Image 1: http://bilderhochladen.org/i/zgq1usG2Ri/
>> Image 2: http://bilderhochladen.org/i/EqVSDbn25x/
>>
>> With Dragonfly 4.2 the kernel stops at the moment it tries to mount the 
>> root-filesystem and asks me to enter the device. The machine has to be shut 
>> down via holding the powerbutton for a few seconds.
>> Image 1: http://bilderhochladen.org/i/TRIdjee9VP/
>> Image 2: http://bilderhochladen.org/i/khPrwt4P0C/
>>
>
> So if I understand correctly, you are attempting to launch BSD install
> media from a USB drive, and the installer fails to start?
>
> This doesn't look like a typical SeaBIOS issue

Try OpenBSD snapshots.

You're findings on the Toshiba Chromebook 2 may vary from what I found
with the Chromebook Pixel 2015.

bsd.rd - you cant directly boot a bsd.rd kernel as it doesn't load
inteldrm. VGA only, but there's no VGA 800x600 resolution for SeaBIOS
to use, hence no dmesg output. It does boot, but you don't see the
screen changes.

bsd - snapshots only - will load inteldrm

bsd 5.8 - will not load inteldrm

It will load the kernel (bsd snapsots) but won't display any dmesg
output, until the kernel finds inteldrm, then it will output dmesg and
hey presto, we've booted up.

If you want to update OpenBSD bsd, I use arch Linux and boot bsd.rd
through qemu.

This patch

http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/dev/pci/drm/i915/i915_drv.c?sortby=date

Revision 1.95 fixes this issue, hence snapshots only.

This only refers to the Chromebook Pixel 2015 only.

If we run

$ vbeinfo

in grub2, we only get one resolution available, of 1280 x 850 x 16. No
800 x 600, so no dmesg output till inteldrm hits.

Coolstar organisation on Google+ (search coreboot Google+) has found a
patch for Coreboot to fix this resolution problem at boot,.

I used

http://goo.gl/9sgchs

from https://wiki.archlinux.org/index.php/Chrome_OS_devices

to repartition the SSD on the Pixel 2015, install Arch, Grub2 &
OpenBSD keeping ChromeOS too for updates to Coreboot & SeaBIOS.

You can install OpenBSD to the SSD and write the MBR (no Grub
installed) and it will boot up via Ctrl-L keeping ChromeOS via Ctrl-D.
But you need another OS to boot bsd.rd via qemu to update files from
snapshots/amd64 to upgrade OpenBSD going forward.

Haven't tried the other BSD's.

Edward.

>- it looks more like
> the various BSD kernels don't like the USB controller and/or USB drive
> on your machine.  Have you tried

Re: [SeaBIOS] ipxe/seabios: segment register initialization

2016-02-15 Thread Kevin O'Connor
On Mon, Feb 15, 2016 at 08:43:18AM +0200, Michael S. Tsirkin wrote:
> On Mon, Feb 15, 2016 at 01:07:09AM +, Michael Brown wrote:
> > On 14/02/16 19:52, Michael S. Tsirkin wrote:
> > >On Sun, Feb 14, 2016 at 05:36:38PM +, Michael Brown wrote:
> > >>On 14/02/16 15:53, Michael S. Tsirkin wrote:
> > >>>do you think %DS should be zeroed when NBP is called then?
> > >>
> > >>Not according to the PXE spec.
> > >>
> > >>As far as I can tell, the initial value of %ds is undefined for both a PXE
> > >>NBP and a BIOS boot sector.
> > >
> > >Thanks,
> > 
> > Out of interest: did this question arise as a purely academic curiosity, or
> > is there some product in existence which creates a boot sector that relies
> > on %ds==0?
> > 
> > Michael
> 
> FWIW QEMU has a unit test with a boot sector that relies on %ds=0:
> https://git.kernel.org/cgit/virt/kvm/mst/qemu.git/tree/tests/bios-tables-test.c?h=pci
> (search for boot_sector in this file).
> 
> It's a test, not a product though, and would be easy to change not to
> rely on this.

FYI, I agree with Michael Brown - I know of no spec requiring %ds (nor
most of the other cpu registers) to be initialized when invoking the
boot sector.  SeaBIOS does currently zero most registers, but this was
done for general "data cleanliness" reasons.  I would recommend that
bootloaders not rely on any particular initial cpu state.

-Kevin

___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios


Re: [SeaBIOS] [RFC PATCH v3 3/3] fw/pci: Allocate IGD stolen memory

2016-02-15 Thread Kevin O'Connor
On Sat, Feb 13, 2016 at 06:03:31PM -0700, Alex Williamson wrote:
> On Sat, 13 Feb 2016 19:20:32 -0500
> "Kevin O'Connor"  wrote:
> > This confuses me - why didn't the host system BIOS turn on the LCD
> > panel during host bootup?
> 
> It turns off when we reset the device between VM instances or between
> VM boots.  IGD supports Function Level Reset (FLR).
> 
> > >Another desktop IvyBridge system
> > > doesn't really care about the vBIOS so long as we don't ask it to
> > > output anything before the guest native drivers are loaded.  If we
> > > could, I think we'd just enable vBIOS for laptop panel support, but
> > > that's really not an option, it's going to run as a boot option ROM as
> > > well, so we need to fix the issues that it generates there.  
> > 
> > From my experience with coreboot, running the vga option rom multiple
> > times during a given boot is very fragile.  (By multiple times, I mean
> > either the host running it and then a guest, or running it multiple
> > times from multiple guests.)  YMMV.
> 
> We do this regularly for graphics assignment, Nvidia, AMD, and now
> Intel.  It generally works ok.  Perhaps you've seen issues with the
> option ROM being run multiple times without resetting the device.  I
> could certainly believe that.

Interesting.  Using the FLR could be useful on some coreboot systems
where users want to run the option rom twice.  Thanks.

-Kevin

___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios


[SeaBIOS] AHCI: Set transfer mode according to the capabilities of connected drive

2016-02-15 Thread Zeh, Werner
Hi Kevin.

We had some issues with some connected AHCI devices in SeaBIOS. We have 
connected some CF-Cards
by using a simple SATA<->IDE bridge to the mainboard and in some cases, the 
drive (which is the CF-card) was
not recognized correctly. After some deeper analysis we found that SeaBIOS does 
not set up the
transfer rate which is used to communicate to the drive. The supported transfer 
rate can be found in the data structure
which is delivered by IDENTIFY_DEVICE command.

So in our error cases the default transfer rate was too high and therefore data 
error has occurred.
I have attached a patch which will deal with this case on AHCI controllers. 
Maybe you can push this patch to mainline
or at least have a look at it.

Up to now I have verified the function of this patch with the latest master 
branch of SeaBIOS and a Broadwell-DE CPU.
I have used PIO4, default PIO, Multiword-DMA2 and several Ultra-DMA CF-cards to 
ensure that all three paths work properly.

BTW: I am not that familiar with code style in SeaBIOS. If I made some formal 
mistakes, feel free to correct them.

Thank you in advance
Werner


ahci_transfermode.diff
Description: ahci_transfermode.diff
___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios

Re: [SeaBIOS] [RFC PATCH v3 3/3] fw/pci: Allocate IGD stolen memory

2016-02-15 Thread Gerd Hoffmann
  Hi,

> The issue is in the VM and it occurs every time the option ROM is
> executed.  Standard VGA text mode displays fine (ex. SeaBIOS version
> string and boot menu), but any sort of extended graphics mode (ex. live
> CD boot menu) tries to make use of the host memory area which
> corresponds to the stolen memory area of the physical device.

I'm wondering whenever we can just use seavgabios (and support standard
vga modes only).

cheers,
  Gerd


___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios


Re: [SeaBIOS] [Qemu-devel] [RFC PATCH v3 3/3] fw/pci: Allocate IGD stolen memory

2016-02-15 Thread Igor Mammedov
On Sat, 13 Feb 2016 18:03:31 -0700
Alex Williamson  wrote:

> On Sat, 13 Feb 2016 19:20:32 -0500
> "Kevin O'Connor"  wrote:
> 
> > On Sat, Feb 13, 2016 at 01:57:09PM -0700, Alex Williamson wrote:  
> > > On Sat, 13 Feb 2016 15:05:09 -0500
> > > "Kevin O'Connor"  wrote:
> > > > On Sat, Feb 13, 2016 at 11:51:51AM -0700, Alex Williamson wrote:
> > > > > On Sat, 13 Feb 2016 13:18:39 -0500
> > > > > "Kevin O'Connor"  wrote:  
> > > > > > On Sat, Feb 13, 2016 at 08:12:09AM -0700, Alex Williamson wrote:
> > > > > >   
> > > > > > > On Fri, 12 Feb 2016 21:49:04 -0500
> > > > > > > "Kevin O'Connor"  wrote:
> > > > > > > > On Fri, Feb 12, 2016 at 05:23:18PM -0700, Alex Williamson 
> > > > > > > > wrote:
> > > > > > > > > Intel IGD makes use of memory allocated and marked reserved 
> > > > > > > > > by the
> > > > > > > > > BIOS as a stolen memory range.  For the most part, guest 
> > > > > > > > > drivers don't
> > > > > > > > > make use of this, but our achilles heel is the vBIOS.  The 
> > > > > > > > > vBIOS
> > > > > > > > > programs the device to use the host stolen memory range and 
> > > > > > > > > it's used
> > > > > > > > > in the pre-boot environment.  Generally the guest won't have 
> > > > > > > > > access to
> > > > > > > > > the host stolen memory area, so these accesses either land in 
> > > > > > > > > VM
> > > > > > > > > memory or unassigned space and generate IOMMU faults.  By 
> > > > > > > > > allocating
> > > > > > > > > this range in SeaBIOS and programming it into the device, 
> > > > > > > > > QEMU (via
> > > > > > > > > vfio) can make sure this guest allocated stolen memory range 
> > > > > > > > > is used
> > > > > > > > > instead.  
> > > > > > > > 
> > > > > > > > What does "vBIOS" mean in this context?  Is it the video device 
> > > > > > > > option
> > > > > > > > rom or something else?
> > > > > > > 
> > > > > > > vBIOS = video BIOS, you're correct, it's just the video device 
> > > > > > > option
> > > > > > > ROM.
> > > > > > 
> > > > > > Is the problem from when the host runs the video option rom, or is 
> > > > > > the
> > > > > > problem from the guest (via SeaBIOS) running the video option rom?  
> > > > > > If
> > > > > > the guest is running the option rom, is it the first time the option
> > > > > > rom has been run for the machine (ie, was the option rom not 
> > > > > > executed
> > > > > > on the host when the host machine first booted)?
> > > > > > 
> > > > > > FWIW, many of the chromebooks use coreboot with Intel graphics and a
> > > > > > number of users have installed SeaBIOS (running natively) on their
> > > > > > machines.  Running the intel video option rom more than once has 
> > > > > > been
> > > > > > known to cause issues.  
> > > > > 
> > > > > The issue is in the VM and it occurs every time the option ROM is
> > > > > executed.  Standard VGA text mode displays fine (ex. SeaBIOS version
> > > > > string and boot menu), but any sort of extended graphics mode (ex. 
> > > > > live
> > > > > CD boot menu) tries to make use of the host memory area which
> > > > > corresponds to the stolen memory area of the physical device.  We're
> > > > > not really sure how the ROM execution arrives at these addresses (not
> > > > > from the device according to access traces), but we can see when the
> > > > > ROM is writing these addresses to the device and modify they addresses
> > > > > to point at a VM memory range which we've allocated.  That's what this
> > > > > code attempts to do, allocate a buffer and tell QEMU about it via the
> > > > > BDSM (Base Data of Stolen Memory) register.  
> > > > 
> > > > Forgive me if I'm not fully understanding this.  If I read what you're
> > > > saying then the sequence is something like:
> > > > 
> > > > 1 - the host system bios (or vgabios) programs the GTT/stolen memory
> > > > base register at host system bootup time and reserves it in the
> > > > host e820 map.
> > > > 
> > > > 2 - upon running qemu, the guest reruns the vga bios option rom which
> > > > seems to work (ie, text mode works)
> > > > 
> > > > 3 - in the guest, upon running a bootloader that uses graphics mode,
> > > > the bootloader calls the vgabios to switch to graphics mode, and
> > > > the vgabios sends commands to the graphics hardware that somehow
> > > > reference the host stolen memory
> > > 
> > > What exactly happens here isn't clear to me, but this is a plausible
> > > explanation.  What we see in tracing access to the hardware is that a
> > > bunch of addresses are written to the device that fall within the host
> > > e820 reserved area and then the device starts generating IOMMU faults
> > > trying to access those addresses.
> > > 
> > > > 4 - your patch causes QEMU to catch these commands with references to
> > > > the host stolen memory and replace them with references to the
> > > > guest stolen memory (which seabios creates)
> > > > 
> > > > Am I un

Re: [SeaBIOS] [SEABIOS] Plans for either 1.9.1 or 1.10.0?

2016-02-15 Thread Gerd Hoffmann
  Hi,

> 1.9-stable created now, with the patch above cherry-picked.

1.9.1 tagged & tarball uploaded now.

cheers,
  Gerd


___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios