From: PALFFY D. <dp...@ra...> - 2004-02-10 13:46:16
|
Hi! The problem with the 3g ipod forewire driver seems to be found. The hardware is capable to do direct DMA transfers between the firewire controller and the hard disk, and to support this, we think that the apple firmware does some interrupt setup in the firewire init routine. This kills the ide driver under linux (and is not used anyways), so it had to be removed. Quick howto: - Take the 2.4.24-uc0 kernel, and use the current ipodlinux CVS (older versions wont work). - edit arch/armnommu/mach-ipod/tsb42aa82.c: #undef IPOD_2G, and #define IPOD_3G on lines 37-38 comment out lines 1036-1038: (Bern, you might want to commit this) /* outl(inl(0xcf00000c) | (1<<7), 0xcf00000c); outl(inl(0xcf00001c) | (1<<7), 0xcf00001c); outl(inl(0xcf00002c) & ~(1<<7), 0xcf00002c); */ - build the kernel and modules and install these. On the host side you will need a 2.4 kernel (2.6 doesn't work and causes panics on the ipod!). If you have 2.4.21 or later (IIRC), put an #if 0 around the body of nodemgr_do_irm_duties() in drivers/ieee1394/nodemgr.c. Copy drivers/ieee1394/eth1394.[ch] over from the ipodlinux CVS tree into your kernel sources (the stock version doesn't work). Apply the patch from http://ipodlinux.sourceforge.net/manual.shtml to eth1394.c and build the kernel for the host. Now everything should work as described in the docs, telnet, etc work fine. -- Daniel ...and Linux for all. |