ikari d65d657ff7 Firmware: increase ROM space for directory structure 12 年 前
..
bootldr e5285f8196 Firmware/bootloader: reduce bootloader size to 8192 bytes 12 年 前
utils cb202569d1 firmware: bootloader with firmware upgrade 13 年 前
Makefile bfe9a91d07 firmware: adjustments for Mk.II Rev.C; enable timesetting from SNES menu 13 年 前
README 65e26cb0c3 basic build instructions 12 年 前
bits.h 4bc455f12b SD acceleration, display file size in menu (fw side) 13 年 前
ccsbcs.c 40248e61af mk2 fw wip 13 年 前
cfgware.h 91d8637dfe Firmware: embed updated sd2sneslite into firmware 12 年 前
cic.c 8647a252c4 Firmware: SuperCIC detection support 12 年 前
cic.h 8647a252c4 Firmware: SuperCIC detection support 12 年 前
cli.c a474ccf475 Firmware/CLI: Add 'rm' command 12 年 前
cli.h d4b7d9630b cic interface, cli for real this time... 13 年 前
clock.c bfe9a91d07 firmware: adjustments for Mk.II Rev.C; enable timesetting from SNES menu 13 年 前
clock.h 40248e61af mk2 fw wip 13 年 前
conf2h.awk e121b34cf4 Initial Commit 15 年 前
config 4a9d40b841 Firmware: update version number 12 年 前
config.h 08cace5c12 firmware: increase qsort entry limit to 2048 12 年 前
crc.S 31d9e1a1d2 some sanity checks, early status messages 13 年 前
crc.h 40248e61af mk2 fw wip 13 年 前
crc16.c bfe9a91d07 firmware: adjustments for Mk.II Rev.C; enable timesetting from SNES menu 13 年 前
crc16.h bfe9a91d07 firmware: adjustments for Mk.II Rev.C; enable timesetting from SNES menu 13 年 前
crc32.c 46a42fe5ac mk2 fw: iap preparation, so96 mapper, reduce db size, delay with real sleep mode, cli 13 年 前
crc32.h 220b8c32a4 SaveRAM+directory CRC16 -> CRC32 13 年 前
diskio.h e2e628d6fb preliminary MSU-1 audio support 13 年 前
faulthandler.c fa28f6035e mk2 fw wip 13 年 前
ff.c 39b78ae91c Firmware: SD debugging + minor cleanups 12 年 前
ff.h 3fda86125c firmware: speed up directory scanning 12 年 前
ffconf.h 4bc455f12b SD acceleration, display file size in menu (fw side) 13 年 前
fileops.c 3fda86125c firmware: speed up directory scanning 12 年 前
fileops.h 3fda86125c firmware: speed up directory scanning 12 年 前
filetypes.c e880fac0ba Firmware: disable some debug messages 12 年 前
filetypes.h 3fda86125c firmware: speed up directory scanning 12 年 前
flash.cfg d9abb0811e begin ARM firmware 13 年 前
flash.script c97278c3d6 Firmware: adjust to reduced bootloader size 12 年 前
fpga.c fcac85d19b Firmware: minor cleanups/comments 12 年 前
fpga.h 3bf7788693 Firmware: remove now unused mcu_ovr statements 12 年 前
fpga_spi.c 39b78ae91c Firmware: SD debugging + minor cleanups 12 年 前
fpga_spi.h 8c76dfbeb6 FPGA/Cx4: WIP 12 年 前
init.gdb 40248e61af mk2 fw wip 13 年 前
integer.h f063cb31f9 mk2 fw wip (cleanup indent+comment) 13 年 前
irq.c e99c5eb863 firmware: add missing irq.c 13 年 前
led.c bc28fed22a Firmware: correct LED PWM initialization 12 年 前
led.h b7654290a1 LED PWM 13 年 前
lpc1754.cfg 40a2ae00fb Firmware/build: Be more OpenOCD 0.4.0 friendly 12 年 前
lpc1754.ld c97278c3d6 Firmware: adjust to reduced bootloader size 12 年 前
main.c 3fda86125c firmware: speed up directory scanning 12 年 前
memory.c 6a17ffe152 Firmware: cx4 support 12 年 前
memory.h d65d657ff7 Firmware: increase ROM space for directory structure 12 年 前
msu1.c fee9c9b2a1 Firmware: Adapt to new FPGA memory access 12 年 前
msu1.h 1183718234 Firmware: ST0010 support + peripheral enable switches 13 年 前
openocd-usb.cfg 40a2ae00fb Firmware/build: Be more OpenOCD 0.4.0 friendly 12 年 前
power.c 72b9444861 firmware: initial power management 13 年 前
power.h 72b9444861 firmware: initial power management 13 年 前
printf.c fa28f6035e mk2 fw wip 13 年 前
reset.cfg db45a5afaf mk2 fw wip 13 年 前
rle.c d7efa83e71 firmware: RLE 13 年 前
rle.h d7efa83e71 firmware: RLE 13 年 前
rtc.c bfe9a91d07 firmware: adjustments for Mk.II Rev.C; enable timesetting from SNES menu 13 年 前
rtc.h bfe9a91d07 firmware: adjustments for Mk.II Rev.C; enable timesetting from SNES menu 13 年 前
sdcard.h 83f3307680 mk2 fw wip 13 年 前
sdnative.c 39b78ae91c Firmware: SD debugging + minor cleanups 12 年 前
sdnative.h bfe9a91d07 firmware: adjustments for Mk.II Rev.C; enable timesetting from SNES menu 13 年 前
smc.c 6a17ffe152 Firmware: cx4 support 12 年 前
smc.h 6a17ffe152 Firmware: cx4 support 12 年 前
snes.c 3bf7788693 Firmware: remove now unused mcu_ovr statements 12 年 前
snes.h cfa78624c9 Firmware: cleanup ROM loading, minor touchups 13 年 前
snesboot.h 9eebd5cd73 Firmware: embed new SNES boot message code 12 年 前
sort.c 4bc455f12b SD acceleration, display file size in menu (fw side) 13 年 前
sort.h fa28f6035e mk2 fw wip 13 年 前
spi.c fcac85d19b Firmware: minor cleanups/comments 12 年 前
spi.h d0e349a145 Firmware/SPI: move status register bit constants to spi.h 12 年 前
startup.S d9abb0811e begin ARM firmware 13 年 前
tests.h 747e04e010 firmware: add tests.h 13 年 前
timer.c bfe9a91d07 firmware: adjustments for Mk.II Rev.C; enable timesetting from SNES menu 13 年 前
timer.h 46a42fe5ac mk2 fw: iap preparation, so96 mapper, reduce db size, delay with real sleep mode, cli 13 年 前
uart.c e2e628d6fb preliminary MSU-1 audio support 13 年 前
uart.h 561477ec53 SD native write support (still needs error handling), DB creation update (display file sizes) 13 年 前
xmodem.c f6df5e1158 Firmware: remove magic number for XModem block size 12 年 前
xmodem.h f6df5e1158 Firmware: remove magic number for XModem block size 12 年 前

