Li-Ta Lo <[EMAIL PROTECTED]> writes: > On Mon, 2005-06-20 at 19:20 +0800, Huang-Jen Wang wrote: >> Dear all, >> Recently I am studying the source code , because I want to try to >> porting new mainboard later, but it is not easy to realize source code >> I begin my study from the src/southbridge/amd8111/amd8111.c >> There are some lines that I can't understand even I have amd8111 >> datasheet....hope you can tell me >> >> 1.devfn = bus_dev->path.u.pci.devfn + (1 << 3); >> 2.index = ((dev->path.u.pci.devfn & ~7) >> 3) + 8; >> 3.devfn = (dev->path.u.pci.devfn) & ~7; >> > > You choose the worst file in the whole tree to start. You are not > supposed understand it unless you are Eric Biederman ;-)
Hmm. It must need a good comment then :( But I agree that is pretty abstract way to start. You certainly need to understand how pci encodes bus/device/function information and how LinuxBIOS deals with it to make sense of those lines. > The reason that file is so complicated is because the LPC bridge inside > amd8111 controls the enable and disable of devices on both side of the > PCI bridge (in amd8111). The function in amd8111.c is call with every > devices in the 8111 chip as argument. The function has to figure out > which device it is given and how to enable or disable the device. > This is done by device_t to devfn magic you see. Eric _______________________________________________ LinuxBIOS mailing list [email protected] http://www.openbios.org/mailman/listinfo/linuxbios
