[OpenBIOS] [PATCH] Add the prog interface field to class-code property

Mark Cave-Ayland mark.cave-ayland at ilande.co.uk
Thu Feb 27 23:39:10 CET 2014


On 27/02/14 01:05, BALATON Zoltan wrote:

> The class-code property of PCI devices should also include the prog
> interface field. This patch adds this.
>
> Signed-off-by: BALATON Zoltan<balaton at eik.bme.hu>
> ===================================================================
> --- drivers/pci.c	(revision 1269)
> +++ drivers/pci.c	(working copy)
> @@ -893,11 +893,13 @@
>   	int status,id;
>   	uint16_t vendor_id, device_id;
>   	uint8_t rev;
> +	uint8_t class_prog;
>   	uint32_t class_code;
>
>   	vendor_id = pci_config_read16(addr, PCI_VENDOR_ID);
>   	device_id = pci_config_read16(addr, PCI_DEVICE_ID);
>   	rev = pci_config_read8(addr, PCI_REVISION_ID);
> +	class_prog = pci_config_read8(addr, PCI_CLASS_PROG);
>   	class_code = pci_config_read16(addr, PCI_CLASS_DEVICE);
>
>       if (pci_dev) {
> @@ -925,7 +927,7 @@
>   	set_int_property(dev, "vendor-id", vendor_id);
>   	set_int_property(dev, "device-id", device_id);
>   	set_int_property(dev, "revision-id", rev);
> -	set_int_property(dev, "class-code", class_code<<  8);
> +	set_int_property(dev, "class-code", class_code<<  8 | class_prog);
>
>   	if (config->irq_pin) {
>   		OLDWORLD(set_int_property(dev, "AAPL,interrupts",
> ===============================================================

These seems to agree with my reading of 
http://wiki.osdev.org/PCI#Class_Codes, although the concatenation of the 
3 different fields into the class-code property doesn't seem to be 
documented in the PCI bindings... do you know is it either an implicit 
or explicit part of the PCI specification?


ATB,

Mark.



More information about the OpenBIOS mailing list