1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-10-14 11:59:11 +00:00
Commit Graph

896 Commits

Author SHA1 Message Date
Jochen Hoenicke
be64864efc
Put persistent variables at end of stack
Two variables of the bootloader are persistent:
- __stack_chk_guard is used by interrupt handlers
- system_millis is used by timer interrupt and service routines

Note that currently __stack_chk_guard is shared between unprivileged
firmware and bootloader.

If we get more variables later it may make sense to make a section for
this.
2018-03-29 01:30:40 +02:00
Jochen Hoenicke
ed7a8bfa6c
Fixes for emulator 2018-03-29 01:30:40 +02:00
Jochen Hoenicke
68e02c94da
Reworked memory protection unit 2018-03-29 01:30:40 +02:00
Jochen Hoenicke
25e824aaa3
Supervisor Calls
Add Supervise interrupts to allow to do privileged operations like
flashing from application code.
2018-03-29 01:30:40 +02:00
Jochen Hoenicke
068f013bc6 Force size fields in storage to be 32 bit
Better storage compatibility between 64 bit and 32 bit builds.
2018-03-29 01:16:46 +02:00
Jochen Hoenicke
0127c1a374 Add function storage_getPinWait 2018-03-29 01:16:46 +02:00
Jochen Hoenicke
c09590b54d Cleaner flash handling using FLASH_PTR
Use `FLASH_PTR` macro to convert a flash address to a const pointer.
For real hardware it is just a cast, for emulator we subtract the
`FLASH_ORIGIN` and use it as index into the memory mapped flash file.

Make write access to flash with volatile pointers

Also use FLASH_PTR in DebugMemory* for now.  This allows for reading and
writing the flash in the emulator or just crash it by reading outside
the flash...
2018-03-29 01:16:46 +02:00
Jochen Hoenicke
1fcd512b7f Fix compilation problems 2018-03-29 01:16:46 +02:00
Jochen Hoenicke
39ea33523d Don't hog CPU on shutdown 2018-03-29 01:03:58 +02:00
Jochen Hoenicke
2587e49843 Disable fastflash.
It doesn't make sense any more and doesn't work with newer bootloaders.
2018-03-29 01:03:58 +02:00
Jochen Hoenicke
4ebbe8c274 Fix compilation problems 2018-03-29 01:03:58 +02:00
Jochen Hoenicke
a7158f39a5 fix out-of-bounds read (for debug_link)
Pinmatrix should always be null-terminated for debug-link.
The memset overwrote the terminating nul character.
2018-03-27 15:00:25 +02:00
Jochen Hoenicke
c4e1c5953e Fix shift overflow
Avoid undefined behavior by casting uint8_t to uint32_t before shifting
by 24 bits.
2018-03-27 15:00:25 +02:00
Yura Pakhuchiy
2f8ea9d5c7 Fix building firmware in docker
Fixes #320
2018-03-24 16:33:04 +01:00
slush0
2a12764198
Updated path to firmware 1.6.1 2018-03-22 20:26:44 +01:00
slush0
0220818b60
Fixed path to releases.json 2018-03-22 20:23:56 +01:00
Pavol Rusnak
ceced152a8
docs: update changelogs 2018-03-21 12:29:38 +01:00
Pavol Rusnak
95dd254094
util: use shutdown from trezor-core instead of system_halt 2018-03-21 12:18:36 +01:00
Pavol Rusnak
9588e8f273
update bootloader to 1.4.0 via firmware, run unsigned firmware in unprivileged mode 2018-03-20 15:44:20 +01:00
Jochen Hoenicke
d6f41dba9e
messages: fix size of msg_tiny and add static_assert 2018-03-20 15:42:53 +01:00
Pavol Rusnak
559a700fb0
fsm: add for button before Recovery device 2018-03-20 15:41:16 +01:00
Pavol Rusnak
5ae04c17c5
firmware: set version to 1.6.1 2018-03-19 15:18:54 +01:00
Pavol Rusnak
dbe444029a
bootloader: guard signatures_ok calls with firmware_present (or !brand_new_firmware) 2018-03-15 04:15:41 +01:00
Pavol Rusnak
816b4e0f72
bootloader: process WipeDevice 2018-03-15 03:15:08 +01:00
Pavol Rusnak
b933e292db
bootloader: fix signatures_ok usage in usb.c after refactoring 2018-03-15 03:03:05 +01:00
Pavol Rusnak
b20336e82d
Revert WinUSB feature
This reverts the following range of commits:
68168393b9ea61328f4bb43bc3059ab32c4be2e9..ab76828e16b552c82f468e5d89f1af0645258995

Revert "update usb descriptors"
This reverts commit ab76828e16.

Revert "trezorhal: reply with winusb guid just for the main interface (0)"
This reverts commit 6acfc5d1b3.

