This commit is contained in:
Mateusz Faderewski 2023-02-18 22:43:41 +01:00
parent 95075d14ea
commit 1a21100d1a
4 changed files with 41 additions and 39 deletions

View File

@ -13,27 +13,29 @@ on:
workflow_dispatch: workflow_dispatch:
jobs: jobs:
# build-fw-hw-sw: build-fw-hw-sw:
# runs-on: ubuntu-latest runs-on: ubuntu-latest
# steps: steps:
# - name: Git checkout - name: Git checkout
# uses: actions/checkout@v3 uses: actions/checkout@v3
# - name: Build script - name: Build script
# run: ./docker_build.sh release --force-clean run: ./docker_build.sh release --force-clean
# - name: Upload artifact - name: Upload artifact
# uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
# with: with:
# name: SC64 name: SC64
# path: SC64.zip path: SC64.zip
# - name: Upload release assets - name: Upload release assets
# if: github.event_name == 'release' && github.event.action == 'created' if: github.event_name == 'release' && github.event.action == 'created'
# uses: softprops/action-gh-release@v0.1.15 uses: softprops/action-gh-release@v0.1.15
# with: with:
# files: SC64.zip files: |
SC64.zip
sc64_firmware.bin
build-apps: build-apps:
strategy: strategy:
@ -41,21 +43,21 @@ jobs:
os: [windows-latest, ubuntu-latest, macos-latest] os: [windows-latest, ubuntu-latest, macos-latest]
include: include:
- os: windows-latest - os: windows-latest
name: sc64-windows pyinstaller-options: --console --icon ../../assets/sc64_logo_256_256.png
options: --console --icon ../../assets/sc64_logo_256_256.png package-name: sc64-windows
package-options: -a -c -f package-options: -c -a -f
package-ext: zip package-extension: zip
- os: ubuntu-latest - os: ubuntu-latest
name: sc64-linux package-name: sc64-linux
package-options: -czf package-options: -czf
package-ext: tgz package-extension: tgz
- os: macos-latest - os: macos-latest
name: sc64-macos pyinstaller-options: --console --icon ../../assets/sc64_logo_256_256.png
options: --console --icon ../../assets/sc64_logo_256_256.png package-name: sc64-macos
package-options: -czf package-options: -czf
package-ext: tgz package-extension: tgz
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
@ -73,25 +75,25 @@ jobs:
working-directory: sw/pc working-directory: sw/pc
- name: Create sc64 executable - name: Create sc64 executable
run: pyinstaller --clean --onefile ${{ matrix.options }} sc64.py run: pyinstaller --clean --onefile ${{ matrix.pyinstaller-options }} sc64.py
working-directory: sw/pc working-directory: sw/pc
- name: Package executable - name: Package executable
run: | run: |
mkdir package mkdir package
pushd dist pushd dist
tar ${{ matrix.package-options }} ../package/${{ matrix.name }}.${{ matrix.package-ext }} * tar ${{ matrix.package-options }} ../package/${{ matrix.package-name }}.${{ matrix.package-extension }} *
popd popd
working-directory: sw/pc working-directory: sw/pc
- name: Upload artifact - name: Upload artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: ${{ matrix.name }} name: ${{ matrix.package-name }}
path: sw/pc/package/* path: sw/pc/package/${{ matrix.package-name }}.${{ matrix.package-extension }}
- name: Upload release assets - name: Upload release assets
if: github.event_name == 'release' && github.event.action == 'created' if: github.event_name == 'release' && github.event.action == 'created'
uses: softprops/action-gh-release@v0.1.15 uses: softprops/action-gh-release@v0.1.15
with: with:
files: sw/pc/package/${{ matrix.name }}.${{ matrix.package-ext }} files: sw/pc/package/${{ matrix.package-name }}.${{ matrix.package-extension }}

View File

@ -9,7 +9,7 @@ TOP_FILES=(
"./sw/pc/primer.py" "./sw/pc/primer.py"
"./sw/pc/requirements.txt" "./sw/pc/requirements.txt"
"./sw/pc/sc64.py" "./sw/pc/sc64.py"
"./sw/update/sc64_update_package.bin" "./sw/update/sc64_firmware.bin"
) )
FILES=( FILES=(
@ -87,7 +87,7 @@ build_update () {
pushd sw/update > /dev/null pushd sw/update > /dev/null
if [ "$FORCE_CLEAN" = true ]; then if [ "$FORCE_CLEAN" = true ]; then
rm -f ./sc64_update_package.bin rm -f ./sc64_firmware.bin
fi fi
GIT_INFO="" GIT_INFO=""
if [ ! -z "${GIT_BRANCH}" ]; then GIT_INFO+="branch: [$GIT_BRANCH] "; fi if [ ! -z "${GIT_BRANCH}" ]; then GIT_INFO+="branch: [$GIT_BRANCH] "; fi
@ -101,7 +101,7 @@ build_update () {
--fpga ../../fw/project/lcmxo2/impl1/sc64_impl1.jed \ --fpga ../../fw/project/lcmxo2/impl1/sc64_impl1.jed \
--boot ../bootloader/build/bootloader.bin \ --boot ../bootloader/build/bootloader.bin \
--primer ../controller/build/primer/primer.bin \ --primer ../controller/build/primer/primer.bin \
sc64_update_package.bin sc64_firmware.bin
popd > /dev/null popd > /dev/null
BUILT_UPDATE=true BUILT_UPDATE=true

View File

@ -66,6 +66,6 @@ Run `python3 sc64.py --boot direct --rom path_to_rom.n64` to disable bootloader
## Firmware backup/update ## Firmware backup/update
To download and backup current version of SC64 firmware run `python3 sc64.py --backup-firmware sc64_backup_package.bin`. To download and backup current version of SC64 firmware run `python3 sc64.py --backup-firmware sc64_firmware_backup.bin`.
To update SC64 firmware run `python3 sc64.py --update-firmware sc64_update_package.bin` To update SC64 firmware run `python3 sc64.py --update-firmware sc64_firmware.bin`

View File

@ -83,9 +83,9 @@ Second, program FPGA, microcontroller and Flash memory:
4. Check in device manager which port number `COMx` is assigned to serial adapter 4. Check in device manager which port number `COMx` is assigned to serial adapter
5. Connect SC64 board to the PC with USB-C cable (***IMPORTANT:*** connect it to the same computer as serial adapter) 5. Connect SC64 board to the PC with USB-C cable (***IMPORTANT:*** connect it to the same computer as serial adapter)
6. Locate `primer.py` script in root folder 6. Locate `primer.py` script in root folder
7. Make sure these files are located in the same folder as `primer.py` script: `requirements.txt`, `sc64.py`, `dd64.py`, `sc64_update_package.bin` 7. Make sure these files are located in the same folder as `primer.py` script: `requirements.txt`, `sc64.py`, `dd64.py`, `sc64_firmware.bin`
8. Run `pip3 install -r requirements.txt` to install required python packages 8. Run `pip3 install -r requirements.txt` to install required python packages
9. Run `python3 primer.py COMx sc64_update_package.bin` (replace `COMx` with port located in step **4**) 9. Run `python3 primer.py COMx sc64_firmware.bin` (replace `COMx` with port located in step **4**)
10. Follow the instructions on the screen 10. Follow the instructions on the screen
11. Wait until programming process has finished 11. Wait until programming process has finished
@ -97,4 +97,4 @@ Congratulations! Your SC64 flashcart should be ready for use!
*`primer.py` threw error on `Bootloader -> SC64 FLASH` step* *`primer.py` threw error on `Bootloader -> SC64 FLASH` step*
This issue can be attributed to incorrectly programmed FT232H EEPROM in the first programming step. Check again in `FT_PROG` program if device was configured properly. Once FPGA and microcontroller has been programmed successfully `primer.py` script needs to be run in special mode. Please use command `python3 primer.py COMx sc64_update_package.bin --only-bootloader` to try programming bootloader again. This issue can be attributed to incorrectly programmed FT232H EEPROM in the first programming step. Check again in `FT_PROG` program if device was configured properly. Once FPGA and microcontroller has been programmed successfully `primer.py` script needs to be run in special mode. Please use command `python3 primer.py COMx sc64_firmware.bin --only-bootloader` to try programming bootloader again.