Hi Philippe,
On 9/5/23 17:09, Philippe Mathieu-Daudé wrote:
Hi Marcello,
On 5/9/23 17:05, Marcello Sylverster Bauer wrote:
Greetings,
I'm currently working on a project to support Intel IPU6 in QEMU via
VFIO so that the guest system can access the camera. This requires
extending the ACPI device definition so that the guest knows how to
access the camera.
However, I cannot extend the PCI devices because their names are not 4
characters long and therefore do not follow the ACPI specification.
When I use '-acpitable' to include my own SSDT for the IPU6 PCI
device, it does not allow me to declare the device as an External
Object because it automatically adds padding underscores.
e.g.
Before:
```
External(_SB.PCI0.S18.SA0, DeviceObj)
```
After:
```
External(_SB.PCI0.S18_.SA0_, DeviceObj)
```
What do you mean by "before" / "after"?
Before is what is written in my SSDT ASL source file that is provided to
QEMU via the "-acpitable" flag. After is what is actually written to the
SSDT inside the VM.
If you compile and decompile the source file with iasl, you will get the
same result.
Adding the underscore padding is hard coded in iASL and also in QEMU
when parsing an ASL file. (see: build_append_nameseg())
So here are my questions:
1. Is there a solution to extend the ACPI PCI device using
'-acpitable' without having to patch iASL or QEMU?
2. Are there any plans to change the names to comply with the ACPI
spec? (e.g. use "S%.03X" format string instead)
Thanks
Marcello