Hosted forum for UMDK related questions
Ah that's a shame. Would have been nice to meet you in person. Hit me up if you find yourself in the area again.prophet36 wrote:I wish I had known - I just spent a couple of weeks in SF for work.Mask of Destiny wrote:I am indeed in the US, specifically in California in the San Francisco Bay area.
As for the price, $80 sounds more than reasonable to me given what I paid for my Mega Everdrive.
It's UnitTest++, which is actually a C++ testing framework but it works nicely for C projects too.MintyTheCat wrote:ChrisM/Prophet36 uses C-Unit (*I think*) that carries out a batch of tests on the MD hardware getting the result from the MD hardware and compared with expected results.
The main bulk of the MD-connected tests involve testing the various memory read/write operations on the host side. Remember that with the exception of the instruction tracing, all host<->MD operations are done by message-passing using a region of shared memory. Some areas of memory can be directly accessed by the host whilst others need the cooperation of the monitor to copy memory blocks to or from a region that is directly-accessible. So there are a lot of tests for reads and writes at various locations, with various alignments, etc. Then there are tests which actually load some real code into the MD and set it single-stepping, verifying the 68000 state after each step:
https://github.com/makestuff/umdkv2/blo ... m.cpp#L385
https://github.com/makestuff/umdkv2/blo ... tor/test.s
However, this is all pretty far down the list of stuff that needs to be done when bringing a new board online though. I've been over this with sirmorris but basically boils down to something like:
- Visually check both boards for solder-bridges and dry joints using a microscope.
- Use a multimeter to verify the correct resistances on both boards.
- Power LX9 board from USB without jumpers; verify +5V supply.
- Add "USB" jumper on J4, thus powering up +3.3V regulator; verify +3.3V on regulator.
- Tail syslog, add jumper J2 & verify FX2 enumerates and shows as 04b4:8613 in lsusb.
- Add jumper J1 to attach the FX2's EEPROM & load FPGALink firmware: "flcli -i 04b4:8613 -v 1d50:602b:0002 --eeprom=std".
- Disconnect & reconnect board; ensure it now enumerates as 1d50:602b.
- Scan the JTAG chain with "flcli -v 1d50:602b:0002 -q A7A0A3A1" and make sure you can see the FPGA (IDCODE 0x24001093).
- Load cksum.xsvf and verify that it correctly calculates the checksum of a block of random data sent to it.
- Load readback.xsvf and verify that a 16MiB block of random data can be written to the SDRAM and then read back without corruption.
- Load spi-talk.xsvf and use gordon to write fpga.bin & firmware.bin to the FPGA flash and ensure you can read back without corruption.
- Disconnect from USB.
- Move the J4 jumper from "USB" to "EXT" (thus switching the power source from USB to the MD).
- Add jumper J3 (thus ensuring the bridge board gets a +3.3V supply).
- Connect UMDK bridge board & check orientation. Check orientation again for good measure.
- Screw the composite PCB into an empty cart.
- Plug it into a MD and verify that the menu program starts ("MakeStuff USB MegaDrive Devkit v2" on the MD screen).
- Connect USB and run gdb-bridge tests described above.
- Insert "known good" SD-card and ensure menu starts correctly.
- Celebrate with a little dance and put the newly-minted UMDK cart in a jiffy and send it on its way to another lucky recipient!