From efc5ccdaf03444bb1890108da2644c7b85e8106b Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Mon, 3 Aug 2020 15:33:45 +0200 Subject: [PATCH] core: remove src1 --- ci/build.yml | 27 +++---- core/SConscript.firmware | 7 +- core/SConscript.unix | 7 +- core/embed/firmware/memory_1_min.ld | 67 ++++++++++++++++++ core/emu.sh | 8 +-- core/src1/main.py | 85 ----------------------- core/src1/storage/__init__.py | 1 - core/src1/storage/cache.py | 1 - core/src1/storage/common.py | 1 - core/src1/storage/device.py | 1 - core/src1/storage/resident_credentials.py | 1 - core/src1/trezor/__init__.py | 1 - core/src1/trezor/crypto/__init__.py | 1 - core/src1/trezor/crypto/base32.py | 1 - core/src1/trezor/crypto/base58.py | 1 - core/src1/trezor/crypto/bech32.py | 1 - core/src1/trezor/crypto/cashaddr.py | 1 - core/src1/trezor/crypto/curve.py | 1 - core/src1/trezor/crypto/der.py | 1 - core/src1/trezor/crypto/hashlib.py | 1 - core/src1/trezor/crypto/hmac.py | 1 - core/src1/trezor/crypto/rlp.py | 1 - core/src1/trezor/crypto/scripts.py | 1 - core/src1/trezor/crypto/slip39.py | 1 - core/src1/trezor/log.py | 1 - core/src1/trezor/messages/BackupType.py | 1 - core/src1/trezor/utils.py | 1 - core/src1/usb.py | 29 -------- 28 files changed, 84 insertions(+), 167 deletions(-) create mode 100644 core/embed/firmware/memory_1_min.ld delete mode 100644 core/src1/main.py delete mode 120000 core/src1/storage/__init__.py delete mode 120000 core/src1/storage/cache.py delete mode 120000 core/src1/storage/common.py delete mode 120000 core/src1/storage/device.py delete mode 120000 core/src1/storage/resident_credentials.py delete mode 120000 core/src1/trezor/__init__.py delete mode 120000 core/src1/trezor/crypto/__init__.py delete mode 120000 core/src1/trezor/crypto/base32.py delete mode 120000 core/src1/trezor/crypto/base58.py delete mode 120000 core/src1/trezor/crypto/bech32.py delete mode 120000 core/src1/trezor/crypto/cashaddr.py delete mode 120000 core/src1/trezor/crypto/curve.py delete mode 120000 core/src1/trezor/crypto/der.py delete mode 120000 core/src1/trezor/crypto/hashlib.py delete mode 120000 core/src1/trezor/crypto/hmac.py delete mode 120000 core/src1/trezor/crypto/rlp.py delete mode 120000 core/src1/trezor/crypto/scripts.py delete mode 120000 core/src1/trezor/crypto/slip39.py delete mode 120000 core/src1/trezor/log.py delete mode 120000 core/src1/trezor/messages/BackupType.py delete mode 120000 core/src1/trezor/utils.py delete mode 100644 core/src1/usb.py diff --git a/ci/build.yml b/ci/build.yml index 0fee26b95..655d2abf4 100644 --- a/ci/build.yml +++ b/ci/build.yml @@ -21,19 +21,6 @@ core fw regular build: - trezor-fw-regular-*.*.*-$CI_COMMIT_SHORT_SHA.bin expire_in: 1 week -core fw regular t1 build: - stage: build - variables: - TREZOR_MODEL: "1" - script: - - nix-shell --run "pipenv run make -C core build_firmware" - - cp core/build/firmware/firmware.bin trezor-fw-regular-t1-$CORE_VERSION-$CI_COMMIT_SHORT_SHA.bin - artifacts: - name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" - paths: - - trezor-fw-regular-t1-*.*.*-$CI_COMMIT_SHORT_SHA.bin - expire_in: 1 week - core fw regular debug build: stage: build script: @@ -60,6 +47,20 @@ core fw btconly build: - trezor-fw-btconly-*.*.*-$CI_COMMIT_SHORT_SHA.bin expire_in: 1 week +core fw btconly t1 build: + stage: build + variables: + BITCOIN_ONLY: "1" + TREZOR_MODEL: "1" + script: + - nix-shell --run "pipenv run make -C core build_firmware" + - cp core/build/firmware/firmware.bin trezor-fw-btconly-t1-$CORE_VERSION-$CI_COMMIT_SHORT_SHA.bin + artifacts: + name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" + paths: + - trezor-fw-btconly-t1-$CORE_VERSION-$CI_COMMIT_SHORT_SHA.bin + expire_in: 1 week + core unix regular build: stage: build script: diff --git a/core/SConscript.firmware b/core/SConscript.firmware index dfc7b5d5e..2f6605611 100644 --- a/core/SConscript.firmware +++ b/core/SConscript.firmware @@ -461,12 +461,7 @@ env.Ignore(hdr_moduledefs, qstr_generated) # if FROZEN: - if env.get('TREZOR_MODEL') == 'T': - SOURCE_PY_DIR = 'src/' - elif env.get('TREZOR_MODEL') == '1': - SOURCE_PY_DIR = 'src1/' - else: - raise ValueError('Unknown Trezor model') + SOURCE_PY_DIR = 'src/' SOURCE_PY = Glob(SOURCE_PY_DIR + '*.py') SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/*.py')) diff --git a/core/SConscript.unix b/core/SConscript.unix index 31ff20c54..4279406f7 100644 --- a/core/SConscript.unix +++ b/core/SConscript.unix @@ -426,12 +426,7 @@ env.Ignore(hdr_moduledefs, qstr_generated) # if FROZEN: - if env.get('TREZOR_MODEL') == 'T': - SOURCE_PY_DIR = 'src/' - elif env.get('TREZOR_MODEL') == '1': - SOURCE_PY_DIR = 'src1/' - else: - raise ValueError('Unknown Trezor model') + SOURCE_PY_DIR = 'src/' SOURCE_PY = Glob(SOURCE_PY_DIR + '*.py') SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/*.py')) diff --git a/core/embed/firmware/memory_1_min.ld b/core/embed/firmware/memory_1_min.ld new file mode 100644 index 000000000..34bbbfb8f --- /dev/null +++ b/core/embed/firmware/memory_1_min.ld @@ -0,0 +1,67 @@ +/* TREZORv1 firmware linker script */ + +ENTRY(reset_handler) + +MEMORY { + FLASH (rx) : ORIGIN = 0x08010000, LENGTH = 1024K - 64K + SRAM (wal) : ORIGIN = 0x20000000, LENGTH = 128K +} + +main_stack_base = ORIGIN(SRAM) + LENGTH(SRAM); /* 8-byte aligned full descending stack */ +_estack = main_stack_base; + +/* used by the startup code to populate variables used by the C code */ +data_lma = LOADADDR(.data); +data_vma = ADDR(.data); +data_size = SIZEOF(.data); + +/* used by the startup code to wipe memory */ +/* we have no CCMRAM, so erase the first word of SRAM as hack */ +ccmram_start = ORIGIN(SRAM); +ccmram_end = ORIGIN(SRAM) + 4; + +/* used by the startup code to wipe memory */ +sram_start = ORIGIN(SRAM); +sram_end = ORIGIN(SRAM) + LENGTH(SRAM); +_ram_start = sram_start; +_ram_end = sram_end; + +_codelen = SIZEOF(.flash) + SIZEOF(.data); +_flash_start = ORIGIN(FLASH); +_flash_end = ORIGIN(FLASH) + LENGTH(FLASH); +_heap_start = ADDR(.heap); +_heap_end = ADDR(.heap) + SIZEOF(.heap); + +SECTIONS { + .header : ALIGN(4) { + KEEP(*(.header)); + } >FLASH AT>FLASH + + .flash : ALIGN(512) { + KEEP(*(.vector_table)); + . = ALIGN(4); + *(.text*); + . = ALIGN(4); + *(.rodata*); + . = ALIGN(512); + } >FLASH AT>FLASH + + .data : ALIGN(4) { + *(.data*); + . = ALIGN(512); + } >SRAM AT>FLASH + + .bss : ALIGN(4) { + *(.bss*); + . = ALIGN(4); + } >SRAM + + .heap : ALIGN(4) { + . = 37K; /* this acts as a build time assertion that at least this much memory is available for heap use */ + . = ABSOLUTE(sram_end - 16K); /* this explicitly sets the end of the heap effectively giving the stack at most 16K */ + } >SRAM + + .stack : ALIGN(8) { + . = 4K; /* this acts as a build time assertion that at least this much memory is available for stack use */ + } >SRAM +} diff --git a/core/emu.sh b/core/emu.sh index 257be963a..c3bfe4e76 100755 --- a/core/emu.sh +++ b/core/emu.sh @@ -6,11 +6,5 @@ if [ -n "$1" ]; then exit 1 fi -TREZOR_MODEL="${TREZOR_MODEL:-T}" -if [ "$TREZOR_MODEL" = "T" ]; then - cd src -else - cd "src${TREZOR_MODEL}" -fi - +cd src ../build/unix/trezor-emu-core -O$PYOPT -X heapsize=20M diff --git a/core/src1/main.py b/core/src1/main.py deleted file mode 100644 index c1c29107e..000000000 --- a/core/src1/main.py +++ /dev/null @@ -1,85 +0,0 @@ -import usb - -usb.bus.open() - -import trezorio as io -from trezorui import Display -import storage -import storage.resident_credentials -from trezor import config - -config.init(False) -salt = None -config.unlock(1, salt) -storage.init_unlocked() -storage.cache.start_session() -print("is_initialized: ", storage.device.is_initialized()) -print("version: ", storage.device.is_version_stored()) -print("version: ", storage.device.get_version()) -print("needs backup: ", storage.device.needs_backup()) -storage.device.set_backed_up() -print("needs backup: ", storage.device.needs_backup()) -flags = storage.device.get_flags() -print("flags", flags) -storage.device.set_flags(0x200) -print("flags", storage.device.get_flags()) - -secret = "0"*32 -backup_type = 0 -storage.device.store_mnemonic_secret( - secret, - backup_type, - needs_backup=True, - no_backup=True, -) - - -storage.device.set_unfinished_backup(False) -print("unfinished backup: ", storage.device.unfinished_backup()) -storage.device.set_unfinished_backup(True) -print("unfinished backup: ", storage.device.unfinished_backup()) - -key54 = storage.common.get(0x1, 54, public=True) -print("App key 54:", key54) -storage.common.set(0x1, 54, b"asdZ", public=True) -key54 = storage.common.get(0x1, 54, public=True) -print("App key 54 (2):", key54) -key54 = storage.common.delete(0x1, 54, public=True) -key54 = storage.common.get(0x1, 54, public=True) -print("App key 54 (3):", key54) -delay = storage.device.get_autolock_delay_ms() -print("delay", delay) -storage.device.set_autolock_delay_ms(150000) -delay = storage.device.get_autolock_delay_ms() -print("delay", delay) - -cache_seed = storage.cache.get(storage.cache.APP_COMMON_SEED) -print("cache seed", cache_seed) -storage.cache.set(storage.cache.APP_COMMON_SEED, 1234) -cache_seed = storage.cache.get(storage.cache.APP_COMMON_SEED) -print("cache seed", cache_seed) - -res1 = storage.resident_credentials.get(1) -print("Res credential 1", res1) -res1 = storage.resident_credentials.set(1, b"0"*31 + b"F") -res1 = storage.resident_credentials.get(1) -print("Res credential 1", res1) - -i = 0 - -d = Display() -d.clear() -d.backlight(255) - -while True: - d.clear() - d.text(0, 20, "Hamburgefont %d" % i, Display.FONT_NORMAL, 0xFFFF, 0x0000) - d.text(0, 40, "Hamburgefont %d" % i, Display.FONT_BOLD, 0xFFFF, 0x0000) - d.text(0, 60, "Hamburgefont %d" % i, Display.FONT_MONO, 0xFFFF, 0x0000) - i += 1 - r = [0, 0] - if io.poll([io.TOUCH], r, 1000000): - print("TOUCH", r) - else: - print("NOTOUCH") - d.refresh() diff --git a/core/src1/storage/__init__.py b/core/src1/storage/__init__.py deleted file mode 120000 index 1ce3bd4ec..000000000 --- a/core/src1/storage/__init__.py +++ /dev/null @@ -1 +0,0 @@ -../../src/storage/__init__.py \ No newline at end of file diff --git a/core/src1/storage/cache.py b/core/src1/storage/cache.py deleted file mode 120000 index 021740847..000000000 --- a/core/src1/storage/cache.py +++ /dev/null @@ -1 +0,0 @@ -../../src/storage/cache.py \ No newline at end of file diff --git a/core/src1/storage/common.py b/core/src1/storage/common.py deleted file mode 120000 index 289d84dc6..000000000 --- a/core/src1/storage/common.py +++ /dev/null @@ -1 +0,0 @@ -../../src/storage/common.py \ No newline at end of file diff --git a/core/src1/storage/device.py b/core/src1/storage/device.py deleted file mode 120000 index 9cc4824c3..000000000 --- a/core/src1/storage/device.py +++ /dev/null @@ -1 +0,0 @@ -../../src/storage/device.py \ No newline at end of file diff --git a/core/src1/storage/resident_credentials.py b/core/src1/storage/resident_credentials.py deleted file mode 120000 index e5318eada..000000000 --- a/core/src1/storage/resident_credentials.py +++ /dev/null @@ -1 +0,0 @@ -../../src/storage/resident_credentials.py \ No newline at end of file diff --git a/core/src1/trezor/__init__.py b/core/src1/trezor/__init__.py deleted file mode 120000 index 90e031de6..000000000 --- a/core/src1/trezor/__init__.py +++ /dev/null @@ -1 +0,0 @@ -../../src/trezor/__init__.py \ No newline at end of file diff --git a/core/src1/trezor/crypto/__init__.py b/core/src1/trezor/crypto/__init__.py deleted file mode 120000 index 61eca6eee..000000000 --- a/core/src1/trezor/crypto/__init__.py +++ /dev/null @@ -1 +0,0 @@ -../../../src/trezor/crypto/__init__.py \ No newline at end of file diff --git a/core/src1/trezor/crypto/base32.py b/core/src1/trezor/crypto/base32.py deleted file mode 120000 index 322169fba..000000000 --- a/core/src1/trezor/crypto/base32.py +++ /dev/null @@ -1 +0,0 @@ -../../../src/trezor/crypto/base32.py \ No newline at end of file diff --git a/core/src1/trezor/crypto/base58.py b/core/src1/trezor/crypto/base58.py deleted file mode 120000 index dcd0a720c..000000000 --- a/core/src1/trezor/crypto/base58.py +++ /dev/null @@ -1 +0,0 @@ -../../../src/trezor/crypto/base58.py \ No newline at end of file diff --git a/core/src1/trezor/crypto/bech32.py b/core/src1/trezor/crypto/bech32.py deleted file mode 120000 index 8c8a00f16..000000000 --- a/core/src1/trezor/crypto/bech32.py +++ /dev/null @@ -1 +0,0 @@ -../../../src/trezor/crypto/bech32.py \ No newline at end of file diff --git a/core/src1/trezor/crypto/cashaddr.py b/core/src1/trezor/crypto/cashaddr.py deleted file mode 120000 index ec04cb0ca..000000000 --- a/core/src1/trezor/crypto/cashaddr.py +++ /dev/null @@ -1 +0,0 @@ -../../../src/trezor/crypto/cashaddr.py \ No newline at end of file diff --git a/core/src1/trezor/crypto/curve.py b/core/src1/trezor/crypto/curve.py deleted file mode 120000 index 62ab6753a..000000000 --- a/core/src1/trezor/crypto/curve.py +++ /dev/null @@ -1 +0,0 @@ -../../../src/trezor/crypto/curve.py \ No newline at end of file diff --git a/core/src1/trezor/crypto/der.py b/core/src1/trezor/crypto/der.py deleted file mode 120000 index 99b55d435..000000000 --- a/core/src1/trezor/crypto/der.py +++ /dev/null @@ -1 +0,0 @@ -../../../src/trezor/crypto/der.py \ No newline at end of file diff --git a/core/src1/trezor/crypto/hashlib.py b/core/src1/trezor/crypto/hashlib.py deleted file mode 120000 index f54a63fe0..000000000 --- a/core/src1/trezor/crypto/hashlib.py +++ /dev/null @@ -1 +0,0 @@ -../../../src/trezor/crypto/hashlib.py \ No newline at end of file diff --git a/core/src1/trezor/crypto/hmac.py b/core/src1/trezor/crypto/hmac.py deleted file mode 120000 index cb55daf57..000000000 --- a/core/src1/trezor/crypto/hmac.py +++ /dev/null @@ -1 +0,0 @@ -../../../src/trezor/crypto/hmac.py \ No newline at end of file diff --git a/core/src1/trezor/crypto/rlp.py b/core/src1/trezor/crypto/rlp.py deleted file mode 120000 index 497d73a4f..000000000 --- a/core/src1/trezor/crypto/rlp.py +++ /dev/null @@ -1 +0,0 @@ -../../../src/trezor/crypto/rlp.py \ No newline at end of file diff --git a/core/src1/trezor/crypto/scripts.py b/core/src1/trezor/crypto/scripts.py deleted file mode 120000 index 80c2a9aa0..000000000 --- a/core/src1/trezor/crypto/scripts.py +++ /dev/null @@ -1 +0,0 @@ -../../../src/trezor/crypto/scripts.py \ No newline at end of file diff --git a/core/src1/trezor/crypto/slip39.py b/core/src1/trezor/crypto/slip39.py deleted file mode 120000 index 8c093f0e0..000000000 --- a/core/src1/trezor/crypto/slip39.py +++ /dev/null @@ -1 +0,0 @@ -../../../src/trezor/crypto/slip39.py \ No newline at end of file diff --git a/core/src1/trezor/log.py b/core/src1/trezor/log.py deleted file mode 120000 index 1eefd588a..000000000 --- a/core/src1/trezor/log.py +++ /dev/null @@ -1 +0,0 @@ -../../src/trezor/log.py \ No newline at end of file diff --git a/core/src1/trezor/messages/BackupType.py b/core/src1/trezor/messages/BackupType.py deleted file mode 120000 index 05b024c97..000000000 --- a/core/src1/trezor/messages/BackupType.py +++ /dev/null @@ -1 +0,0 @@ -../../../src/trezor/messages/BackupType.py \ No newline at end of file diff --git a/core/src1/trezor/utils.py b/core/src1/trezor/utils.py deleted file mode 120000 index fb4fcb694..000000000 --- a/core/src1/trezor/utils.py +++ /dev/null @@ -1 +0,0 @@ -../../src/trezor/utils.py \ No newline at end of file diff --git a/core/src1/usb.py b/core/src1/usb.py deleted file mode 100644 index 2582c9b07..000000000 --- a/core/src1/usb.py +++ /dev/null @@ -1,29 +0,0 @@ -import trezorio as io - -iface_wire = io.WebUSB( - iface_num=0, - ep_in=0x81, - ep_out=0x01, -) - -iface_vcp = io.VCP( - iface_num=2, - data_iface_num=3, - ep_in=0x83, - ep_out=0x03, - ep_cmd=0x84, -) - -bus = io.USB( - vendor_id=0x1209, - product_id=0x53C1, - release_num=0x0100, - manufacturer="SatoshiLabs", - product="TREZOR", - interface="TREZOR Interface", - serial_number="1234", - usb21_landing=False, -) - -bus.add(iface_wire) -bus.add(iface_vcp)