Linux - Embedded & Single-board computerThis forum is for the discussion of Linux on both embedded devices and single-board computers (such as the Raspberry Pi, BeagleBoard and PandaBoard). Discussions involving Arduino, plug computers and other micro-controller like devices are also welcome.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Having a problem migrating a fully functional 2.4 device driver (a new design, uses /devs). We came up with a scheme whereby any device that requires "special" access, becomes it's own /dev and we load the special code that does all the magic to access the device.
The HW setup uses a PMC CPU (PPC-440) that plugs into a motherboard. We then have a PCI Bridge (PLX-9056) that takes the PCI bus and gives us access to the various devices on the motherboard via a local bus (Motorola style).
The 2.4 version seems to work/function just fine, we can access all of the various devices just fine.
When we move to 2.6 it appears as though either
A. the pci bus fails to work for some addresses
B the ioremap fails to work for some addresses
The failed devices are in bar 3 at 0x80000000 and up, but I have been unsuccessful in making them work in the 0x90000000 region either, which normally houses the fpga which works just fine.
I believe itís the higher address bits that are failing some where, this being a ppc with to many address lines.
The kernel we have is 2.6.22, a home brewed one. That being said, most of the documentation we can get is based upon older 2.6.1x kernels. I believe there were some significant changes regarding drivers that occurred around 2.6.17/.18/.19. Anybody know where to get some updated information?
Has anyone run into a similar problem with the 2.6 kernels as described? Any pointers/assistance would be greatly appreciated, we're kinda stuck right now.
But, you're talking about "ioremap", do you use this function to get the bar addresses? If I good remember, you should use "pci_iomap" for this purpose, especially for PPC arch, but its just memories...