On Tue, Dec 06, 2011 at 07:32:55PM -0500, Amos Kong wrote:
> ----- Original Message -----
> > On Tue, Dec 06, 2011 at 01:39:35PM +0800, Amos Kong wrote:
> > > Only func 0 is registered to guest driver (we can
> > > only found func 0 in slot->funcs list of driver),
> > > the other functions could not be cleaned when
> > > hot-removing the whole slot. This patch adds
> > > device per function in ACPI DSDT tables.
> > > Notify only when func0 is added and removed.
> > >
> > > Have tested with linux/winxp/win7, hot-adding/hot-remving,
> > > single/multiple function device, they are all fine(all
> > > added devices can be removed).
> > >
> > This includes some bits I wrote but this is not an ack
> > of the patch yet :)
> >
> > I find it surprising that this works: a function
> > has _EJ0 so would not guest expect that ejecting
> > a single one will only remove it, and not all functions?
>
> Removing single func is not supported by specific, and current code
> (qemu/kernel pci driver) process hot-remove with the whole slot.
> We could not hot-remove single func with/without this patch.
>
> Register _EJ0() for each func, then all the funcs will be record
> into the function list of the slot.
Just as an update - it's not clear to me what this patch does, and it
seems like Michael had some concerns.
Also, it doesn't seem right to hardcode the generation of that many
devices (248) in the AML code.
So, unless there are further comments I'm going to hold off on this
patch.
-Kevin
Hello list,
I´m trying to boot a Via pc2500e motherboard with coreboot and seabios
(built from coreboot, stable).
Everything is ok, I can see the bootmenu (I have only one hard disk at
the moment), but when I press "1" it seems coreboot is restarting
entering in a loop.
Is this a normal behaviour? I tried attaching a bootorder file with
cbfstool with same result.
I attach you the log.
Thanks in advance.
Best regards,
Elisenda
Hi,
There were a number of requests about support of 64bit PCI BAR allocations.
Also we have observed the issue on guests with older linux version
(2.6.18): if we
have a 64bit BAR allocated within first 4GB, the OS may hang during
start process.
(I guess it is an OS bug, but we need to take care of this).
This patch addresses these two issues and allows 64bit BARs to be
allocated in ranges
above 4GB.
Patch consists of three parts:
1. Add new range above 4GB in _CRS table to let Windows 2008 work
properly. Thanks
a lot to Michael S. Triskin for this brilliant idea.
2. Added new PCI_REGION_TYPE_PREFMEM_64 region type in pciinit and changed
types of variables.
3. Take care about PCI devices with 64bit BARs on secondary buses.
Patches have been tested on several configurations which includes linux
2.6.18 - 3.0 &
windows 2008. Everything works quite well.
On Sat, Dec 17, 2011 at 04:44:52PM +0000, Julian Pidancet wrote:
> Also, I implemented this vbe driver skeleton with an interface which
> could be as generic as possible to allow to implement several
> different drivers. But I am actually wondering now what would be the
> best way for several drivers to share the same interface in terms of
> code.
That is an interesting issue. The current lgpl seems to use two
schemes - the bochs vbe interface is inline with the standard vga
interface and uses "#ifdef VBE" guards - the cirrus interface takes
the int10 vector, checks for the calls it needs to handle and then
calls the standard vga interface for the rest.
A couple of years back, a geode interface was written for seabios -
see the thread at (look for the code in attachments):
http://www.coreboot.org/pipermail/coreboot/2009-August/051624.html
I'm don't recall why the above didn't get merged. The Geode interface
only needed to override the legacy timing parameter table and be
called during init.
I'm not sure which scheme makes the most sense. I could see using the
"cirrus" scheme - each hardware type defines its own "handle_10" and
"vga_post" in a file dedicated to that hardware, which then check for
hardware specific functions and call "library" code for the standard
stuff. However, I'm not sure how much code duplication there would be
for things like the VBE calls which seem to contain a mix of standard
info and hardware specific info.
-Kevin
On Thu, Dec 29, 2011 at 09:20:00AM +0000, Alexey Korolev wrote:
> >>
> > Patches have been tested on several configurations which includes
> >> linux 2.6.18 - 3.0 &
> >> windows 2008. Everything works quite well.
>
> >Which qemu version did you use?
> I tried both 0.15 and 1.0
qemu or qemu-kcm?
Hi all,
I am having some problems with SeaBIOS from git (9-december-2011).
My USB keyboard and USB mouse are not detected.
EHCI and OHCI are being init but no further actions.
I can not use my keyboard in SeaBIOS and Grub.
USB keyboard and USB mouse are enabled in SeaBIOS .config .
The Linux kernel does detect them and i can use them in Linux.
I hope someone could give me some clue on what i am doing wrong.
Also see attached SeaBIOS and kernel log's and .config .
Thanks,Nils.
Hi Kevin,
You wrote:
>Over the last few days I've been looking through the vga bios code,
>and I observed some areas for improvement.
>
>-Kevin
>
>
>Kevin O'Connor (6):
> vgabios: Define video_save_pointer_table layout.
> vgabios: Minor - use segoff_s for static_functionality ptr.
> vgabios: Extend information in internal vgamode_s struct.
> vgabios: Use vgamode_s instead of video_param_table in code.
> vgabios: Generate video_param_table at runtime.
> vgabios: Place a signature at offset 0x1e of the rom.
With that patchset i get following error:
Compiling whole program out/vgaccode.16.s
vgasrc/vgatables.c: In function 'build_video_param':
vgasrc/vgatables.c:66: warning: implicit declaration of function
'memcpy_far'
src/util.c:163: note: previous definition of 'memcpy_far' was here
vgasrc/vgatables.c:66: error: incompatible implicit declaration of
function 'memcpy_far'
src/util.c:163: note: previous definition of 'memcpy_far' was here
make: *** [out/vgaccode.16.s] Error 1
Thanks, Nils.
Hi all,
I was trying to test the latest vga patches but i encountered several
compile errors.
These are the errors i get when i compile vanilla SeaBIOS GIT:
Compiling whole program out/vgaccode.16.s
vgasrc/clext.c: In function 'cirrus_extbios_80h':
vgasrc/clext.c:438: error: dereferencing pointer to incomplete type
vgasrc/clext.c:441: error: dereferencing pointer to incomplete type
vgasrc/clext.c:443: error: dereferencing pointer to incomplete type
vgasrc/clext.c:444: error: dereferencing pointer to incomplete type
vgasrc/clext.c: In function 'cirrus_extbios_81h':
vgasrc/clext.c:452: error: dereferencing pointer to incomplete type
vgasrc/clext.c: In function 'cirrus_extbios_82h':
vgasrc/clext.c:460: error: dereferencing pointer to incomplete type
vgasrc/clext.c:461: error: dereferencing pointer to incomplete type
vgasrc/clext.c: In function 'cirrus_extbios_85h':
vgasrc/clext.c:467: error: dereferencing pointer to incomplete type
vgasrc/clext.c: In function 'cirrus_extbios_9Ah':
vgasrc/clext.c:473: error: dereferencing pointer to incomplete type
vgasrc/clext.c:474: error: dereferencing pointer to incomplete type
vgasrc/clext.c: In function 'cirrus_extbios_A0h':
vgasrc/clext.c:488: error: dereferencing pointer to incomplete type
vgasrc/clext.c:489: error: dereferencing pointer to incomplete type
vgasrc/clext.c:490: error: dereferencing pointer to incomplete type
vgasrc/clext.c:491: error: dereferencing pointer to incomplete type
vgasrc/clext.c:491: error: dereferencing pointer to incomplete type
vgasrc/clext.c:491: error: dereferencing pointer to incomplete type
vgasrc/clext.c:491: error: dereferencing pointer to incomplete type
vgasrc/clext.c: In function 'cirrus_extbios_A1h':
vgasrc/clext.c:497: error: dereferencing pointer to incomplete type
vgasrc/clext.c: In function 'cirrus_extbios_A2h':
vgasrc/clext.c:503: error: dereferencing pointer to incomplete type
vgasrc/clext.c: In function 'cirrus_extbios_AEh':
vgasrc/clext.c:509: error: dereferencing pointer to incomplete type
vgasrc/clext.c: In function 'cirrus_extbios':
vgasrc/clext.c:516: error: dereferencing pointer to incomplete type
vgasrc/clext.c: In function 'cirrus_vesa_not_handled':
vgasrc/clext.c:638: error: dereferencing pointer to incomplete type
vgasrc/clext.c: In function 'cirrus_vesa':
vgasrc/clext.c:644: error: dereferencing pointer to incomplete type
make: *** [out/vgaccode.16.s] Error 1
Thanks,Nils.
Hi Kevin,
you wrote:
>I went through the latest Geode VGA BIOS patch and updated it to merge
>with the current tree. I also fixed it up so that it doesn't need to
>modify the common code.
>
>Unfortunately, I have no ability to test this code. So, I don't know
>if it works properly. Hopefully someone with the hardware can run a
>test.
The last weeks the VGA code is changing rapidly, very nice.
Thanks to all involved.
I use a patched version that was almost ready to send.(just a little
cleanup)
I will look at your patch and adapt it to Geode GX2.
I can only test on GX2, i don't have a LX but it only needs some minor
patching.
Thanks,Nils.
I went through the latest Geode VGA BIOS patch and updated it to merge
with the current tree. I also fixed it up so that it doesn't need to
modify the common code.
Unfortunately, I have no ability to test this code. So, I don't know
if it works properly. Hopefully someone with the hardware can run a
test.
-Kevin