Revert "winusb: fix WINUSB_EXTRA_STRING"
This reverts commit 966d8cb4ce.

Revert "winusb: cleanup DeviceInterfaceGUIDs usage"
This reverts commit 56c5a46095.

Revert "make winusb_string_descriptor const"
This reverts commit 132cc4b474.

Revert "webusb: remove unused constants"
This reverts commit 38b4d507bc.

Revert "bootloader: remove debug"
This reverts commit 56d3cbe2e9.

Revert "Bootloader - Switch from HID to WebUSB"
This reverts commit a22abfe90b.

Revert "Switch from HID to WebUSB"
This reverts commit cb067bd14c.

Revert "Add WinUSB, WebUSB, USB2.1 to build"
This reverts commit 05e218bcb8.

Revert "Add WebUSB descriptors"
This reverts commit a062127cef.

Revert "Add WinUSB (WebUSB preparation)"
This reverts commit e6981e85cd.
2018-03-14 00:37:08 +01:00
Roman Zeyde
e444dadbb2 storage: next firmware version would be 1.7.0 2018-03-13 21:49:29 +01:00
Pavol Rusnak
5ad53e99c3
bootloader: bump version to 1.4.0 2018-03-13 15:42:31 +01:00
Pavol Rusnak
4af78f06a3
bootloader: refactor signatures_ok return value 2018-03-13 15:41:42 +01:00
Pavol Rusnak
e0b5526f27
bootloader: react to GetFeatures too 2018-03-07 14:16:24 +01:00
Pavol Rusnak
2a4a298d58
firmware: refactor fsm_getDerivedNode to include fingerprint 2018-03-07 14:04:37 +01:00
Jochen Hoenicke
d5e49556c5 Indicate own dest address in send dialog
If the destination address is controlled by the TREZOR (the wallet set
the address_n field), show the path to the address on the confirm output
dialog in the same format as the "show on Trezor" dialog indicates the
path.
2018-03-03 22:25:20 +01:00
Pavol Rusnak
e460c4fe17
session: rework get_state 2018-03-03 22:22:45 +01:00
Pavol Rusnak
7834eaba26
protect: passphrase is optional 2018-02-27 15:41:02 +01:00
Pavol Rusnak
7fa8ae136f
firmware: implement behaviour of state (still missing in PassphraseAck) 2018-02-24 17:26:57 +01:00
Pavol Rusnak
d7de064bde
bump version to 1.7.0; update firmware changelog 2018-02-21 15:40:56 +01:00
Pavol Rusnak
ab76828e16
update usb descriptors 2018-02-20 19:13:39 +01:00
Pavol Rusnak
6acfc5d1b3
trezorhal: reply with winusb guid just for the main interface (0) 2018-02-20 19:13:39 +01:00
Pavol Rusnak
966d8cb4ce
winusb: fix WINUSB_EXTRA_STRING 2018-02-20 19:13:39 +01:00
Pavol Rusnak
56c5a46095
winusb: cleanup DeviceInterfaceGUIDs usage 2018-02-20 19:13:39 +01:00
Pavol Rusnak
132cc4b474
make winusb_string_descriptor const 2018-02-20 19:13:39 +01:00
Pavol Rusnak
38b4d507bc
webusb: remove unused constants 2018-02-20 19:13:39 +01:00
Pavol Rusnak
56d3cbe2e9
bootloader: remove debug 2018-02-20 19:13:39 +01:00
Karel Bilek
a22abfe90b
Bootloader - Switch from HID to WebUSB 2018-02-20 19:13:39 +01:00
Karel Bilek
cb067bd14c
Switch from HID to WebUSB
Also renaming varions functions from hid_ to webusb_ to actually reflect what they are doing
2018-02-20 19:13:38 +01:00
Karel Bilek
05e218bcb8
Add WinUSB, WebUSB, USB2.1 to build 2018-02-20 19:13:38 +01:00
Karel Bilek
a062127cef
Add WebUSB descriptors
Most code taken from https://github.com/devanlai/dap42 and https://github.com/devanlai/dapboot
2018-02-20 19:13:38 +01:00
Karel Bilek
e6981e85cd
Add WinUSB (WebUSB preparation)
Some code taken from https://github.com/devanlai/dapboot

Some code written according to the WCID documentation - https://github.com/pbatard/libwdi/wiki/WCID-Devices
2018-02-20 19:13:38 +01:00
Karel Bilek
68168393b9
Add USB 2.1 (WebUSB preparation)
Most code taken from https://github.com/devanlai/dap42 and https://github.com/devanlai/dapboot
2018-02-20 19:13:38 +01:00
Jochen Hoenicke
8806accb2e
Distinguish 1 and l better. 2018-02-20 18:23:14 +01:00