About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / arm / Sharp-LH / CompactFlash




Custom Search

Based on kernel version 2.6.38. Page generated on 2011-03-22 22:18 EST.

1	README on the Compact Flash for Card Engines
2	============================================
3	
4	There are three challenges in supporting the CF interface of the Card
5	Engines.  First, every IO operation must be followed with IO to
6	another memory region.  Second, the slot is wired for one-to-one
7	address mapping *and* it is wired for 16 bit access only.  Second, the
8	interrupt request line from the CF device isn't wired.
9	
10	The IOBARRIER issue is covered in README.IOBARRIER.  This isn't an
11	onerous problem.  Enough said here.
12	
13	The addressing issue is solved in the
14	arch/arm/mach-lh7a40x/ide-lpd7a40x.c file with some awkward
15	work-arounds.  We implement a special SELECT_DRIVE routine that is
16	called before the IDE driver performs its own SELECT_DRIVE.  Our code
17	recognizes that the SELECT register cannot be modified without also
18	writing a command.  It send an IDLE_IMMEDIATE command on selecting a
19	drive.  The function also prevents drive select to the slave drive
20	since there can be only one.  The awkward part is that the IDE driver,
21	even though we have a select procedure, also attempts to change the
22	drive by writing directly the SELECT register.  This attempt is
23	explicitly blocked by the OUTB function--not pretty, but effective.
24	
25	The lack of interrupts is a more serious problem.  Even though the CF
26	card is fast when compared to a normal IDE device, we don't know that
27	the CF is really flash.  A user could use one of the very small hard
28	drives being shipped with a CF interface.  The IDE code includes a
29	check for interfaces that lack an IRQ.  In these cases, submitting a
30	command to the IDE controller is followed by a call to poll for
31	completion.  If the device isn't immediately ready, it schedules a
32	timer to poll again later.
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.