Re: Acer Aspire 5672 and FreeBSD 6.2-beta1

John Baldwin <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile
Message-ID <[email protected]>
On Tuesday 10 October 2006 05:52, Bruno Ducrot wrote:
> On Mon, Oct 09, 2006 at 04:11:46PM -0400, John Baldwin wrote:
> > On Saturday 07 October 2006 15:03, Bruno Ducrot wrote:
> > > On Sat, Oct 07, 2006 at 06:46:42PM +0200, Torfinn Ingolfsen wrote:
> > > > On Sat, 07 Oct 2006 17:01:03 +0200
> > > > Bruno Ducrot <[email protected]> wrote:
> > > > 
> > > > > Thanks. The device do not have a BAR when acpi is enabled.  We
> > > > > therefore have to enable one.  I think just by poking aroud some pci
> > > > > config registers onto the pci bridge will do the trick.  Your
> > > > 
> > > > Ok. I'm wondering; will output from lspci under Linux help you get at
> > > > the info more easily? I have Xubuntu installed on a partition on this
> > > > machine, so it is easy for me to do that, if you wish.
> > > 
> > > Well, I don't know if that will be helpful.  Humm, maybe a dmesg?
> > > 
> > > > > Looking at this datasheet I think we have to look more carrefully to
> > > > > register 0x04 (halfword), 0x20h, 0x24, 0x28 and 0x2c.
> > > > > Looking them both with and without acpi and comparing them will allows
> > > > > us to know hopefully how to enable the first BAR to the correct adress
> > > > > for your ethernet card.  In short, if you can first boot without ACPI,
> > > > > then perform
> > > > > pciconf -r -h pci0:28:2 4
> > > > > pciconf -r pci0:28:2 0x20
> > > > > pciconf -r pci0:28:2 0x24
> > > > > pciconf -r pci0:28:2 0x28
> > > > > pciconf -r pci0:28:2 0x2c
> > > > > 
> > > > > Also do a dump in order to check if something else might be needed:
> > > > > pciconf -r -b pci0:28:2 0:256
> > > > > 
> > > > > Boot with ACPI enabled:
> > > > > do the same pciconf stuff, then send me the output.
> > > > 
> > > > Done. I've sent you the files via email, and also uploaded them to the
> > > > web page, in case anyone else wants them for some reason. Webpage:
> > > > http://tingox.googlepages.com/aceraspireas5672andfreebsd
> > > > 
> > > > > After that, we should be able to correct your problem, either by
> > > > > 1- hacking the DSDT,
> > > > > OR
> > > > > 2- hacking pcib.c.
> > > > > (at your option).
> > > > 
> > > > I think hacking the DSDT is the more politically correct option, but
> > > > either one will work for me.
> > > 
> > > Ok.  First remove device bge in your kernel config.  For example create a
> > > config file with:
> > > 
> > > >>> BEGIN
> > > include		GENERIC
> > > ident		MYKERNEL (or what you like)
> > > nodevice	bge
> > > <<< END
> > > 
> > > After rebuilding and installing your kernel,
> > > you can do something like that:
> > > 
> > > pciconf -w pci0:28:2 0xd8 0x04110008
> > > 
> > > pciconf -w -h pci0:28:2 0x58 0x0000
> > > 
> > > pciconf -w pci0:28:2 0x24 0x0001fff1
> > > pciconf -w pci0:28:2 0x20 0xc830c830
> > > 
> > > pciconf -w -h pci0:28:2 0x04 0x0007
> > > 
> > > 
> > > After that, you should be able to kldload if_bge and report back if
> > > this work.  In that case I will modify the DSDT so that you won't to
> > > worry about all of those pciconf stuff.
> > 
> > You really shouldn't change BAR registers directly.  First of all, the PCI
> > bus driver already knows how to allocate resources for a BAR if it is set
> > to 0 and when doing so will make sure to not allocate an address that
> > conflicts with another device.  Secondly, a lot of PCI config registers are
> > cached in the ivars by the PCI bus, so it may not even read the values you
> > write into it (though writing those values will turn on the address decode
> > for the device, and if another device is using that address things will go
> > downhill quick).
> 
> You are indeed right.  The issue therefore seems to be, when ACPI is enabled,
> then the PCI bus driver doesn't set up correctly a BAR.
> FYI the bridge is one of the four PCIe embedded to an ICH-7.

The PCI bus driver does the same thing regardless of ACPI.  When the NIC driver
does its bus_alloc_resource() the PCI bus should then go allocate resources for
it.  At this point you will probably want to get a boot -v so you can see what
the bus prints out when it first looks at the device first.  If the BAR is
listed (but with a base of 0), then you will want to look at the stuff in
pci_alloc_resource().

-- 
John Baldwin
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.