Hi Hans,
>I've just been in contact with an Applications Engineer from Cirrus
>Logic. He seemed willing to help, and offered to send me specs for
>the CL-PS6700.. though I don't know if that will help. Is the name
>of the PCMCIA controller actually CL-PS7030, or is that the name of
>the whole chipset? (the CL-PS7030) is not a current product of
>Cirrus Logic).
CL-PS7030 is the name of the controller. But they won't send the
specs, as they won't send the specs for 7010 and 7020. Those chipsets
were designed for Apple, and they are no longer in their catalog. Why
would they send the specs of a chipset they won't sell anymore?
Actually, this is what I understood from the mail I recieved.
Anyway, I've been told that memory access mode for ATA card is not a
good idea. Curious, but anyway, here is the problem: the doc says
that Compact Flash cards can operate in four modes:
Memory
I/O, contiguous (pretty close to memory in the interface, but the
accesses are done in the I/O space only)
I/O primary & secondary (with the corresponding IRQ)
True IDE.
True IDE should be forgotten, except maybe if I succeed in writing
the pins directly to the controller.
The big stake about memory mode is that the doc says that CF cards
should not draw too much power and be too slow, and speaks about CF+
cards which can draw more and be slower. But CF+ cards are only
required to work in memory mode. (and I guess the IBM disk repects
the CF+ standard).
Indeed, this is what I understood about the controller:
a/ you can read some PCMCIA pins using the GetPCPins method. The
format changed between the MP1xx controller (I finally opened the
case, and it seems to be an Apple copyright chip, hence, forget about
getting the specs) and the Voyager (eMate/MP2x00), therefore there is
a translation and a direct access function for those computers
(GetVPCPins).
You can read the following:
PC CF pins: PCPins VPCPins
63 46 BVD1, -STSCHG, -PDIAG 0x00000008 0x00000001
62 45 BVD2, -SPKR, -DASP 0x00000010 0x00000002
36 26 -CD1 0x00000002 0x00000004
67 25 -CD2 0x00000001 0x00000008
43 33 VS1 0x00000200 0x00000010
57 40 VS2 0x00000400 0x00000020
33 24 WP, -IOIS16 0x00000020 0x00000200
16 37 RDY/-BSY, IREQ, INTRQ 0x00000004 0x00000400
61 44 REG 0x00000040?
7 7 -CE1 0x00000080?
42 32 -CE2 0x00000100?
(I am not sure about the three last one, umm, I'd better say it's
probably wrong for the REG signal)
b/ you can set the control of the card using the set control method.
On the MP1xx, it's pretty simple, the value is just written to the
proper location. On MP2x00, there are more flags and 3 locations
(base + 0x2000, base + 0x2400, base + 0x2C00).
c/ You write and read data to the different 64 MB spaces.
I haven't found if the controller is really DMA capable (why not), in
which case the card closes the ports. I guess that if I can send
commands just after a reset, either I do not tell the card, ok,
that's over, let's talk about another command, or, the reset puts it
in a state it leaves after a short period.
What I haven't understood yet:
a/ The meaning of the kCardPortAccess control setting
b/ What SelectIO and SelectMemory really does (I guess it is about
setting the proper pins up or down)
c/ How it really works with the buffer and the memory, and what the
RdWrQueue does
d/ What the pullups calls do
It's really hard to design a driver when you don't have the hardware
& api specs.
I've started to investigate the I/O modes.
Regards,
Paul
-- P&M Consulting Newton Program http://www.pnm-consulting.com/newton/ *************************************** NewtonTalk brought to you by:EVOTE.COM -- the ESPN of politics on the Internet! All the players, all the news, and the hottest analysis and features (plus 'toons!) anywhere.... visit http://www.evote.com today!
*************************************** Need Subscribe/Unsubscribe info?
Visit the NewtonTalk section at http://www.planetnewton.com
This archive was generated by hypermail 2b29 : Sat Jul 01 2000 - 00:00:06 CDT