Just and update: still not working, might be more to this than originally thought.
So just a reminder my specific case is: TF534 in an A500 Rev 6, 1MB chip, A570 CD-ROM drive. There are a lot of similarities to the CDTV but there are differences too.
FIRST ISSUE: Black Screen when TF534 connected
EDIT: Most of this I think is wrong - must have just been dumb luck that it worked
EDIT: When I say black screen, usually this means RESET is also held low
I have managed to (EDIT: SOMETIMES) get past this by erasing the RAM CPLD and modifying the BUS CPLD code to send all autoconfig address access at E80000 to the Amiga side (not the 030 side) as follows:
Code: Select all
+wire Z2_ACCESS = ({A[19:16]} === {16'h00E8});
...
-wire AS_AMIGA = AS20DLY | FPUOP | ~GAYLE_IDE | ~INTCYCLE | ~BUS_BUSY | (~CANSTART & AS_INT);
+wire AS_AMIGA = AS20DLY | Z2_ACCESS | FPUOP | ~GAYLE_IDE | ~INTCYCLE | ~BUS_BUSY | (~CANSTART & AS_INT);
(excuse my verilog, I'm just learning as I go EDIT: ^^ not correct but good enough to prove the point)
After trying lots of things like moving the SPI address, disabling SPI altogether, disabling autoconfig altogether I wasn't making any progress. The only way I could ever sometimes get it to start was to prevent the BUS CPLD from handling E80000 access.
I believe this is because the on-board A570/CDTV ROM is waiting for it's own autoconfig of DMAC to happen and it never does.
There is some historical info here:
https://web.archive.org/web/20081120085 ... nical.html
The interesting part is:
Code: Select all
/CFGOUT: Configout Autoconfig signal (NOTE: not connected)
/CFGIN: Configin Autoconfig signal (NOTE: always grounded)
NOTE: since there is only one card, /CONFIGOUT is not required andis therefore not connected.
What is bad is that /CONFIGIN is permanently grounded, even though DMAC is AutoConfig, and comes up first.
Any AutoConfig card in the Diagnostic Port connector MUST NOTuse the /CONFIGIN signal to config itself.
There are two ways to get around this. First, you can put a jumper to DMAC pin 72 to /CONFIGIN of
your AutoConfig logic, since that signal is available at DMAC
(sad really,they had the logic and failed to connect the trace). Or, you can haveyour board look for a
config or shutup of DMAC, then assert an internal /CONFIGIN. I have developed PAL equations in ORCAD to
do this, whichis described in the hardware hacks section.
So my long term hope is to find a way to deterime when DMAC has finished configuring and then run the 030 side autoconfig to get the RAM (with SPI disabled or moved to EA0000). I'd also be happy with non-autoconfig RAM if needs be.
There is a spare pin on the RAM CPLD so worst case I could connect DMAC CONFIG_OUT to this pin, but I would prefer not running extra wires if there is a way around it.
At least now I know the 030 works with the A570 and that autoconfig hardware/software is an issue I can focus on.
SECOND ISSUE: CD Drive Doesn't work
So Stephen kindly reversed the driver here:
https://github.com/terriblefire/cdtv.device
I was able to change the AllocateMem function to use CHIP instead of PUBLIC RAM by changing a
line:
I recompiled the ROM as follows using
romtool and byteswapped the image using Keir's
kickconv for my programmer
Code: Select all
romtool split a570.rom -o out/
cd out/CDTV_Extended_2.30
cp ~/cdtv.device/cdtv.device 'cdtv.device_35.14(CDTV)'
romtool build -o my.rom -t kick -s 512 -a 0xf00000 index.txt
kickconv -s my.rom my.rom.a570.memf_chip.bs
CDTV owners will need to also split the ROM in two (kickconv can do this).
Now I tested this _without_ the TF534 and the CD drive works fine.
When I test _with_ the TF534, using the no-autoconfig process above, the CD drive STILL doesn't work :/
So I'm thinking for the CD drive issue:
- the allocating memory in Non-DMA Fast RAM is not the only problem, as the CD drive still doesn't work even with the TF534 and no fast mem
- I probably need to look over the memory map and driver a bit more and see if there are other issues with memory addresses that the TF534 should send to the Amiga side in this configuration.
- someone with a CDTV might be able to test this and we can compare results
So no success as yet, might have just opened a can of worms. Oh well, at least my TF330 is good enough 99% of the time and I'm learning as I go :)