Merge pull request #2 from LIV2/add_6mb

Add 6MB build for bridgeboards
This commit is contained in:
Matt Harlum 2022-04-03 13:37:53 +02:00 committed by GitHub
commit 9efd1e5d30
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 1737 additions and 6 deletions

File diff suppressed because it is too large Load Diff

View File

@ -9,6 +9,7 @@ Special thanks to [GadgetUK164](https://www.youtube.com/user/GadgetUK164) and sp
## Table of contents
1. [Status](#status)
1. [Features](#features)
1. [Firmware](#firmware)
1. [PCB Ordering](#ordering-pcbs)
1. [Jumpers](#jumpers)
1. [Bill of materials](#bill-of-materials)
@ -23,6 +24,12 @@ This is tested and working
* 8MB of Fast RAM
* Auto-sizing - The RAM board will coexist with other devices by autosizing to fit the remaining free Zorro II memory space
## Firmware
There are two different firmwares available for this card.
1. [Standard autosizing](https://github.com/LIV2/GottaGoFastRAM2000/raw/master/Binary/gottagofast2000.jed) - This Firmware will autosize trying in this order: 8MB -> 4MB -> 2MB -> 1MB until it can fit in the remaining space
2. [6MB autosizing](https://github.com/LIV2/GottaGoFastRAM2000/raw/master/Binary/gottagofast2000-6MB.jed) - This will try to offer 8MB then 6MB (in a block of 2MB + 4MB) to maximize space i.e when using a bridgeboard that needs 512K itself
## PCB Ordering
For best results the boards should be manufactured with the "Gold Fingers" option so that the edge connector will survive many insertion/removal cycles
@ -49,5 +56,8 @@ For best results the boards should be manufactured with the "Gold Fingers" optio
\* U2 buffers the cards generated DTACK and OVR signals - In a pinch this can be left out but you will run into problems with the A2091 and some other devices so it is best to fit this and save yourself the headache
## Troubleshooting
* Symptom: System does not boot, the power LED does not change brightness
Solution: Possible incorrect orientation/faulty ic in U2 - check orientation and/or remove this IC and try again
* **Symptom**: System does not boot, the power LED does not change brightness
**Solution**: Possible incorrect orientation/faulty ic in U2 - check orientation and/or remove this IC and try again
* **Symptom**: My bridgeboard doesn't work when this card is installed
**Solution**: The bridgeboard needs 512K of the 8MB expansion space for its own use, you will need to move the ram board to the leftmost slot and I recommend flashing the [6MB Firmware](https://github.com/LIV2/GottaGoFastRAM2000/raw/master/Binary/gottagofast2000-6MB.jed) to maximise the amount of memory offered when used with the bridgeboard

View File

@ -24,6 +24,11 @@ $(WORKDIR)/$(PROJECT).ngc: $(PROJECT).v $(PROJECT).prj
@sed -r "s#^(-top).*#\1 $(PROJECT)#g;s#^(-ofn).*#\1 ..\/$@#g;s#^(-ifn).*#\1 ../$(PROJECT).prj#g;s#^(-define).*#\1 {makefile_defines $(DEFINES) SERIAL=32'h${SERIAL} PRODID=${PRODID}}#g" template.xst > $@.xst
cd $(WORKDIR) && xst -ifn ../$@.xst -ofn $(PROJECT)-xst.log
$(WORKDIR)/$(PROJECT)-6MB.ngc: $(PROJECT).v $(PROJECT).prj
@mkdir $(WORKDIR) || true
@sed -r "s#^(-top).*#\1 $(PROJECT)#g;s#^(-ofn).*#\1 ..\/$@#g;s#^(-ifn).*#\1 ../$(PROJECT).prj#g;s#^(-define).*#\1 {makefile_defines $(DEFINES) SERIAL=32'h${SERIAL} PRODID=${PRODID} Offer_6M}#g" template.xst > $@.xst
cd $(WORKDIR) && xst -ifn ../$@.xst -ofn $(PROJECT)-xst.log
$(WORKDIR)/%.ngd: $(WORKDIR)/%.ngc $(PROJECT).ucf
cd $(WORKDIR) && ngdbuild -p $(PART) -uc ../$(PROJECT).ucf ../$< ../$@
@ -61,3 +66,14 @@ flash: $(PROJECT).jed
"verify -p 1\n"\
"exit" > tmp/batch
LD_PRELOAD=/opt/Xilinx/usb-driver/libusb-driver.so impact -batch tmp/batch
flash-6MB: $(PROJECT)-6MB.jed
@echo "setMode -bs\n"\
"setCable -p $(CABLE)\n"\
"identify\n"\
"assignfile -p 1 -file $<\n"\
"erase -p 1\n"\
"program -p 1\n"\
"verify -p 1\n"\
"exit" > tmp/batch
LD_PRELOAD=/opt/Xilinx/usb-driver/libusb-driver.so impact -batch tmp/batch

View File

@ -113,15 +113,15 @@ begin
shutup <= 1'b0;
addr_match <= 8'b00000000;
`ifdef Offer_6M
autoconfig_state <= Offer_2M;
`else
//`ifdef Offer_6M
// autoconfig_state <= Offer_8M;
//`else
if (!J4MB) begin
autoconfig_state <= Offer_4M;
end else begin
autoconfig_state <= Offer_8M;
end
`endif
//`endif
end else if (autoconfig_cycle & RWn) begin
case (ADDR[8:1])
8'h00: data_out <= 4'b1110; // Type: Zorro II, link to free pool