README

How to build:

a) Build requirements
* make
* Cortex M3 toolchain
* snescom/sneslink
* Xilinx FPGA synthesis tool (e.g. ISE WebPack)
* PIC assembler

b) Cortex M3 toolchain
* obtain the cm3-toolchain builder:
git clone http://snowcat.de/toolchain-cm3.git/
* build the cm3-toolchain. Some tools, libraries, and headers are required,
including but probably not limited to:
- libz-dev
- libcloog-ppl-dev
- texinfo
- libmpfr-dev
- libgmp3-dev
- gawk
- bison
- recode
- flex
- libncurses5-dev
- libexpat-dev
- make
- gcc
Newer gccs complain when compiling binutils, so you may have to add
'--disable-werror' to the compiler options for binutils in the Makefile.
The Makefile will install immediately so make sure you can write to the
installation directory.

c) snescom/sneslink
* http://bisqwit.iki.fi/source/snescom.html

d) ISE WebPack
* http://www.xilinx.com/products/design-tools/ise-design-suite/ise-webpack.htm

e) PIC assembler
* e.g. GPUTILS, http://gputils.sourceforge.net/

f) general order of operations
1) program the PIC (cic/supercic/supercic-key.asm)
2) build and program the bootloader.
3) build the firmware and copy it to the memory card
4) build the snes menu and copy it to the memory card
5) build and compress the FPGA configuration and copy it to the memory card
6) insert memory card, power on; the bootloader should begin flashing the
firmware and boot it

1) Programming the PIC
Use a PIC assembler + programmer of your choice and program a PIC12F629 with
cic/supercic/supercic-key.asm. Make sure that the clock source is set to
EC_OSC and MCLRE is disabled.
After programming you can solder the PIC to the board and short JP401.
Open JP401 in case you need to reprogram the PIC on board.

2) Building & programming the bootloader
The Makefile is prepared for JTAG programming using OpenOCD 0.4 and an FT2232
based USB-JTAG adapter.
Connect a JTAG cable to J401 (14-pin header). The pinout is printed on the
board. cd to src/bootldr and make && make program.

3) Building the firmware
cd to src/utils and make.
cd to src/ and make.
You should obtain a firmware file called obj/firmware.img. Copy this file to
/sd2snes/firmware.img.

4) Building the SNES menu
snescom is required.
cd to snes/ and make.
Copy the resulting file menu.bin to /sd2snes/menu.bin.

5) Building the FPGA configuration
Compile the RLE compressor in utils/rle.c:
$ gcc -Wall -o rle rle.c

Load verilog/sd2snes/sd2snes.xise in Xilinx ISE (or create your own project).
Target is a XC3S400-4PQ208.
Generate the programming file and compress it using utils/rle.c:
$ rle main.bit fpga_base.bit

Copy fpga_base.bit to /sd2snes/fpga_base.bit