Download Locations:
ftp://source.mvista.com/pub/ds-patches/2.6/patch-2.6.4-ds1.gz
http://csociety.ecn.purdue.edu/~deepak/patches/2.6/patch-2.6.4-ds1.gz
Build Documentation:
Download linux-2.6.4 from ftp://ftp.kernel.org
Apply this patch directly on top of 2.6.4 kernel
Edit top-level Makefile to point to your toolchain
make ixp4xx_config
make zImage
Summary of Changes:
- Update generic dmabounce support. I will be posting the separately
to l.a.k. for review.
- Fix e100 driver to set cb->sbk = NULL when allocating new CB's.
- IXP425 -> IXP4XX. I've renamed everything in the tree to be
IXP4XX instead of IXP425. This is somewhat of a cosmetic change,
but there were bits of code using ixp425, others using ixp42x,
others using ixp4xx, so I decided to just settle on one thing
across all drivers.
- Add IXP4xx watchdog timer support (only works on rev B0 chips)
- Remove Queue Manager static mapping and update static map
- Add Coyote and PrPMC1100 platforms (see Notes)
- Fix i2c-ixp4xx so it builds
- Attempt to fix "IRQ XX: Nobody Cared" (see Notes)
- Revert to using direct-mapped PCI access instead of NP_* registers.
See [1] for some important information regarding this.
- Changed PCI I/O range. Please let me know if this breaks things.
- Many other various other cleanups
Notes:
- Tested on IXDP425 and Coyote. Compiles with PrPMC1100 support but
my board is currently in use by someone else, so can't test.
On Coyote, did not test wireless driver yet, just flash and eepro100.
- The "IRQ XX: Nobody Cared" is almost completely gone, but it still
shows up once in a while. As far as I can tell, the problem has to
do with a small race between acking the GPIO IRQ register and
unmasking of interrupts. Will hook up PCI analyzer next week and
see exactly what's happening. Note that tnx to rmk's changes,
you'll now get a big stack dump when this happens. :)
- PCI IDE seems a bit more stable, but still seems to lock up the system
during heavy stress. Doesn't look like a PCI bus issue, possibly
just low-memory issues due to all the bounce buffers we have
to use on the 425.
- This patch breaks compatability with Intel's CSR. DO NOT EMAIL
ME ABOUT IT. I DO NOT MAINTAIN THE CSR. For those that are using
the CSR, the specific changes that wil impact it are the renaming
of 425 to 4xx and the removal of the qmgr static map. The first
change is explained above. The reasoning for removing the qmgr
mapping has to do with moving this code upstream. My goal is to
have ixp4xx support in Linus's tree sometime soon (next 1-2 months?)
and the QMGR static map serves no purpose but to provide a hook
for a closed-source propietary driver. Even though the driver
is really needed to make the platform useable, since it is not
in the kernel, the mapping does not belong in the kernel either.
It should be a fairly trivial fix to the CSR to ioremap() the QMGR
instead of using the static map. DO NOT POST PATCHES TO THE CSR
TO THE MAILING LIST AS DOING SO WOULD BE VIOLATION OF THE CSR LICENSE.
If someone fixes the CSR to work with 2.6, please send the patches
directly to Intel, _NOT_ to me or the linux-arm mailing lists.
TODO (Patches welcome...):
- Add Coyote IDE support
- Test various wireless drivers on Coyote
- IRQ lookup should use clz instruction
- Fix "IRQXX: Nobody Cared"
- Merge various bits in arch/arm/mach-ixp4xxx files into a generic.c
- Add option to choose between static-mapped and direct-mapped PCI access.
- Push upstream to rmk. :)
Enjoy,
~Deepak
[1]
http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2004-March/020361.html
--
Deepak Saxena - dsaxena at plexity dot net - http://www.plexity.net/
_______________________________________________
http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-announce
Please visit the above address for information on this list.
|