From 8eb4669c0fcc808d799d902d82d8f030ebbcf85d Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Fri, 17 Jan 2025 20:56:11 +0100 Subject: [PATCH 01/10] Fixes #74. LibCCID allows propietary class for CCID (ALLOW_PROPIETARY_CLASS in LibCCID). Then both interfaces are loaded but since both belong to same device, only the last is opened. We change maxSlot value even it breaks the ICCD spec to cause a timeout in LibCCID and deactivate WebCCID interface. Signed-off-by: Pol Henarejos --- pico-keys-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pico-keys-sdk b/pico-keys-sdk index 3d91287..a081a2b 160000 --- a/pico-keys-sdk +++ b/pico-keys-sdk @@ -1 +1 @@ -Subproject commit 3d912878f1627719a006291eef5d60142a2f474f +Subproject commit a081a2bde641cc93c5c86cf59df548d498f67df8 From 747e5fbe867250f543939cb1d0aa34183d0c2ab7 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Wed, 29 Jan 2025 17:09:29 +0100 Subject: [PATCH 02/10] Added phy_save() and phy_load() to save and load PHY. Signed-off-by: Pol Henarejos --- pico-keys-sdk | 2 +- src/hsm/cmd_extras.c | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/pico-keys-sdk b/pico-keys-sdk index a081a2b..44ca760 160000 --- a/pico-keys-sdk +++ b/pico-keys-sdk @@ -1 +1 @@ -Subproject commit a081a2bde641cc93c5c86cf59df548d498f67df8 +Subproject commit 44ca760e1c402dfa1b7eb2258e11c3e1e688f4b0 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 From 0f3bb8242cede0afb9b079753de10ca751f3ec9b Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Wed, 12 Feb 2025 13:25:07 +0100 Subject: [PATCH 03/10] Fix multiple interfaces in older PCSC versions. Fixes #74 again. Signed-off-by: Pol Henarejos --- pico-keys-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pico-keys-sdk b/pico-keys-sdk index 44ca760..d5c3856 160000 --- a/pico-keys-sdk +++ b/pico-keys-sdk @@ -1 +1 @@ -Subproject commit 44ca760e1c402dfa1b7eb2258e11c3e1e688f4b0 +Subproject commit d5c385675f9cf6211e1a527b6c01978c9b92d86e From 64d8dafa2bbb1e62840daec0556fe929138316da Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Wed, 12 Feb 2025 13:25:43 +0100 Subject: [PATCH 04/10] Fix multiple interfaces in older PCSC versions. Fixes #74 again. Signed-off-by: Pol Henarejos --- pico-keys-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pico-keys-sdk b/pico-keys-sdk index d5c3856..f06cb3a 160000 --- a/pico-keys-sdk +++ b/pico-keys-sdk @@ -1 +1 @@ -Subproject commit d5c385675f9cf6211e1a527b6c01978c9b92d86e +Subproject commit f06cb3a96dd244f7b8ef857a36e6ac114fa27f2c From e00e62026444585e6a6265e15cfb5a9b1aaebef5 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Wed, 19 Feb 2025 12:13:58 +0100 Subject: [PATCH 05/10] Upgrade to Pico SDK 2.1.1 autobuild. Signed-off-by: Pol Henarejos --- workflows/autobuild.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/autobuild.sh b/workflows/autobuild.sh index 8daf6ea..06d2a81 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 From ac8d05b9e972bd21b8c7c03ac3c3b6cb910444d5 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Wed, 19 Feb 2025 12:14:47 +0100 Subject: [PATCH 06/10] Add support for esp32s2 autobuild. Signed-off-by: Pol Henarejos --- pico-keys-sdk | 2 +- workflows/autobuild.sh | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pico-keys-sdk b/pico-keys-sdk index f06cb3a..94a842f 160000 --- a/pico-keys-sdk +++ b/pico-keys-sdk @@ -1 +1 @@ -Subproject commit f06cb3a96dd244f7b8ef857a36e6ac114fa27f2c +Subproject commit 94a842fa0423d2f2d0a36ea6db99be6e7380cfe5 diff --git a/workflows/autobuild.sh b/workflows/autobuild.sh index 06d2a81..f872cd9 100755 --- a/workflows/autobuild.sh +++ b/workflows/autobuild.sh @@ -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 From 1f3cecea8b46647424db875b9f3aabb40434ced3 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Wed, 19 Feb 2025 19:13:18 +0100 Subject: [PATCH 07/10] Use fastest clk for rp2040. Signed-off-by: Pol Henarejos --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) 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() From 1cbcfce23f1bc23483fe4597b75485813df523e4 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Wed, 19 Feb 2025 19:13:36 +0100 Subject: [PATCH 08/10] Use all available boards. Signed-off-by: Pol Henarejos --- build_pico_hsm.sh | 97 +++-------------------------------------------- 1 file changed, 6 insertions(+), 91 deletions(-) diff --git a/build_pico_hsm.sh b/build_pico_hsm.sh index 1d274a7..d06d189 100755 --- a/build_pico_hsm.sh +++ b/build_pico_hsm.sh @@ -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 From 5c2dce9e52ff3784a31f19cfdb233b5b1cebe212 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Wed, 19 Feb 2025 19:14:07 +0100 Subject: [PATCH 09/10] Take led_driver on build. Signed-off-by: Pol Henarejos --- pico-keys-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pico-keys-sdk b/pico-keys-sdk index 94a842f..6e6b524 160000 --- a/pico-keys-sdk +++ b/pico-keys-sdk @@ -1 +1 @@ -Subproject commit 94a842fa0423d2f2d0a36ea6db99be6e7380cfe5 +Subproject commit 6e6b524878e36649aeb547a9f705ff89457209ce From 92fe26c1e18434d46dddbc67f21394235d4f97ca Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Wed, 19 Feb 2025 19:18:02 +0100 Subject: [PATCH 10/10] Upgrade to v6.4 Signed-off-by: Pol Henarejos --- build_pico_hsm.sh | 2 +- src/hsm/version.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build_pico_hsm.sh b/build_pico_hsm.sh index d06d189..cc04b15 100755 --- a/build_pico_hsm.sh +++ b/build_pico_hsm.sh @@ -1,7 +1,7 @@ #!/bin/bash VERSION_MAJOR="5" -VERSION_MINOR="2" +VERSION_MINOR="4" SUFFIX="${VERSION_MAJOR}.${VERSION_MINOR}" #if ! [[ -z "${GITHUB_SHA}" ]]; then # SUFFIX="${SUFFIX}.${GITHUB_SHA}" 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)