30 March 2022, 00:09 | #1 |
Registered User
Join Date: Sep 2013
Location: Ireland
Posts: 72
|
PCMCIA/Gayle compatibility problems
Recently, and also in the past, I've come across apparent compatibility problems with certain PC Cards in my A1200 that I've tried to write drivers for. These problems include:
- Data (buffer access) registers that won't move on to the next word after being read or written. - Register sets that can't be accessed where I expect them to be in I/O space (in spite of lots of tweaking of PCMCIA config registers). - Cards that lock up the Amiga when inserted. Does anyone know why these effects may occur or potential work-arounds? I can't 100% rule out that I'm just not programming the cards properly, but it's hard to be sure without an alternate card.resource-compatible PCMCIA interface to test against (maybe I could try a PowerBook running MorphOS). |
30 March 2022, 12:33 | #2 | ||||
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,708
|
Quote:
Which cards are you having trouble with, and what problems(s) is each one having? Quote:
Quote:
Quote:
Other problms like address increment not working or cards locking up could be due to signal timing differences between the Amiga and PC controllers, voltage levels, or latent bugs. Back in the day I didn't investigate any of this (getting my CNET card going was enough for me), but now might be a time to address it. |
||||
30 March 2022, 14:39 | #3 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,553
|
There is some hardware problem with Amiga PCMCIA slots (AFAIK it wasn't based on final PCMCIA spec)
I did some m68k AROS PCMCIA stuff many years ago and noticed some CF cards in PCMCIA adapter simply refuse to configure. (Does not enable ATA registers in requested address space). My guess is that any write is ignored for some reason. Lockup probably is caused by interrupt line being stuck in active state. EDIT: I didn't find any workarounds. Last edited by Toni Wilen; 30 March 2022 at 15:07. |
30 March 2022, 22:31 | #4 |
Registered User
Join Date: Sep 2013
Location: Ireland
Posts: 72
|
Thanks for the info guys.
My current troubles are with Xircom Ethernet cards, for which I'm writing a driver. I know my code is basically OK as two 100Mbps cards work apart from the data registers not "moving on" (which fortunately I can work around because there's another register to explicitly seek within the buffer). However, my 10Mbps card doesn't show its Ethernet registers. BTW another problem some (non-Xircom) cards have that I didn't mention in my first post is that they don't even show their attribute memory. I don't have the hardware fix on my A1200 060. I do run CardReset, but all these problems have been seen after a hot insertion in any case. In theory, could some of these hardware quirks be fixed by analysing the signals on the PCMCIA pins and maybe applying fixes similar to the hardware reset fix? I know it's doubtful anyone would do it, but I'm curious :-) BTW, is there any possibility of accessing PCMCIA I/O space with the copper/blitter? I was wondering if my driver could use that to read/write Ethernet frames instead of having the CPU locked up waiting for extremely slow Ethernet registers. |
30 March 2022, 22:45 | #5 |
WinUAE 4000/40, V4SA
Join Date: Apr 2020
Location: East of Oshawa
Posts: 538
|
Copper/Blitter is only for chip RAM, if I'm not mistaken, both source and destination. You won't be able to use it for PCMCIA I/O.
|
31 March 2022, 07:10 | #6 |
Registered User
Join Date: Jan 2005
Location: Umeå
Age: 43
Posts: 930
|
The data registers “moving on”, that is a card-internal counter increasing if you read or write the data port register of the card?
Could it be that the card must be in a certain state for this “moving on” to work? |
01 April 2022, 00:46 | #7 | |
Registered User
Join Date: Sep 2013
Location: Ireland
Posts: 72
|
Quote:
Quite possibly, but I've checked over and over again that I'm doing the same as the Linux and BSD drivers. So I'm wondering if there's some quirk with the A1200 that these registers can be read and written without "knowing" that it's happened. |
|
01 April 2022, 00:48 | #8 |
Registered User
Join Date: Sep 2013
Location: Ireland
Posts: 72
|
|
01 April 2022, 07:15 | #9 |
Registered User
Join Date: Jan 2005
Location: Umeå
Age: 43
Posts: 930
|
Could there be some PCMCIA system level code in BSD/Linux that initializes the card in a more generic sense (outside the specific driver), which perhaps card.resource does not?
|
01 April 2022, 09:47 | #10 |
Thalion Webshrine
Join Date: Jan 2004
Location: Oxford
Posts: 14,448
|
Neil if any of this stuff is of any use to you I could mail it to you?
https://twitter.com/a1exh/status/1265927704467169280 Three PCMCIA FPGA devkits with documentation (make your own PCMCIA hardware). Lots of books. We used them when created the OXU950 chip (16-bit PCMCIA->USB host) As well as what is in the picture is a PCMCIA debug card (it's a card you plug in-between the PCMCIA card and the Amiga which exposes all the PCMCIA pins for use with a logic analyser) I don't have a PCMCIA Amiga here at the moment (I have an A600 in storage) or I would offer to help debug. (The current prices of A600/A1200 are too much just to pick one up.) I've had situations here at work (not Amiga) where using the wrong access type (byte instead of word or dword) results in multiple reads/writes of the same address. Last edited by alexh; 01 April 2022 at 10:00. |
01 April 2022, 09:53 | #11 |
ex. demoscener "Bigmama"
Join Date: Jun 2012
Location: Fyn / Denmark
Posts: 1,636
|
|
02 April 2022, 11:54 | #12 | |
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,708
|
Quote:
|
|
02 April 2022, 13:46 | #13 | |
Registered User
Join Date: Jul 2014
Location: Warsaw/Poland
Posts: 192
|
Quote:
Blitter has an access only to the chip-ram and yes it decodes floppy data (CRC) but they have be placed by the floppy DMA in the chip-ram first. |
|
03 April 2022, 01:17 | #14 | |||
Registered User
Join Date: Sep 2013
Location: Ireland
Posts: 72
|
Quote:
Quote:
Quote:
|
|||
03 April 2022, 01:22 | #15 | |
Registered User
Join Date: Sep 2013
Location: Ireland
Posts: 72
|
Quote:
The CEM33 should be compatible with my driver in theory. It think it's similar to the PS-CE2-10, which doesn't show its registers for me. If you'd like to try a beta version let me know. |
|
04 April 2022, 00:53 | #16 | ||
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,708
|
Quote:
Quote:
|
||
18 April 2022, 22:11 | #17 | |
Registered User
Join Date: Sep 2013
Location: Ireland
Posts: 72
|
Quote:
Sorry for the delay in responding. I've been tidying up my driver to make a suitable beta version. However, I'm now thinking that it might not be very useful: it's unlikely to work for you as I haven't been able to test it on that generation of hardware due to the problems with register visibility already discussed. What might be better is if you could poke the appropriate config value into the card and check if the registers are visible. Otherwise I could send a version of the driver that just does that much and then exits, so that register visibility can be checked without causing a crash (hopefully). I'm also trying to source another CE2 generation card on eBay. I got one last week but it was DOA. |
|
20 April 2022, 21:38 | #18 |
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,708
|
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Gotek / A500 compatibility problems | ch40s_engineer | support.Hardware | 135 | 21 July 2020 09:13 |
SanDisk PCMCIA CF Adapter Compatibility | spawnerbr | support.Hardware | 16 | 19 March 2016 18:29 |
PCMCIA CF Card Compatibility | manic23 | support.Hardware | 8 | 22 April 2013 13:32 |
AmigaKit.com PCMCIA software compatibility | ami_junkie | support.Hardware | 7 | 09 March 2010 19:53 |
whdload compatibility problems | hexaae | support.WinUAE | 3 | 26 November 2009 19:48 |
|
|