[coreboot] [patch] i82810 WIP for fixing VGA and 512MB

Corey Osgood corey.osgood at gmail.com
Tue Nov 18 06:26:41 CET 2008


On Mon, Nov 17, 2008 at 11:45 PM, Elia Yehuda <z4ziggy at gmail.com> wrote:

> well, i managed to make it work as you initially suggested (adding .ops_pci
> to northbridge_operations),
> but... i had to change the .device to 0x7124 (which is what lspci shows me)
> - are you all sure 82810
> device_id is 7120? i use 82810e but according to datasheet it should be the
> same.
>

Nope, here's from my i810 datasheet:

DIDDevice Identification Register (Device 0)
Address Offset: 02–03h
Default Value:  82810 = 7120h
                82810-DC100 = 7122h
Attribute:      Read Only
Size:           16 bits

So, go ahead and do this:

static const struct pci_driver i810_northbridge_driver __pci_driver = {
        .ops    = &northbridge_operations,
        .vendor = PCI_VENDOR_ID_INTEL,
        .device = 0x7120,
};

static const struct pci_driver i810e_northbridge_driver __pci_driver = {
        .ops    = &northbridge_operations,
        .vendor = PCI_VENDOR_ID_INTEL,
        .device = 0x7124,
};

Please do not be tempted to add i810-dc100 in there as well, unless you want
to read through the i810 datasheet and fix any other differences ;)

-Corey



>
>
> Elia.
>
> On Tue, Nov 18, 2008 at 6:04 AM, Corey Osgood <corey.osgood at gmail.com>wrote:
>
>> On Mon, Nov 17, 2008 at 10:10 PM, Elia Yehuda <z4ziggy at gmail.com> wrote:
>>
>>>
>>>
>>> On Tue, Nov 18, 2008 at 3:44 AM, Joseph Smith <joe at settoplinux.org>wrote:
>>>
>>>>
>>>>
>>>>
>>>> On Tue, 18 Nov 2008 00:59:07 +0200, "Elia Yehuda" <z4ziggy at gmail.com>
>>>> wrote:
>>>> > just noticed ive put it in cpu_bus_ops... have a laugh...
>>>> >
>>>> No worries, this is how we learn :-)
>>>> >
>>>> > but i dont have "static struct device_operations mc_ops" - where
>>>> should i
>>>> > add
>>>> > the .ops_pci ?
>>>> >
>>>> Little confused about what your trying to do here. This doesn't work??
>>>>
>>>> static const struct pci_driver northbridge_driver __pci_driver = {
>>>>         .ops    = &northbridge_operations,
>>>>         .vendor = PCI_VENDOR_ID_INTEL,
>>>>         .device = 0x7120,
>>>> };
>>>>
>>>
>>> this works just fine. i simply don't know where to add ".ops_pci" since i
>>> dont have
>>> "static struct device_operations mc_ops" in northbridge.c
>>>
>>
>> You should be able to add it to pci_domain_ops, but be sure to check that
>> it actually runs. Otherwise, you'll need to create that mc_ops driver with
>> just the .ops_pci and everything else set to NULL, and use this:
>>
>> static void enable_dev(struct device *dev)
>> {
>>     struct device_path path; //unused?
>>
>>     /* Set the operations if it is a special bus type */
>>     if (dev->path.type == DEVICE_PATH_PCI_DOMAIN) {
>>         dev->ops = &pci_domain_ops;
>>         pci_set_method(dev);
>>     } else if (dev->path.type == DEVICE_PATH_APIC_CLUSTER) {
>>         dev->ops = &cpu_bus_ops;
>>     } else if (dev->path.type == DEVICE_PATH_PCI) {
>>         dev->ops = &mc_ops;
>>     }
>> }
>>
>> I hope you can understand what I'm trying to say, I'm a bit tired right
>> now.
>>
>> -Corey
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20081118/d0db6ddf/attachment.html>


More information about the coreboot mailing list