[SeaBIOS] [PATCH v2 3/3] pci: recognize RH PCI legacy bridge resource reservation capability

Liu, Jing2 jing2.liu at linux.intel.com
Thu Aug 16 04:37:22 CEST 2018


Hi Zihan,

I copy your comments of this patch several days ago here,
and hope we could continue some discussion in this serial.

On 8/16/2018 10:32 AM, Jing Liu wrote:
[...]
>   
>   static u8 pci_find_resource_reserve_capability(u16 bdf)
>   {
> -    if (pci_config_readw(bdf, PCI_VENDOR_ID) == PCI_VENDOR_ID_REDHAT &&
> -        pci_config_readw(bdf, PCI_DEVICE_ID) ==
> -                PCI_DEVICE_ID_REDHAT_ROOT_PORT) {
> -        u8 cap = 0;
> -        do {
> -            cap = pci_find_capability(bdf, PCI_CAP_ID_VNDR, cap);
> -        } while (cap &&
> -                 pci_config_readb(bdf, cap + PCI_CAP_REDHAT_TYPE_OFFSET) !=
> -                        REDHAT_CAP_RESOURCE_RESERVE);
> -        if (cap) {
> -            u8 cap_len = pci_config_readb(bdf, cap + PCI_CAP_FLAGS);
> -            if (cap_len < RES_RESERVE_CAP_SIZE) {
> -                dprintf(1, "PCI: QEMU resource reserve cap length %d is invalid\n",
> -                        cap_len);
> -                return 0;
> -            }
> -        } else {
> -            dprintf(1, "PCI: QEMU resource reserve cap not found\n");
> +    u16 device_id;
> +
> +    if (pci_config_readw(bdf, PCI_VENDOR_ID) != PCI_VENDOR_ID_REDHAT) {
> +        dprintf(1, "PCI: QEMU resource reserve cap vendor ID doesn't match.\n");
> +        return 0;
> +    }
> +
> +    device_id = pci_config_readw(bdf, PCI_DEVICE_ID);
> +
> +    if (device_id != PCI_DEVICE_ID_REDHAT_ROOT_PORT &&
> +        device_id != PCI_DEVICE_ID_REDHAT_BRIDGE) {

======= comments by Zihan Yang =========
I think PCI_DEVICE_ID_REDHAT_PCIE_BRIDGE shoud be added too, in case we put
a pcie_pci_bridge at the host bus.
========================================
My reply:
In theory all the pci bridge could add this capability but I'm not sure
if we really need that? Would like to hear some more suggestion!


Thanks,
Jing

[...]



More information about the SeaBIOS mailing list