diff --git a/CMakeLists.txt b/CMakeLists.txt index f885ccf..ea3af23 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,6 +22,7 @@ if(ESP_PLATFORM) include($ENV{IDF_PATH}/tools/cmake/project.cmake) else() if(NOT ENABLE_EMULATION) + set(PICO_USE_FASTEST_SUPPORTED_CLOCK 1) include(pico_sdk_import.cmake) endif() diff --git a/build_pico_hsm.sh b/build_pico_hsm.sh index 9a388c5..7e71c4c 100755 --- a/build_pico_hsm.sh +++ b/build_pico_hsm.sh @@ -1,7 +1,7 @@ #!/bin/bash VERSION_MAJOR="5" -VERSION_MINOR="2-eddsa1" +VERSION_MINOR="4-eddsa1" SUFFIX="${VERSION_MAJOR}.${VERSION_MINOR}" #if ! [[ -z "${GITHUB_SHA}" ]]; then # SUFFIX="${SUFFIX}.${GITHUB_SHA}" @@ -11,98 +11,13 @@ rm -rf release/* mkdir -p build_release mkdir -p release cd build_release - -for board in 0xcb_helios \ - adafruit_feather_rp2040_usb_host \ - adafruit_feather_rp2040 \ - adafruit_itsybitsy_rp2040 \ - adafruit_kb2040 \ - adafruit_macropad_rp2040 \ - adafruit_qtpy_rp2040 \ - adafruit_trinkey_qt2040 \ - amethyst_fpga \ - archi \ - arduino_nano_rp2040_connect \ - cytron_maker_pi_rp2040 \ - datanoisetv_rp2040_dsp \ - eetree_gamekit_rp2040 \ - garatronic_pybstick26_rp2040 \ - gen4_rp2350_24 \ - gen4_rp2350_24ct \ - gen4_rp2350_24t \ - gen4_rp2350_28 \ - gen4_rp2350_28ct \ - gen4_rp2350_28t \ - gen4_rp2350_32 \ - gen4_rp2350_32ct \ - gen4_rp2350_32t \ - gen4_rp2350_35 \ - gen4_rp2350_35ct \ - gen4_rp2350_35t \ - hellbender_2350A_devboard \ - ilabs_challenger_rp2350_bconnect \ - ilabs_challenger_rp2350_wifi_ble \ - ilabs_opendec02 \ - melopero_perpetuo_rp2350_lora \ - melopero_shake_rp2040 \ - metrotech_xerxes_rp2040 \ - net8086_usb_interposer \ - nullbits_bit_c_pro \ - phyx_rick_tny_rp2350 \ - pi-plates_micropi \ - pico \ - pico_w \ - pico2 \ - pimoroni_badger2040 \ - pimoroni_interstate75 \ - pimoroni_keybow2040 \ - pimoroni_motor2040 \ - pimoroni_pga2040 \ - pimoroni_pga2350 \ - pimoroni_pico_plus2_rp2350 \ - pimoroni_picolipo_4mb \ - pimoroni_picolipo_16mb \ - pimoroni_picosystem \ - pimoroni_plasma2040 \ - pimoroni_plasma2350 \ - pimoroni_servo2040 \ - pimoroni_tiny2040 \ - pimoroni_tiny2040_2mb \ - pimoroni_tiny2350 \ - pololu_3pi_2040_robot \ - pololu_zumo_2040_robot \ - seeed_xiao_rp2040 \ - seeed_xiao_rp2350 \ - solderparty_rp2040_stamp \ - solderparty_rp2040_stamp_carrier \ - solderparty_rp2040_stamp_round_carrier \ - solderparty_rp2350_stamp_xl \ - solderparty_rp2350_stamp \ - sparkfun_micromod \ - sparkfun_promicro \ - sparkfun_promicro_rp2350 \ - sparkfun_thingplus \ - switchscience_picossci2_conta_base \ - switchscience_picossci2_dev_board \ - switchscience_picossci2_micro \ - switchscience_picossci2_rp2350_breakout \ - switchscience_picossci2_tiny \ - tinycircuits_thumby_color_rp2350 \ - vgaboard \ - waveshare_rp2040_lcd_0.96 \ - waveshare_rp2040_lcd_1.28 \ - waveshare_rp2040_one \ - waveshare_rp2040_plus_4mb \ - waveshare_rp2040_plus_16mb \ - waveshare_rp2040_zero \ - weact_studio_rp2040_2mb \ - weact_studio_rp2040_4mb \ - weact_studio_rp2040_8mb \ - weact_studio_rp2040_16mb \ - wiznet_w5100s_evb_pico +PICO_SDK_PATH="${PICO_SDK_PATH:-../../pico-sdk}" +board_dir=${PICO_SDK_PATH}/src/boards/include/boards +for board in "$board_dir"/* do + board_name="$(basename -- $board .h)" rm -rf * - PICO_SDK_PATH="${PICO_SDK_PATH:-../../pico-sdk}" cmake .. -DPICO_BOARD=$board + PICO_SDK_PATH="${PICO_SDK_PATH}" cmake .. -DPICO_BOARD=$board_name make -j`nproc` - mv pico_hsm.uf2 ../release/pico_hsm_$board-$SUFFIX.uf2 + mv pico_hsm.uf2 ../release/pico_hsm_$board_name-$SUFFIX.uf2 done diff --git a/pico-keys-sdk b/pico-keys-sdk index edc2b3a..4120a8c 160000 --- a/pico-keys-sdk +++ b/pico-keys-sdk @@ -1 +1 @@ -Subproject commit edc2b3a4985a8cc95880e1d2b42b5aec9d793bbf +Subproject commit 4120a8c1a61a0a63040a83522133a10cd9a75e5a diff --git a/src/hsm/cmd_extras.c b/src/hsm/cmd_extras.c index c97e2be..fe89ee4 100644 --- a/src/hsm/cmd_extras.c +++ b/src/hsm/cmd_extras.c @@ -235,14 +235,9 @@ int cmd_extras() { else { return SW_INCORRECT_P1P2(); } - uint8_t tmp[PHY_MAX_SIZE]; - uint16_t tmp_len = 0; - memset(tmp, 0, sizeof(tmp)); - if (phy_serialize_data(&phy_data, tmp, &tmp_len) != PICOKEY_OK) { + if (phy_save() != PICOKEY_OK) { return SW_EXEC_ERROR(); } - file_put_data(ef_phy, tmp, tmp_len); - low_flash_available(); } } #endif diff --git a/src/hsm/version.h b/src/hsm/version.h index 615e7ea..1d32f94 100644 --- a/src/hsm/version.h +++ b/src/hsm/version.h @@ -18,7 +18,7 @@ #ifndef __VERSION_H_ #define __VERSION_H_ -#define HSM_VERSION 0x0502 +#define HSM_VERSION 0x0504 #define HSM_VERSION_MAJOR ((HSM_VERSION >> 8) & 0xff) #define HSM_VERSION_MINOR (HSM_VERSION & 0xff) diff --git a/workflows/autobuild.sh b/workflows/autobuild.sh index 8daf6ea..f872cd9 100755 --- a/workflows/autobuild.sh +++ b/workflows/autobuild.sh @@ -7,7 +7,7 @@ if [[ $1 == "pico" ]]; then sudo apt install -y cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib git clone https://github.com/raspberrypi/pico-sdk cd pico-sdk -git checkout tags/2.1.0 +git checkout tags/2.1.1 git submodule update --init cd .. git clone https://github.com/raspberrypi/picotool @@ -37,6 +37,16 @@ mkdir -p release cd build esptool.py --chip ESP32-S3 merge_bin -o ../release/pico_hsm_esp32-s3.bin @flash_args cd .. +cd esp-idf +./install.sh esp32s2 +. ./export.sh +cd .. +idf.py set-target esp32s2 +idf.py all +mkdir -p release +cd build +esptool.py --chip ESP32-S2 merge_bin -o ../release/pico_hsm_esp32-s2.bin @flash_args +cd .. else mkdir build cd build