[LinuxBIOS] r2951 - trunk/LinuxBIOSv2/src/southbridge/intel/i82801xx

Corey Osgood corey.osgood at gmail.com
Thu Nov 8 07:09:16 CET 2007


joe at smittys.pointclark.net wrote:
> Little confused by this. Isn't this supposed to be posted to the list  
> first for review, before being commited? Is it ok for the same person  
> to "Signed-off-by:" and "Acked-by:"?? See comments below...
>   

This qualifies as a "trivial" patch, in other words the only changes are
to improve comments and fix possible whitespace errors (I think using
defined PCI IDs also qualifies as trivial). There are no real changes to
the actual code, so nothing should be broken in the process. Hence the
normal process is forgone.

>> Modified: trunk/LinuxBIOSv2/src/southbridge/intel/i82801xx/i82801xx.c
>> ===================================================================
>> ---   
>> trunk/LinuxBIOSv2/src/southbridge/intel/i82801xx/i82801xx.c	2007-11-07   
>> 19:07:17 UTC (rev 2950)
>> +++   
>> trunk/LinuxBIOSv2/src/southbridge/intel/i82801xx/i82801xx.c	2007-11-07   
>> 22:09:02 UTC (rev 2951)
>> @@ -30,7 +30,7 @@
>>  	unsigned int index = 0;
>>  	uint16_t cur_disable_mask, new_disable_mask;
>>
>> -	/* All 82801 devices should be on bus 0. */
>> +	/* All 82801xx devices should be on bus 0. */
>>  	unsigned int devfn = PCI_DEVFN(0x1f, 0);	// LPC
>>  	device_t lpc_dev = dev_find_slot(0, devfn);	// 0
>>  	if (!lpc_dev)
>> @@ -50,10 +50,11 @@
>>  	if (index == 0) {
>>  		index = 14;
>>  	}
>>     
>
> All devices are not on Bus 0. The NIC and PCI Cards are on Bus 1 down  
> from the PCI Bus.
>   

Interesting, I'll have a look at that tomorrow. This isn't a change in
the code in any way though, just fixing a comment.

>> -static const struct pci_driver i82801dbm_nic __pci_driver = {
>> +/* Note: There's no NIC on 82801AA/AB (ICH/ICH0). */
>> +
>> +/* 82801BA/BAM/CA/CAM (ICH2/ICH2-M/ICH3-S/ICH3-M) */
>> +static const struct pci_driver i82801ba_nic __pci_driver = {
>>  	.ops	= &nic_ops,
>>  	.vendor	= PCI_VENDOR_ID_INTEL,
>> -	.device	= 0x103a,
>> +	.device	= PCI_DEVICE_ID_INTEL_82801BA_LAN,
>>  };
>>
>> -static const struct pci_driver i82801ex_nic __pci_driver = {
>> +/* 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) */
>> +static const struct pci_driver i82801db_nic __pci_driver = {
>>  	.ops	= &nic_ops,
>>  	.vendor	= PCI_VENDOR_ID_INTEL,
>> -	.device	= 0x1051,
>> +	.device	= PCI_DEVICE_ID_INTEL_82801DB_LAN,
>>  };
>>     
>
> My NIC on the 82801DB is .device = 0x103a, this is also what is in the  
> datasheet.

It's because of the way the patch got set up. For some reason, it's
replacing the lines where the i82801ex driver was with the i82801db
(which is a few lines up). Since PCI_DEVICE_ID_INTEL_82801DB_LAN =
0x103a, it should be fine.

>> Modified: trunk/LinuxBIOSv2/src/southbridge/intel/i82801xx/i82801xx_sata.c
>> ===================================================================
>> ---   
>> trunk/LinuxBIOSv2/src/southbridge/intel/i82801xx/i82801xx_sata.c	2007-11-07   
>> 19:07:17 UTC (rev 2950)
>> +++   
>> trunk/LinuxBIOSv2/src/southbridge/intel/i82801xx/i82801xx_sata.c	2007-11-07   
>> 22:09:02 UTC (rev 2951)
>> @@ -23,7 +23,6 @@
>>  #include <device/device.h>
>>  #include <device/pci.h>
>>  #include <device/pci_ids.h>
>> -#include <device/pci_ops.h>
>>  #include "i82801xx.h"
>>
>>  /* TODO: Set dynamically, if the user only wants one SATA channel or none
>>     
>
> This should be setup to only work with ICH's that support sata.

And it does. The driver is included per default, but will only load/run
when LB comes across a device ID for an SATA device. No ID, the driver
doesn't do anything. It should probably be somehow fixed to only build
for SATA-supporting chipsets, but alas the world isn't perfect ;)

-Corey




More information about the coreboot mailing list