mirror of
https://github.com/Polprzewodnikowy/SummerCart64.git
synced 2024-11-25 07:06:52 +01:00
ff69030643
* isv support + usb/dd improvements
* make room for saves
* update offset
* fixed debug address
* idk
* exception
* ironed out all broken stuff
* cleanup
* return epc fix
* better
* more cleanup
* even more cleanup
* mooore cleanup
* fixed printf
* no assert
* improved docker build, pyft232 instead of pyserial
* fixed displaying long message strings
description test
* just straight cleanup
* smallest cleanup
* PAL
* cpu buffer
* n64 bootloader done
* super slow usb storage reading implemented
* reduced buffer size
* usb gets fast
* little cleanup
* double buffered reads
* removed separate event id
* ISV in hardware finally
* small exception changes
* mac testing
* py spacing
* fsd write, rtc, isv and reset fixes
* fixxx
* good stopping point
* usb fixed?
* pretend we have 128 MB sdram
* backup
* chmod
* test
* test done
* more tests
* user rm
* help
* final fix
* updated component values
* nice asset names
* cic 64dd support
* ddipl enable separation
* pre DMA rewrite, created dedicated buffer memory space, simplified code
* dma rewrite, needs testing
* moved xml
* dd basics
* timing
* 64dd working yet again, isv brought back, dma fixes, usb path rewrite, pc code rewrite
* added usb read functionality, general cleanup
* changed mem addressing
* added fpga flash update access
* added mcu update
* chmod
* little cleanup
* update format and stuff
* fixes
* uninitialized fix
* small fixes
* update fixes
* update stuff done
* fpga update tested
* build time fix
* boot fix
* test timing
* readme test
* test 2
* reports
* testseet
* final
* build test
* forgot
* button and naming
* General cleanup
And multiline commit message test
* Exception screen UI touch ups
* display separation and tests beginning
* pc software update
* pc software done
* timing test
* delete launch.json
* sw fixes
* fixed button hole diameter in shell
* small cleanup, rpi testing
* shell fillet fix, pc rtc printing
* added cfg lock mechanism
* moved lock to cfg address space
* extended ROM and ISV fixes
* preliminary sd card support
* little sd card cleanup
* sd menu fixes
* 5 second limit
* reduced shell thickness
* basic led act blinking
* faster sd menu loading
* inst cache invalidate
* sd card writing is working
* SD card CSD and CID registers
* wait for previous command
* led error codes
* fixed cfg_translate_address use
* 64dd from sd card working
* 64dd speedup and button handling
* delayed address latching cycle - might break other builds, needs testing
* bootloader improvements
* small fixes
* return previous cfg when setting new
* cache stuff
* unfloader debug protocol support
* UNFLoader style debug command line support
* requirements.txt
* shell groove fillet
* reset state inside controller
* fixed fast PI read, added PI R/W fifo debug info
* PI access prioritize
* SD clock stop when RX FIFO is more than half full
* flash erase method change
* CFG error handling, TLOZ MM debug ISV support
* CIC5167 support
* general fixes
* USB unplugged cable handling
* turn off led when changing between error/act modes
* rtc 2 bit clock stop support
* line endings
* Revert "line endings"
This reverts commit d0ddfe5ec7
.
* PI address debug
* readme test
* diagram update
* diagram background
* diagram background
* diagram background
* updated readme
177 lines
4.4 KiB
Bash
Executable File
177 lines
4.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
PACKAGE_FILE_NAME="SC64"
|
|
|
|
FILES=(
|
|
"./fw/ftdi/ft232h_config.xml"
|
|
"./fw/project/lcmxo2/impl1/sc64_impl1.mrp"
|
|
"./fw/project/lcmxo2/impl1/sc64_impl1.twr"
|
|
"./sw/pc/dd64.py"
|
|
"./sw/pc/sc64.py"
|
|
"./sw/update/sc64.upd"
|
|
"./LICENSE"
|
|
"./README.md"
|
|
)
|
|
|
|
BUILT_BOOTLOADER=false
|
|
BUILT_CONTROLLER=false
|
|
BUILT_FPGA=false
|
|
BUILT_UPDATE=false
|
|
BUILT_RELEASE=false
|
|
|
|
FORCE_CLEAN=false
|
|
|
|
build_bootloader () {
|
|
if [ "$BUILT_BOOTLOADER" = true ]; then return; fi
|
|
|
|
pushd sw/bootloader > /dev/null
|
|
if [ "$FORCE_CLEAN" = true ]; then
|
|
make clean
|
|
fi
|
|
FLAGS="$USER_FLAGS"
|
|
if [ ! -z "${GIT_BRANCH+x}" ]; then FLAGS+=" -DGIT_BRANCH='\"$GIT_BRANCH\"'"; fi
|
|
if [ ! -z "${GIT_TAG+x}" ]; then FLAGS+=" -DGIT_TAG='\"$GIT_TAG\"'"; fi
|
|
if [ ! -z "${GIT_SHA+x}" ]; then FLAGS+=" -DGIT_SHA='\"$GIT_SHA\"'"; fi
|
|
if [ ! -z "${GIT_MESSAGE+x}" ]; then FLAGS+=" -DGIT_MESSAGE='\"$GIT_MESSAGE\"'"; fi
|
|
make all -j USER_FLAGS="$FLAGS"
|
|
popd > /dev/null
|
|
|
|
BUILT_BOOTLOADER=true
|
|
}
|
|
|
|
build_controller () {
|
|
if [ "$BUILT_CONTROLLER" = true ]; then return; fi
|
|
|
|
pushd sw/controller > /dev/null
|
|
if [ "$FORCE_CLEAN" = true ]; then
|
|
./build.sh clean
|
|
fi
|
|
USER_FLAGS="$USER_FLAGS" ./build.sh all
|
|
popd > /dev/null
|
|
|
|
BUILT_CONTROLLER=true
|
|
}
|
|
|
|
build_fpga () {
|
|
if [ "$BUILT_FPGA" = true ]; then return; fi
|
|
|
|
pushd fw/project/lcmxo2 > /dev/null
|
|
if [ "$FORCE_CLEAN" = true ]; then
|
|
rm -rf ./impl1/
|
|
fi
|
|
./build.sh
|
|
popd > /dev/null
|
|
|
|
BUILT_FPGA=true
|
|
}
|
|
|
|
build_update () {
|
|
if [ "$BUILT_UPDATE" = true ]; then return; fi
|
|
|
|
build_bootloader
|
|
build_controller
|
|
build_fpga
|
|
|
|
pushd sw/update > /dev/null
|
|
if [ "$FORCE_CLEAN" = true ]; then
|
|
rm -f ./sc64.upd
|
|
fi
|
|
GIT_INFO=""
|
|
if [ ! -z "${GIT_BRANCH}" ]; then GIT_INFO+="branch: [$GIT_BRANCH] "; fi
|
|
if [ ! -z "${GIT_TAG}" ]; then GIT_INFO+="tag: [$GIT_TAG] "; fi
|
|
if [ ! -z "${GIT_SHA}" ]; then GIT_INFO+="sha: [$GIT_SHA] "; fi
|
|
if [ ! -z "${GIT_MESSAGE}" ]; then GIT_INFO+="message: [$GIT_MESSAGE] "; fi
|
|
GIT_INFO=$(echo "$GIT_INFO" | xargs)
|
|
python3 update.py \
|
|
--git "$GIT_INFO" \
|
|
--mcu ../controller/build/app/app.bin \
|
|
--fpga ../../fw/project/lcmxo2/impl1/sc64_impl1.jed \
|
|
--boot ../bootloader/build/bootloader.bin \
|
|
sc64.upd
|
|
popd > /dev/null
|
|
|
|
BUILT_UPDATE=true
|
|
}
|
|
|
|
build_release () {
|
|
if [ "$BUILT_RELEASE" = true ]; then return; fi
|
|
|
|
build_update
|
|
|
|
if [ -e "./${PACKAGE_FILE_NAME}.zip" ]; then
|
|
rm -f "./${PACKAGE_FILE_NAME}.zip"
|
|
fi
|
|
zip -j -r "./${PACKAGE_FILE_NAME}.zip" ${FILES[@]}
|
|
|
|
BUILT_RELEASE=true
|
|
}
|
|
|
|
print_usage () {
|
|
echo "builder script for SC64"
|
|
echo "usage: ./build.sh [bootloader] [controller] [fpga] [update] [release] [-c] [--help]"
|
|
echo "parameters:"
|
|
echo " bootloader - compile N64 bootloader software"
|
|
echo " controller - compile ARM controller software"
|
|
echo " fpga - compile FPGA design"
|
|
echo " update - compile all software and designs"
|
|
echo " release - collect and zip files for release (triggers 'update' build)"
|
|
echo " -c | --force-clean"
|
|
echo " - clean compilation result directories before build"
|
|
echo " --help - print this guide"
|
|
}
|
|
|
|
if test $# -eq 0; then
|
|
echo "error: no parameters provided"
|
|
echo " "
|
|
print_usage
|
|
exit 1
|
|
fi
|
|
|
|
TRIGGER_BOOTLOADER=false
|
|
TRIGGER_CONTROLLER=false
|
|
TRIGGER_FPGA=false
|
|
TRIGGER_UPDATE=false
|
|
TRIGGER_RELEASE=false
|
|
|
|
while test $# -gt 0; do
|
|
case "$1" in
|
|
bootloader)
|
|
TRIGGER_BOOTLOADER=true
|
|
;;
|
|
controller)
|
|
TRIGGER_CONTROLLER=true
|
|
;;
|
|
fpga)
|
|
TRIGGER_FPGA=true
|
|
;;
|
|
update)
|
|
TRIGGER_UPDATE=true
|
|
;;
|
|
release)
|
|
TRIGGER_RELEASE=true
|
|
;;
|
|
-c|--force-clean)
|
|
FORCE_CLEAN=true
|
|
;;
|
|
--help)
|
|
print_usage
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo "error: unknown parameter \"$1\""
|
|
echo " "
|
|
print_usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [ "$TRIGGER_BOOTLOADER" = true ]; then build_bootloader; fi
|
|
if [ "$TRIGGER_CONTROLLER" = true ]; then build_controller; fi
|
|
if [ "$TRIGGER_FPGA" = true ]; then build_fpga; fi
|
|
if [ "$TRIGGER_UPDATE" = true ]; then build_update; fi
|
|
if [ "$TRIGGER_RELEASE" = true ]; then build_release; fi
|