On Mon, Apr 19, 2010 at 04:34:54PM -0300, Lucas Meneghel Rodrigues wrote:
After doing some reading it seems to me that the reason why that is not happening is because SeaBIOS still doesn't have code to support CPU hot plugging as BochsBIOS did.
As I understand it, the hotplug support was only in the kvm copy of bochs bios. It also limited the number of cpus one could use (I think 16).
The current smp support in SeaBIOS doesn't limit the number of cpus.
So, there has been reluctance to just port the old kvm bios code forward.
-Kevin
On 04/22/10 03:12, Kevin O'Connor wrote:
As I understand it, the hotplug support was only in the kvm copy of bochs bios. It also limited the number of cpus one could use (I think 16).
The current smp support in SeaBIOS doesn't limit the number of cpus.
So, there has been reluctance to just port the old kvm bios code forward.
I believe the number was limited to 15, due to limits in a certain proprietary operating system.
The issue with the AML code in BOCHS vs the code in Seabios is a bit tricky. The tables in BOCHS are a fair bit more complicated with the hotplug code and therefore statically generated, whereas Seabios generates them dynamically at boot time.
Generating the more complex tables dynamically would be preferred, but it requires like half an AML compiler in Seabios, so it kinda stalled there....
Cheers, Jes
On Wed, Apr 28, 2010 at 11:31:00AM +0200, Jes Sorensen wrote:
On 04/22/10 03:12, Kevin O'Connor wrote:
As I understand it, the hotplug support was only in the kvm copy of bochs bios. It also limited the number of cpus one could use (I think 16).
The current smp support in SeaBIOS doesn't limit the number of cpus.
So, there has been reluctance to just port the old kvm bios code forward.
I believe the number was limited to 15, due to limits in a certain proprietary operating system.
The issue with the AML code in BOCHS vs the code in Seabios is a bit tricky. The tables in BOCHS are a fair bit more complicated with the hotplug code and therefore statically generated, whereas Seabios generates them dynamically at boot time.
Generating the more complex tables dynamically would be preferred, but it requires like half an AML compiler in Seabios, so it kinda stalled there....
We can try to be smart and generate most of the code statically and only minimum that absolutely required dynamically. Haven't looked at how simple dynamic part can be made.
-- Gleb.
On 04/28/10 12:30, Gleb Natapov wrote:
On Wed, Apr 28, 2010 at 11:31:00AM +0200, Jes Sorensen wrote:
On 04/22/10 03:12, Kevin O'Connor wrote: Generating the more complex tables dynamically would be preferred, but it requires like half an AML compiler in Seabios, so it kinda stalled there....
We can try to be smart and generate most of the code statically and only minimum that absolutely required dynamically. Haven't looked at how simple dynamic part can be made.
I looked at it briefly and ran away screaming :) I am sure it can be done, bit it would require pretty good understanding of the AML encodings.
The CPU declarations are particularly tricky as they get pretty big and complex and need to live in the DSDT, whereas a lot of other things we can shift off to separate SSDT tables and only put the minimum that needs to be generated dynamically in it's own table.
Cheers, Jes
On Wed, Apr 28, 2010 at 12:41:51PM +0200, Jes Sorensen wrote:
On 04/28/10 12:30, Gleb Natapov wrote:
On Wed, Apr 28, 2010 at 11:31:00AM +0200, Jes Sorensen wrote:
On 04/22/10 03:12, Kevin O'Connor wrote: Generating the more complex tables dynamically would be preferred, but it requires like half an AML compiler in Seabios, so it kinda stalled there....
We can try to be smart and generate most of the code statically and only minimum that absolutely required dynamically. Haven't looked at how simple dynamic part can be made.
I looked at it briefly and ran away screaming :) I am sure it can be
This is normal reaction to ACPI of a healthy human being.
done, bit it would require pretty good understanding of the AML encodings.
The CPU declarations are particularly tricky as they get pretty big and complex and need to live in the DSDT, whereas a lot of other things we can shift off to separate SSDT tables and only put the minimum that needs to be generated dynamically in it's own table.
We can generate complex code statically and call it from dynamically generated CPU declarations.
-- Gleb.
On 28.04.2010 12:45, Gleb Natapov wrote:
On Wed, Apr 28, 2010 at 12:41:51PM +0200, Jes Sorensen wrote:
The CPU declarations are particularly tricky as they get pretty big and complex and need to live in the DSDT, whereas a lot of other things we can shift off to separate SSDT tables and only put the minimum that needs to be generated dynamically in it's own table.
We can generate complex code statically and call it from dynamically generated CPU declarations.
There is some ACPI code generator in coreboot. Not sure if it is usable for those purposes. coreboot uses it to generate AMD CPU frequency tables.
Regards, Carl-Daniel