Revision tags: release/14.0.0 |
|
#
24a0fef9 |
| 15-Jun-2023 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: maintain RSDT and XSDT by basl
In a subsquent commit the TPM emulation will build it's own TPM2 table. This needs to be registered to the RSDT and XSDT. Instead of making the rsdt and xsdt va
bhyve: maintain RSDT and XSDT by basl
In a subsquent commit the TPM emulation will build it's own TPM2 table. This needs to be registered to the RSDT and XSDT. Instead of making the rsdt and xsdt variables global, we can simply add a helper to basl.
Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40559
show more ...
|
Revision tags: release/13.2.0, release/12.4.0 |
|
#
4e46ab0e |
| 22-Jul-2022 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: allow adding FwCfg items to ACPI tables
A TPM has an event log. Therefore, qemu adds a FwCfg item and adds it to an ACPI table. We like to use the same OVMF driver as qemu, so we should do th
bhyve: allow adding FwCfg items to ACPI tables
A TPM has an event log. Therefore, qemu adds a FwCfg item and adds it to an ACPI table. We like to use the same OVMF driver as qemu, so we should do the same. This commit adds the ability to basl to do it.
Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40451
show more ...
|
Revision tags: release/13.1.0 |
|
#
7959d80d |
| 06-Apr-2022 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: make use of qemus acpi table loader
Add all acpi tables to qemus acpi table loader. This passes the acpi tables by fwcfg to the guest.
Reviewed by: markj MFC after: 1 week Sponsored by: B
bhyve: make use of qemus acpi table loader
Add all acpi tables to qemus acpi table loader. This passes the acpi tables by fwcfg to the guest.
Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D38439
show more ...
|
#
b972e7cb |
| 30-Nov-2022 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: build SPCR ACPI table
OVMF ships some static ACPI tables. This worked in the past but won't work in the future when we support devices like tpms. They require a TPM ACPI table. So, we have to
bhyve: build SPCR ACPI table
OVMF ships some static ACPI tables. This worked in the past but won't work in the future when we support devices like tpms. They require a TPM ACPI table. So, we have to dynamically create ACPI tables depending on the bhyve configuration.
Bhyve has much more information about the system than OVMF. Therefore, it's easier for bhyve to build up some ACPI tables. For that reason, it would be much better to use the ACPI tables provided by bhyve instead of building some tables by OVMF.
At the moment, OVMF always creates a SPCR table. Maybe someone depends on it. So, we have to build it by bhyve too before we can patch OVMF to install the tables provided by bhyve.
Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D37591
show more ...
|
#
0acf6961 |
| 29-Nov-2022 |
John Baldwin <jhb@FreeBSD.org> |
bhyve basl: Use GCC pragmas.
These work with both clang and GCC.
Reviewed by: corvink, markj Differential Revision: https://reviews.freebsd.org/D37484
|
#
67654ffd |
| 06-Apr-2022 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: use dynamic ACPI table offsets
Now that all ACPI tables are build by basl, basl can dynamically calculate the offset for each table.
Reviewed by: jhb, markj (older version) Approved by: ma
bhyve: use dynamic ACPI table offsets
Now that all ACPI tables are build by basl, basl can dynamically calculate the offset for each table.
Reviewed by: jhb, markj (older version) Approved by: manu (mentor) MFC after: 2 weeks Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D37002
show more ...
|
#
60277ad7 |
| 16-Nov-2022 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: add helper to fill a ACPI_GENERIC_ADDRESS
Reviewed by: jhb Approved by: manu (mentor) MFC after: 2 weeks Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://rev
bhyve: add helper to fill a ACPI_GENERIC_ADDRESS
Reviewed by: jhb Approved by: manu (mentor) MFC after: 2 weeks Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D37407
show more ...
|
#
8897b562 |
| 16-Nov-2022 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: add helper to append a basl table without a header
The common style for build an ACPI table will be:
1. basl_table_create 2. basl_table_append_header 3. setup an ACPI_TABLE_* struct 4. basl_
bhyve: add helper to append a basl table without a header
The common style for build an ACPI table will be:
1. basl_table_create 2. basl_table_append_header 3. setup an ACPI_TABLE_* struct 4. basl_table_append_bytes (without header)
Add a helper for the last step.
Reviewed by: jhb, markj Approved by: manu (mentor) MFC after: 2 weeks Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D37406
show more ...
|
#
7263419f |
| 16-Nov-2022 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: make basl_table_add_* functions public
The code will be more readable if we use struct definitions from ACPI-CA to build ACPI tables. We can fill out the struct and append it to the basl_tabl
bhyve: make basl_table_add_* functions public
The code will be more readable if we use struct definitions from ACPI-CA to build ACPI tables. We can fill out the struct and append it to the basl_table by using basl_table_append_bytes. After that, we have to declare which checksums, length and pointers should be patched by basl. That's done by the add_* functions.
Reviewed by: jhb, markj Approved by: manu (mentor) MFC after: 2 weeks Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D37405
show more ...
|
#
c127c61e |
| 18-Nov-2022 |
Mark Johnston <markj@FreeBSD.org> |
bhyve: Let BASL compile with raised warnings
- Make basl_dump() as unused. - Avoid arithmetic on a void pointer. - Avoid a signed/unsigned comparison with BASL_TABLE_CHECKSUM_LEN_FULL_TABLE. - Ign
bhyve: Let BASL compile with raised warnings
- Make basl_dump() as unused. - Avoid arithmetic on a void pointer. - Avoid a signed/unsigned comparison with BASL_TABLE_CHECKSUM_LEN_FULL_TABLE. - Ignore warnings about unused parameters from stuff pulled in by acpi.h. In particular, any prototype wrapped by ACPI_DBG_DEPENDENT_RETURN_VOID() will raise such parameters unless ACPI_DEBUG_OUTPUT is defined.
Reviewed by: corvink, jhb Differential Revision: https://reviews.freebsd.org/D37397
show more ...
|
#
2fb0f352 |
| 06-Apr-2022 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: add basl support for common table header
Most ACPI tables are using the same header. Make it easy to create this header by creating a function for it.
Reviewed by: jhb, markj (older version
bhyve: add basl support for common table header
Most ACPI tables are using the same header. Make it easy to create this header by creating a function for it.
Reviewed by: jhb, markj (older version) Approved by: manu (mentor) MFC after: 2 weeks Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D36992
show more ...
|
#
49b947c0 |
| 06-Apr-2022 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: add basl support for pointers
Some ACPI tables like XSDT contain pointers to other ACPI tables. When an ACPI table is loaded by qemu's loader, the address in the guest memory is unknown. For
bhyve: add basl support for pointers
Some ACPI tables like XSDT contain pointers to other ACPI tables. When an ACPI table is loaded by qemu's loader, the address in the guest memory is unknown. For that reason, the qemu loader supports patching those pointers. Basl keeps track of all pointers and causes the qemu loader to patch all pointers.
The qemu ACPI table loader is unsupport yet. However, in a future commit bhyve will use dynamic ACPI table offsets based on the size and alignment requirements of each ACPI table. Therefore, tracking ACPI table pointer is required too.
Reviewed by: jhb Approved by: manu (mentor) MFC after: 2 weeks Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D36991
show more ...
|
#
29578470 |
| 06-Apr-2022 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: add basl support for checksums
The qemu ACPI table loader patches the ACPI tables. After patching them, checksums aren't correct any more. It has to calculate a new checksum for the ACPI tabl
bhyve: add basl support for checksums
The qemu ACPI table loader patches the ACPI tables. After patching them, checksums aren't correct any more. It has to calculate a new checksum for the ACPI table. For that reason, basl has to keep track of checksums and has to cause the qemu loader to create new checksums for the tables.
The qemu ACPI table loader isn't supported yet. However, the address of all tables is unknown as long as bhyve hasn't finished ACPI table creation. So, the checksum of tables which include pointer to other tables are unknown too. This requires tracking of checksums too.
Reviewed by: jhb Approved by: manu (mentor) MFC after: 2 weeks Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D36990
show more ...
|
#
3a766cd0 |
| 06-Apr-2022 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: add basl support for length fields
ACPI tables have different layouts. So, there's no common position for the length field. When tables are build by basl, the length is unknown at the beginni
bhyve: add basl support for length fields
ACPI tables have different layouts. So, there's no common position for the length field. When tables are build by basl, the length is unknown at the beginning. It has to be set after building the table.
Reviewed by: jhb Approved by: manu (mentor) MFC after: 2 weeks Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D36989
show more ...
|
#
995374a6 |
| 04-Nov-2022 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: add basl support for generic addresses
In upcoming commits, bhyve will build some ACPI tables by it's own. Therefore, it should be capable of appending GENERIC_ADDRESS structs to ACPI tables.
bhyve: add basl support for generic addresses
In upcoming commits, bhyve will build some ACPI tables by it's own. Therefore, it should be capable of appending GENERIC_ADDRESS structs to ACPI tables.
Reviewed by: jhb, markj Approved by: manu (mentor) MFC after: 2 weeks Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D36988
show more ...
|
#
e22f5ce2 |
| 04-Nov-2022 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: add basl support for int values
In upcoming commits, bhyve will build some ACPI tables by it's own. Therefore, it should be capable of appending int values to ACPI tables.
Reviewed by: jhb,
bhyve: add basl support for int values
In upcoming commits, bhyve will build some ACPI tables by it's own. Therefore, it should be capable of appending int values to ACPI tables.
Reviewed by: jhb, markj (older version) Approved by: manu (mentor) MFC after: 2 weeks Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D36987
show more ...
|
#
21bbc284 |
| 04-Nov-2022 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: add basic basl implementation
Basl is the bhyve ASL compiler. At the moment, it's just a small wrapper to call iasl, the Intel ASL compiler. As bhyve will gain support for qemu's ACPI table l
bhyve: add basic basl implementation
Basl is the bhyve ASL compiler. At the moment, it's just a small wrapper to call iasl, the Intel ASL compiler. As bhyve will gain support for qemu's ACPI table loader in the future, it has to create ACPI tables on it's own. Therefore, it makes sense to create a new file which keeps the code for basl.
This first implementation of basl supports creating an ACPI table by appending raw bytes to it. It's also capable of loading all tables into guest memory.
Reviewed by: jhb, markj (older version) Approved by: manu (mentor) MFC after: 2 weeks Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D36984
show more ...
|