Commit 9e7ae02
committed
vmm: exclude legacy serial port I/O ranges from PCI Root Complex _CRS
The PCI Root Complex ACPI _CRS (Current Resource Settings) was claiming
the entire legacy I/O range 0x000-0xCF7, which includes the COM1-COM4
serial port addresses. This causes a resource conflict on Windows guests
where Windows Device Manager shows:
ACPI\PNP0501\0 - COM1, Problem Code 12 (CM_PROB_NORMAL_CONFLICT)
Windows refuses to load drivers for devices when their I/O resources
overlap with another device's claimed range. The serial port driver
fails to load because the PCI Root Complex already claims 0x3F8-0x3FF.
This patch splits the I/O range to exclude the legacy COM port addresses:
- 0x000-0x2E7 (before COM4)
- 0x400-0xCF7 (after COM1)
The excluded range 0x2E8-0x3FF covers all four standard COM ports:
- COM1: 0x3F8-0x3FF
- COM2: 0x2F8-0x2FF
- COM3: 0x3E8-0x3EF
- COM4: 0x2E8-0x2EF
This has no impact on Linux guests (which don't enforce strict ACPI
resource checking) or on modern PCI devices (which use MMIO BARs rather
than legacy I/O ports).
Signed-off-by: Taha Saifuddin <taha@blacksmith.sh>1 parent e3fb425 commit 9e7ae02
1 file changed
Lines changed: 9 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
403 | 403 | | |
404 | 404 | | |
405 | 405 | | |
406 | | - | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
407 | 415 | | |
408 | 416 | | |
409 | 417 | | |
| |||
0 commit comments