foft wrote: 07 Nov 2022 14:38
Yes, on the left. I didn't know about the 16MHz, I thought it was just disabling TT-RAM.
There isn't a 'disable TT-RAM' jumper on any publically-released firmware as it's not normally needed. On the older firmwares trying to access TT-RAM with OPTION2 jumpered would cause a hang because the timings simply didn't work at 16MHz, so that could be what you're remembering.
I can't recall testing it, but I think TT-RAM and OPTION2 should now work, just quite slowly. Likely slower than ST-RAM, TBH, but it may make testing easier.
What surprises me is that it seems to behave the same in the YAARTTT 'M' with option 2 on and off.
That could be indicitive of a physical problem, but it's non-obvious from your data.
For 'M' mode do you know if the MMU needs touching? I'm wondering if I can just do a read/write physical memory in asm with devpac for instance so I have more control over what is being written/read when and can attach the logic analyzer.
MMU not involved unless you've run something to frob it first. Only thing you need to do is disable data cache and you can read and write to TT-RAM at your leisure.
I have a small command line program that read and writes longwords to the specified address that I use for debugging. I've lost the source now, but it's fairly straightforward. Parse argv[1], peek or poke it.
Christian was kind enough to build me a copy of YAARTTT that exits on first error, that means I can probe around the memory and identify issues. This was mostly for firmware development, but would also be handy in this case.
You can emulate the same effect by holding down ALT immediately after running YAARTTTT, it'll either exit on first error or after the first pass then.
Of course, for elementary data line shorts, poking 0x55555555 and then 0xAAAAAA normally yields results. For address line shorts, YAARTT is better as you'll see, for example, 0x1000080 showing at address 0x1000000 after the first pass.
In my FPGA work I never got to implementing boundary scans, though I think that is how its supposed to work on FPGAs and CPLDs.
I tried to read the documentation about boundary scans. It probably makes sense if you've work with FPGAs for years, but it didn't mean much to me. :?
BW