From simple AZERTY Falcon project to custom ARM bus master - advice needed please
Re: From simple AZERTY Falcon project to custom ARM bus master - advice needed please
I made a mistake in that post about reset, think it was a function code change I made at the same time. Never change two things at once!
Re: From simple AZERTY Falcon project to custom ARM bus master - advice needed please
This is a note for anyone using the Arrow SoCkit, probably no-one here but perhaps google will find it
Whenever I used the signaltap ii via the physical jtag socket (I soldered on the header, the USB port broke) the HPS rebooted. I didn't track this down for a long time, so it was super annoying. Today I finally took a look at the schematics and noticed that JTAG pin 6 is connected to the HPS warm restart pin! So I cut that and it now works perfectly, I can signal tap without rebooting/crashing the sockit!
Anyway what this means is that I can now watch a longer period on the Falcon bus via the expansion port much more easily!
Whenever I used the signaltap ii via the physical jtag socket (I soldered on the header, the USB port broke) the HPS rebooted. I didn't track this down for a long time, so it was super annoying. Today I finally took a look at the schematics and noticed that JTAG pin 6 is connected to the HPS warm restart pin! So I cut that and it now works perfectly, I can signal tap without rebooting/crashing the sockit!
Anyway what this means is that I can now watch a longer period on the Falcon bus via the expansion port much more easily!
Re: From simple AZERTY Falcon project to custom ARM bus master - advice needed please
Well, close-ish...
It does that reset runs a bit then gets a bit messed up!
It does that reset then carries on to E00046 where it does a write to FF8940, which gets a bus error then ... it seems to be running stuff in the middle of ram at 2e03fc etc.
Perhaps jumping somewhere after the bus error, I wonder ...
i) Is that bus error normal
ii) The 68030 is only using 16 of 32 data lines. I wonder if its reading that bus error vector from the unused data lines, I don't see it on the data lines at any point. Perhaps there is a line that tells it to only use 16-bits. edit: Better read chapter 5 of Bus Operation of the 68020 guide, don't know DSACK/SIZ etc yet...
Re: From simple AZERTY Falcon project to custom ARM bus master - advice needed please
OK, so I can't see DTACK on the expansion since its EDTACK (from U63), not XDTACK (from COMBEL). & DSACK0 and DSACK1 are generated by U63. Now there are a few complications on this:
i) U63 was broken, I reprogrammed a new one
ii) U63 is where the bus speeder plugs in.
I wonder if U44 is happy, given I've had to replace 2 gals already. I wonder if that generates XDSACK0 or if its U63.
Better check the equations... so I can see what goes where and why!
edit:
DSACK0 is output from U44:
!DSK0 = A23 * A22 * A21 * A20 * A15 * !A14 * A13 * !A12 * !A11 * !A10 * A9 * !A8 * !A7 * !A6 * DSPDS
+ !MFPINT * !IACK * IEOMFP;
DSACK1 is output from U63:
DSK1 = AS;
i.e. address strobe controls DSACK1 and the specific address controls DSACK0
Hopefully U44 isn't iffy - its a 20v8 and I only have space 16v8s here... Although it'd be an easy fix!
errr.. EDTACK is just AS, that can't be right, since I see AS but not EDTACK!
edit2: On I see pin14 is not connected, but is an enable for EDTACK and uses this equation:
P14 = HIGHZ * AS * Z3A
+ HIGHZ * AS * DTK * DLYAS * /EDSP * /EXP
+ HIGHZ * AS * DSK0
+ HIGHZ * AS * DSK1;
Similarly the missing part for DSK1 is the enable from another unused pin:
P18 = /HIGHZ * AS * Z3A
+ /HIGHZ * AS * DTK * DLYAS * /EDSP * /EXP
+ /HIGHZ * AS * EDTK * DLYAS;
Sorry for the train of thought comment blogging
i) U63 was broken, I reprogrammed a new one
ii) U63 is where the bus speeder plugs in.
I wonder if U44 is happy, given I've had to replace 2 gals already. I wonder if that generates XDSACK0 or if its U63.
Better check the equations... so I can see what goes where and why!
edit:
DSACK0 is output from U44:
!DSK0 = A23 * A22 * A21 * A20 * A15 * !A14 * A13 * !A12 * !A11 * !A10 * A9 * !A8 * !A7 * !A6 * DSPDS
+ !MFPINT * !IACK * IEOMFP;
DSACK1 is output from U63:
DSK1 = AS;
i.e. address strobe controls DSACK1 and the specific address controls DSACK0
Hopefully U44 isn't iffy - its a 20v8 and I only have space 16v8s here... Although it'd be an easy fix!
errr.. EDTACK is just AS, that can't be right, since I see AS but not EDTACK!
edit2: On I see pin14 is not connected, but is an enable for EDTACK and uses this equation:
P14 = HIGHZ * AS * Z3A
+ HIGHZ * AS * DTK * DLYAS * /EDSP * /EXP
+ HIGHZ * AS * DSK0
+ HIGHZ * AS * DSK1;
Similarly the missing part for DSK1 is the enable from another unused pin:
P18 = /HIGHZ * AS * Z3A
+ /HIGHZ * AS * DTK * DLYAS * /EDSP * /EXP
+ /HIGHZ * AS * EDTK * DLYAS;
Sorry for the train of thought comment blogging
Re: From simple AZERTY Falcon project to custom ARM bus master - advice needed please
I added XDTACK, DSACK0 and DSACK1 to the trace I'm capturing. I can see DSACK1 pulled low on each cycle (16-bit bus ack). Looking again at that equation for DSACK0 it looks like its for DSP acknowledge: 0xFXAXXX, which I gather is 8-bit.
When accessing 0xFF8940 at early startup I never see either DSACK or XDTACK pulled low. The address is 0xff8940, which is the DMA chip I think. In the service guide it says pin 38 DTACK on the DMA chip is I/O. So I guess it outputs this itself instead of COMBEL. It also does not seem to have its own chip select. Since it has all address bus lines I guess its at a fixed address like ANTIC is (Atari XL).
So... I'm thinking the DMA chip is bad since its not pulling DTACK. What do you think?
When accessing 0xFF8940 at early startup I never see either DSACK or XDTACK pulled low. The address is 0xff8940, which is the DMA chip I think. In the service guide it says pin 38 DTACK on the DMA chip is I/O. So I guess it outputs this itself instead of COMBEL. It also does not seem to have its own chip select. Since it has all address bus lines I guess its at a fixed address like ANTIC is (Atari XL).
So... I'm thinking the DMA chip is bad since its not pulling DTACK. What do you think?
Re: From simple AZERTY Falcon project to custom ARM bus master - advice needed please
_Presuming_ SUSKA vhd for DMA is correct, it says:
ADR_INT <= ADR & '0';
SU <= true when FC = "101" or FC = "110" else false; -- Superuser mode.
GPx_EN_RS <= '1' when ASn = '0' and LDSn = '0' and LDSn = '0' and ADR_INT = x"FFFF8940" and RWn = '0' and SU = true else
'1' when ASn = '0' and LDSn = '0' and LDSn = '0' and ADR_INT = x"FFFF8940" and RWn = '1' else '0';
DTACKn <= '0' when MWD_RS = '1' or MWK_RS = '1' or GPx_EN_RS = '1' or GPx_DATA_RS = '1' else '1';
Which says DMA should assert DTACK if:
AS asserted, LDS asserted, addr ff8940
Superuser mode only for write (5 or 6 for FC), any FC for read
ADR_INT <= ADR & '0';
SU <= true when FC = "101" or FC = "110" else false; -- Superuser mode.
GPx_EN_RS <= '1' when ASn = '0' and LDSn = '0' and LDSn = '0' and ADR_INT = x"FFFF8940" and RWn = '0' and SU = true else
'1' when ASn = '0' and LDSn = '0' and LDSn = '0' and ADR_INT = x"FFFF8940" and RWn = '1' else '0';
DTACKn <= '0' when MWD_RS = '1' or MWK_RS = '1' or GPx_EN_RS = '1' or GPx_DATA_RS = '1' else '1';
Which says DMA should assert DTACK if:
AS asserted, LDS asserted, addr ff8940
Superuser mode only for write (5 or 6 for FC), any FC for read
Re: From simple AZERTY Falcon project to custom ARM bus master - advice needed please
Address bus
Data bus
FC
UDS
LDS
AS
RW (on combout[7])
bus mode
NC
XDTACK
DSACK1
DSACK0
edit: offscreen I also have the expansion edtack, which I think is the one connected directly to SDMA - it doesn't go low.
After this I get a bus error then it jumps to here, which I think is just ram?
Re: From simple AZERTY Falcon project to custom ARM bus master - advice needed please
So I checked the tos disassembly and its like literally the last line before it checks then starts the diagnostic cartridge
Tempted to flash the diag cart eeprom with something with nops in those two instructions to see if it tells me anything. Presuming it is an eeprom under that nice sticker that exxos put on the cartridge (edit: AT27C4096 - though of course I need to flash the TOS rom, not this cart, doh! Which is a 27PC240 - https://www.datasheetarchive.com/pdf/do ... nstruments - one time programmable only).
30: 46fc 2700 movew #9984,%sr
34: 3038 8006 movew 0xffff8006,%d0
38: 4e70 reset
3a: 3038 8006 movew 0xffff8006,%d0
3e: 31fc 0007 8940 movew #7,0xffff8940
44: 0cb9 fa52 235f cmpil #-95280289,0xfa0000
4a: 00fa 0000
4e: 660a bnes 0x5a
50: 4dfa 0008 lea %pc@(0x5a),%fp
54: 4ef9 00fa 0004 jmp 0xfa0004
Tempted to flash the diag cart eeprom with something with nops in those two instructions to see if it tells me anything. Presuming it is an eeprom under that nice sticker that exxos put on the cartridge (edit: AT27C4096 - though of course I need to flash the TOS rom, not this cart, doh! Which is a 27PC240 - https://www.datasheetarchive.com/pdf/do ... nstruments - one time programmable only).
30: 46fc 2700 movew #9984,%sr
34: 3038 8006 movew 0xffff8006,%d0
38: 4e70 reset
3a: 3038 8006 movew 0xffff8006,%d0
3e: 31fc 0007 8940 movew #7,0xffff8940
44: 0cb9 fa52 235f cmpil #-95280289,0xfa0000
4a: 00fa 0000
4e: 660a bnes 0x5a
50: 4dfa 0008 lea %pc@(0x5a),%fp
54: 4ef9 00fa 0004 jmp 0xfa0004
Re: From simple AZERTY Falcon project to custom ARM bus master - advice needed please
Would diagrom be better for this ? You're not fighting with TOS then.
https://www.exxosforum.co.uk/atari/ All my hardware guides - mods - games - STOS
https://www.exxosforum.co.uk/atari/store2/ - All my hardware mods for sale - Please help support by making a purchase.
viewtopic.php?f=17&t=1585 Have you done the Mandatory Fixes ?
Just because a lot of people agree on something, doesn't make it a fact. ~exxos ~
People should find solutions to problems, not find problems with solutions.
https://www.exxosforum.co.uk/atari/store2/ - All my hardware mods for sale - Please help support by making a purchase.
viewtopic.php?f=17&t=1585 Have you done the Mandatory Fixes ?
Just because a lot of people agree on something, doesn't make it a fact. ~exxos ~
People should find solutions to problems, not find problems with solutions.