17 Feb 15:28 2011 Jonathan Kollasch wrote:
]I have it (mostly) working now, just have to get it polished up a bit.
] Jonathan Kollasch
Right now I am trying to debug the same AHCI problem. The Host To Device
FIS length change also gets me past the first polling loop in ahci_command,
thanks for the tip. Do you have any fixes beyond that one I should try?
CC'ing the mailing list.
On Mon, May 23, 2011 at 03:24:05PM +0900, Daniel Castro wrote:
> thanks for your answer.
> Please see below:
> On Sat, May 21, 2011 at 10:29 PM, Kevin O'Connor <kevin(a)koconnor.net> wrote:
> > On Thu, May 19, 2011 at 02:33:52PM +0900, Daniel Castro wrote:
> >> Good Day,
> >> In order to give PV Drivers to SeaBIOS we will need to solve a few
> >> problems, one is the following:
> >> Does a booting kernel informs the BIOS that it will leave real mode
> >> and not use it again? When the booting kernel uses CPU real mode for
> >> the last time, how can we (Xen or SeaBIOS) know that real mode will no
> >> longer be used, and hence BIOS calls will not be issued?
> > In the general case, no.
> > The ACPI spec does define a mechanism for the OS to inform the BIOS
> > that it is transitioning from "Legacy state" to "Working state" via an
> > SMI. SeaBIOS does have code for this (see src/smm.c), but it doesn't
> > currently do anything interesting. Unfortunately, this is only
> > available for OSs that support ACPI.
> In your opinion how hard would implementing that functionality will
Well, there's code there today. Unfortunately it's all in 16bit mode
assembler. If anything significant needs to be done then
transitioning to C code would be needed, and getting that all setup
would likely be a pain.
>and how often that call is supported by HVM guests? Windows
> support such feature?
I think it's common for OSes to do this. It's been in the ACPI spec
for some time, and not doing it would likely break USB keyboard
> >> We want upon last real mode usage to leave all Xen PV information in a
> >> clean state, this means, closing the channel and ring between the
> >> newly created domain and the host system.
> > Is it required to close the channel? Can opening a new channel
> > implicitly close the old channel (I believe this is what the virtio
> > stuff does)?
> > -Kevin
> | +---------------------------------+ | This space intentionally blank
> for notetaking.
> | | | Daniel Castro, |
> | | | Consultant/Programmer.|
> | | | U Andes |
In order to give PV Drivers to SeaBIOS we will need to solve a few
problems, one is the following:
Does a booting kernel informs the BIOS that it will leave real mode
and not use it again? When the booting kernel uses CPU real mode for
the last time, how can we (Xen or SeaBIOS) know that real mode will no
longer be used, and hence BIOS calls will not be issued?
We want upon last real mode usage to leave all Xen PV information in a
clean state, this means, closing the channel and ring between the
newly created domain and the host system.
If you have any ideas please let me know.
| +---------------------------------+ | This space intentionally blank
| | | Daniel Castro, |
| | | Consultant/Programmer.|
| | | U Andes |
The following set of patches add TPM and Trusted Computing support to SeaBIOS.
In particular the patches add:
- a TPM driver for the Qemu's TPM TIS emulation (not yet in Qemu git)
- ACPI support for the TPM device (SSDT table)
- ACPI support for measurement logging (TCPA table)
- Support for initialzation of the TPM
- Support for the TCG BIOS extensions (1ah handler [ah = 0xbb])
(used by trusted grub; http://trousers.sourceforge.net/grub.html)
- Static Root of Trusted for Measurement (SRTM) support
- Support for S3 resume (sends command to TPM upon resume)
- TPM-specific menu for controlling aspects of the TPM
- [An optional test suite for the TIS interface]
All implementations necessarily follow specifications.
When all patches are applied the following services are available
- SSDT ACPI table for TPM support
- initialization of the TPM upon VM start and S3 resume
- Static root of trust for measurements (SRTM) that measures (some) data
of SeaBIOS in TCPA ACPI table
- 1ah interrupt handler offering APIs for measuring and sending commands to
the TPM (trusted grub uses them)
- User menu for controlling aspects of the state of the TPM
- if ! has_working_tpm() now returns error code everywhere
- tis_test.c now also under LGPLv3
- in inthandler, pulled set_cf() out of switch and then only call it in
the default case where we need to indicate that a function is not
- some nits here and there
- calling timer_setup now after S3 resume
- following Kevin's comment
- refactoring code so that every patch compiles
I'm CC'ing the seabios mailing list.
On Tue, May 10, 2011 at 04:32:29PM -0500, Adnan Khaleel wrote:
> Hi Kevin,
> I'm using a modified version of Qemu that adds some additional
> functionality to the chipset being emulated and now I can't seem to
> boot from the hard disk since the bios is reporting that no boot
> devices are available.
> Would you give me some pointers on what I have to do to enable
> debugging on Seabios and Qemu so that I can see whats happening?
> I've changed the debug level to 8 in the seabios config but nothing
> seems to be printed on the terminal.
Sounds like you need the debug output routed to stdio:
qemu ... -chardev stdio,id=seabios -device isa-debugcon,iobase=0x402,chardev=seabios