Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2015 commits
Select commit Hold shift + click to select a range
abac206
[sw,keymgr] trap if keymgr is idle after starting op
sasdf Sep 3, 2025
3a448b4
[sw,e2e] Add fault test for OWNER_SW returning to ROM_EXT.
sasdf Sep 3, 2025
a66d91f
[rescue,spidfu,test] Add SPI DFU state transition test
anthonychen1251 Sep 25, 2025
e0fc14b
[rescue,spidfu,test] Add test for invalid SPI DFU requests
anthonychen1251 Sep 25, 2025
a10a61d
[rescue,spidfu,test] Add test for invalid SPI flash transactions
anthonychen1251 Sep 25, 2025
0c3df0d
[rescue,test,usbdfu] Add test for oversized download chunk
anthonychen1251 Sep 25, 2025
13f776a
[rom_ext] bump immutable section version to 0.4
anthonychen1251 Aug 8, 2025
aff7333
[crypto] Pass the blinded key to KMAC-KDF by reference.
jadephilipoom May 19, 2025
97c1de5
[crypto] Pass the blinded key to KDF-CTR by reference.
jadephilipoom May 19, 2025
3def4ea
[crypto] Pass the blinded key to HKDF by reference.
jadephilipoom May 19, 2025
2015b26
[crypto] Pass the blinded key to the export function by reference.
jadephilipoom May 19, 2025
870b869
[crypto] Re-mask symmetric keys before use.
jadephilipoom May 19, 2025
02147a6
[pentest/cryptotest] Correctly use otcrypto_export_blinded_key()
nasahlpa Sep 27, 2025
304e6ca
[sw,cov] Cleanup old coverage utils
sasdf Sep 12, 2025
b1db997
[sw,cov] Cleanup old coverage runtime
sasdf Sep 11, 2025
f319bd6
[bazel,cov] Add transition to disable coverage collection
sasdf Sep 11, 2025
65ae885
[bazel,cov] Strip initial coverage values sections
sasdf Sep 11, 2025
7d450f8
[sw,cov] Add on-device OTTF coverage runtime
sasdf Sep 11, 2025
ca1dee4
[sw,cov] Use new coverage runtime in OTTF tests
sasdf Sep 11, 2025
3617cba
[sw,cov] Shrink heap size under coverage mode
sasdf Sep 11, 2025
3e35c44
[sw,cov] Ignore LLVM coverage sections in extract_sw_logs tool
sasdf Sep 11, 2025
550cb50
[sw,cov] Save coverage report in opentitantool UartConsole
sasdf Sep 11, 2025
c862ac3
[bazel,cov] Add bazel coverage integration to opentitan_test
sasdf Sep 11, 2025
a8c27cf
[crypto] Check key version in integrity check.
jadephilipoom May 23, 2025
3a43edf
[crypto] Test fixups.
jadephilipoom May 26, 2025
2f47168
[test] Log pinmux attr config errors
jwnrt Aug 20, 2025
3e35137
[test] Add OpenDrain testing to `gpio_pinmux_test`
jwnrt Aug 20, 2025
563d0ec
[test] Enable multifunction pins in GPIO test
jwnrt Aug 22, 2025
16a5fdc
[ott] Add config field for GPIOs
jwnrt Aug 27, 2025
b5e3f1d
[test] Use config for GPIO test
jwnrt Aug 27, 2025
b30b440
[test] Add pass/fail silicon param for ottf alert catch test
jwnrt Sep 30, 2025
e1f0be5
[test] Improve synchronisation of SPI flash smoketest
jwnrt Sep 24, 2025
082d937
[test] Improve error message in SPI flash smoketest
jwnrt Sep 24, 2025
89bc7ec
[bazel] Update QEMU release
jwnrt Sep 24, 2025
dbfdc4d
[otlib] Add SPI transport for QEMU
jwnrt Sep 19, 2025
8a44100
[test] Enable SPI flash smoketest for QEMU
jwnrt Sep 24, 2025
be44f67
[bazel,qemu] Fix multiple trace patterns in QEMU tests
AlexJones0 Oct 2, 2025
cdf37c0
[bazel,qemu] Get ROM from parameters instead of firmware
AlexJones0 Oct 2, 2025
f051b06
[bazel,qemu] Add support for assembled test images
AlexJones0 Oct 2, 2025
9db123b
[bazel,qemu] Add `sim_qemu_rom_ext` exec env
AlexJones0 Oct 2, 2025
ca77eb3
[qemu,bazel] Add QEMU envs to some ROM E2E address translation tests
AlexJones0 Oct 2, 2025
9989803
[dv] Add dedicated python script for building sim sw collateral
hcallahan-lowrisc Sep 13, 2025
6437f96
[dv] Cleanup prints in sim.mk
hcallahan-lowrisc Sep 13, 2025
85b1517
[dv,chip_sim_cfg] Split out some run_opts from 'sw_test_mode_common'
hcallahan-lowrisc Sep 13, 2025
e41b0cd
[bazel,qemu] Bump QEMU to latest `2025-10-07` release
AlexJones0 Oct 7, 2025
aece992
[bazel,qemu] Disable keymgr flash seed validity check
AlexJones0 Oct 4, 2025
9ada89e
[signing] Remove the key_{ecdsa, sphincsplus} rules
esnguyen Sep 18, 2025
03f4249
[pentest] Add fpga_cw340_rom_ext targets for pentest
siemen11 Oct 7, 2025
e0f3996
[sw][aes] Remove unneeded includes from aes.c
luismarques Jul 30, 2025
d3dcf4b
[coremark] Remove unused `cvt.c` from coremark
luismarques Jul 31, 2025
2e790e8
[sw][usb_logging] Remove unneeded `ctype.h` include
luismarques Jul 30, 2025
91e1aa8
[ownership] Rename `RESCUE_GPIO` to `RESCUE_MISC_GPIO`
cfrantz Oct 6, 2025
f9040de
[ownership, rescue] Allow rescue to be triggered by watchdog
cfrantz Oct 6, 2025
c9e232b
[opentitanlib] Update the rescue configuration struct
cfrantz Oct 6, 2025
03a7f4d
[ownership] Update documentation
cfrantz Oct 7, 2025
f296f1e
[devbundle] Include verilator, test_rom and OTP images
cfrantz Aug 22, 2025
0c94d8e
[bazel,qemu] Add UART break toggle QEMU properties
AlexJones0 Oct 3, 2025
876a189
[otlib,qemu] Quit QEMU on dropping monitor instead of transport
AlexJones0 Oct 3, 2025
f9580dd
[otlib,qemu] Add optional arguments when sending QEMU Monitor cmd
AlexJones0 Oct 3, 2025
943fd02
[otlib,qemu] Add monitor command for sending a UART break
AlexJones0 Oct 3, 2025
a0f260e
[otlib,qemu] Wrap QEMU UART implementation to send breaks via monitor
AlexJones0 Oct 3, 2025
33d17ca
[otlib,qemu] Add RESET strapping definition for QEMU devices
AlexJones0 Oct 3, 2025
474d6ca
[bazel,qemu] Add QEMU envs for E2E boot service tests
AlexJones0 Oct 2, 2025
dea8298
[sw,cov] Enable hmac HW workaround under coverage mode
sasdf Sep 11, 2025
8379464
[crypto] Randomize memory before generating symmetric keys.
jadephilipoom May 23, 2025
67303fc
[crypto] Randomize buffer before constructing a keyblob.
jadephilipoom May 23, 2025
518442c
[crypto] Use the `unmask` function in HKDF.
jadephilipoom May 23, 2025
97060bc
[crypto] Randomize buffers in key transport functions.
jadephilipoom May 23, 2025
070844c
[crypto] Randomize destination buffers for ECC keys and shared secrets.
jadephilipoom May 23, 2025
2e33afe
[crypto] Randomize destination buffer for KMAC-KDF.
jadephilipoom May 23, 2025
ab59614
[crypto] Randomize plaintext and key buffers in RSA code.
jadephilipoom May 23, 2025
35bdd42
[crypto] Improve side-channel defenses in DRBG.
jadephilipoom May 23, 2025
6d977f8
[crypto] Randomize sensitive buffers in AES.
jadephilipoom May 23, 2025
0785a54
[crypto] Randomize sensitive buffers in drivers.
jadephilipoom May 23, 2025
e91203d
[crypto] Randomize shares in separate loops in KMAC driver.
jadephilipoom May 28, 2025
f81f76d
[crypto] Harden RSA padding selection against FI
nasahlpa Jul 10, 2025
e7fdfbd
[crypto] Fixed aes_gcm uninitialized output_len pointer
lucasbaizer Jul 21, 2025
cdef93f
[crypto] Add OTBN DMEM wipes to RSA code
nasahlpa Jul 17, 2025
f01ae66
[crypto] Wipe DMEM also in error cases
nasahlpa Jul 17, 2025
8965a63
[crypto] Randomize HMAC key write order
nasahlpa Aug 26, 2025
d73c355
[crypto] Read back HMAC config
nasahlpa Aug 26, 2025
2d7d0bc
[crypto] Check if AES key length was set
nasahlpa Aug 25, 2025
53de2b7
[crypto] Read back the AES config as a FI countermeasure
nasahlpa Aug 25, 2025
4fbc13d
[crypto] Check AES key integrity after writing to the core
nasahlpa Aug 27, 2025
a48589a
[crypto] Check aes_key_t checksum for AES-GCM
nasahlpa Aug 27, 2025
753047e
[crypto] Check aes_key_t checksum for AES-KWP
nasahlpa Aug 28, 2025
1297f29
[crypto] Harden AES & HMAC loops against FI
nasahlpa Aug 26, 2025
983059d
[crypto] Randomize key write in AES driver
nasahlpa Aug 14, 2025
6d34dc2
[crypto] Randomize key read in keymgr driver
nasahlpa Aug 14, 2025
db0667c
[crypto] Protect HMAC against FI
nasahlpa Jul 8, 2025
4907be0
[crypto] Protect AES against FI
nasahlpa Jul 10, 2025
fe587ab
[crypto] Check ECC key integrity after writing to OTBN
nasahlpa Sep 8, 2025
6ab26f0
[crypto] Check return value of HMAC functions
nasahlpa Sep 5, 2025
7e88435
[crypto] Return `status_t` for hardened_* functions
nasahlpa Sep 4, 2025
5d97843
[crypto] Use `HARDENED_TRY()` for `hardenend*` functions
nasahlpa Sep 5, 2025
56978a7
[crypto] Fix includes
nasahlpa Oct 1, 2025
ce86d4d
[crypto] Improve switch case hardening in AES
nasahlpa Sep 9, 2025
4c59459
[crypto] Add Verify-after-Sign for ECDSA as a FI countermeasure
nasahlpa Jul 10, 2025
373a9c7
[cryptotest] Switch ecdsa_*_sign to ecdsa_*sign_verify
nasahlpa Jul 10, 2025
209ef71
[pentest] Switch ecdsa_*_sign to ecdsa_*sign_verify
nasahlpa Jul 11, 2025
3eb37b4
[pentest] Add KeyGen to P256/P384 Sign
nasahlpa Jul 11, 2025
d12189e
[crypto] Add new P256/P384 API calls to the API documentation
nasahlpa Aug 14, 2025
7e3676e
[crypto] Harden AES-GCM against FI
nasahlpa Jul 15, 2025
f3e1e5a
[cryptotest] Set kOtcryptoKeySecurityLevelHigh for AES-GCM
nasahlpa Jul 15, 2025
8fbd339
[pentest] se kOtcryptoKeySecurityLevelHigh for AES-GCM
nasahlpa Jul 15, 2025
60da3f6
[crypto] Check HMAC key integrity
nasahlpa Sep 1, 2025
4d37d23
[crypto] AES-GCM SCA hardening
nasahlpa Aug 20, 2025
f936627
[crypto] Rename hardened_xor
nasahlpa Aug 29, 2025
1d1a83f
[crypto] Add improved hardened_xor function
nasahlpa Aug 29, 2025
66ce588
[crypto] Avoid overriding shares in AES-GCM
nasahlpa Aug 29, 2025
1f87735
[crypto] Add functions to disable/enable iCache
nasahlpa Jul 22, 2025
2365c00
[crypto] Disable iCache for AES-GCM
nasahlpa Jul 22, 2025
ae938cc
[crypto] Use hardened_xor in HMAC
nasahlpa Sep 19, 2025
f51f449
[crypto] Remove decoys in hardened_* functions
nasahlpa Aug 22, 2025
db6f08c
[crypto] eg100 specific fixes
nasahlpa Oct 2, 2025
19739c9
[sw,cov] Lint fix and clearer comments for coverage printer
sasdf Oct 1, 2025
26d87fd
[sw,cov] Mark private coverage printer functions as static
sasdf Oct 1, 2025
74a5fd9
[sw,cov] Set LSB in `coverage_status` to indicate validity
sasdf Oct 1, 2025
f397c37
[sw,cov] Cleanup unused coverage_test
sasdf Oct 1, 2025
38d79c4
[sw,cov] Use runfiles crate for runfiles lookup
sasdf Oct 1, 2025
7890311
[cov] Enhance collect_cc_coverage tool for manual conversion
sasdf Oct 8, 2025
de0f37e
[sw,cov] Move ROM_EXT assembly source to a separate `cc_library`
sasdf Oct 9, 2025
dc054dd
[rom_ext] Deref symlinks in imm_section release tarball
sasdf Oct 9, 2025
5e8de01
[sw,cov] Disable segment allocation for coverage bss sections
sasdf Oct 14, 2025
3283681
[rescue,test] add more e2e rescue tests
anthonychen1251 Sep 30, 2025
ef5e442
[rules,qemu] Make the qemu test runner accepts qemu arguments
pamaury Oct 10, 2025
a182de2
[crypto,sw] Add is on curve checks to scalar_mult_int
h-filali Jul 2, 2025
7c34b13
[cryptolib,sw] Add instruction count checks to ECC functions
h-filali Jul 7, 2025
252e392
[cryptolib,sw] Add instruction count checks to ECC functions
h-filali Jul 7, 2025
60bc45d
[crypto,sw] Add is on curve check to base point mult
h-filali Jul 8, 2025
18cb148
[util,sw] Add argument for consttime test to ignore subroutines
h-filali Jul 28, 2025
d47c054
[sw/crypto] Add second RSA padding check as a FI countermeasure
h-filali Jul 11, 2025
1507c5c
[cryptolib, sw] Add new p256 projective is on curve function
h-filali Jul 11, 2025
4db0fbf
[cryptolib, sw] Add is on curve check to ECDH shared keygen
h-filali Jul 11, 2025
616eef8
[sw,cryptolib] Update instruction count FI check
h-filali Aug 15, 2025
b890184
[crypto,sw] Add the affine is on curve check to ECDSA base point mult
h-filali Jul 23, 2025
09753f4
[cryptolib, sw] Add new p384 projective is on curve function
h-filali Jul 21, 2025
7ca1415
[crypto,sw] Add p384 projective is on curve check to ECDH apps
h-filali Jul 23, 2025
7120436
[sw,cryptolib] Update execution time checks for OTBN
h-filali Aug 15, 2025
20bac33
[sw,crypto] Fix instruction count FI check
h-filali Aug 11, 2025
07299de
[crypto] P256 scalar multiplication code-review for SCA hardening
Jul 30, 2025
1566087
[sw,crypto] Scalar blinding of ECC keys
h-filali Aug 13, 2025
fb5623d
[sw,cryptolib] Adjust instruction counts for p256
h-filali Aug 25, 2025
9c187a9
[sw,cryptolib] Add mask refreshing for ECC p256 sign
h-filali Aug 18, 2025
4815c89
[sw,cryptolib] Update instruction count checks for p256
h-filali Aug 29, 2025
d2cd3e6
[sw,cryptolib] Add new internal point multiplication with blinding
h-filali Aug 25, 2025
3670dae
[sw,cryptolib] Add new internal mult test
h-filali Aug 25, 2025
e59d59a
[sw,cryptolib] Use the blinded version for point multiplications
h-filali Aug 25, 2025
df18ef3
[sw,cryptolib] Move variables into a single memory file
h-filali Aug 29, 2025
9c5f283
[sw,cryptolib] Move tests to hjson framework
h-filali Aug 29, 2025
79f9b46
[sw,crypto] Update instruction count checks
h-filali Sep 2, 2025
eafa1a9
[sw,cryptolib] P384 add remasking of secret key scalar for sign
h-filali Sep 2, 2025
ccd0a76
[sw,cryptolib] Adapt instruction count checks
h-filali Sep 11, 2025
0645e1f
[sw,crypto] Follow OTBN style guide rules 6 and 7 related to bn.sel
h-filali Sep 9, 2025
866015c
[sw,crypto] Follow OTBN style guide rule 8 related to bn.mulqacc
h-filali Sep 9, 2025
a919482
[sw,cryptolib] Follow OTBN style guide rule 5 and 9 related to bn.add…
h-filali Sep 11, 2025
b6f898c
[sw,cryptolib] Follow OTBN style guide rules 1-4 related to shares
h-filali Sep 12, 2025
50b6cd9
[sw,cryptolib] Update p384 instr count checks
h-filali Oct 2, 2025
6a68a86
[sw,cryptolib] Pad secret scalar with randomness instead of zeros
h-filali Sep 12, 2025
806d853
[sw,cryptolib] Update instruction count checks
h-filali Oct 3, 2025
0003065
[bazel,cov] Add slots variants for coverage build
sasdf Sep 25, 2025
317d02e
[e2e,cov] Add on-device UART coverage runtime
sasdf Sep 25, 2025
dccfede
[e2e,cov] Add coverage sections in ROM_EXT linker script
sasdf Sep 25, 2025
a225484
[e2e,cov] Initialize coverage profile during ROM_EXT startup
sasdf Sep 25, 2025
ae2d4d5
[e2e,cov] Report ROM_EXT coverage
sasdf Sep 25, 2025
7ebc01c
[e2e,cov] Enable code coverage for ROM_EXT
sasdf Sep 25, 2025
6802524
[rescue,test] Enhance Rescue GetBootLog test
anthonychen1251 Sep 29, 2025
7116d54
[rescue,test] Enhance Rescue GetDeviceId test
anthonychen1251 Oct 7, 2025
5a876f9
[sw,cov] Fix rom_ext_start deps
sasdf Oct 15, 2025
cf9ba3f
[lint] Apply rustfmt lint fixes
sasdf Oct 15, 2025
87154cc
[rules,qemu] Fix debug log options
pamaury Oct 15, 2025
deb6598
[bazel] Use absolute path in EARLGREY_SLOTS definition
anthonychen1251 Oct 16, 2025
0dfcda1
Fix OT_DISABLE_HARDENING -Werror,-Wundef error
korran Oct 2, 2025
3af5763
[bazel] Remove unused `qemu_pass` script
jwnrt Oct 16, 2025
67ec0fd
[sw,opentitanlib] QEMU I2C transport implementation
ziuziakowska Oct 9, 2025
a738562
[sw,test] create QEMU I2C target mode test and harness using transport
ziuziakowska Oct 7, 2025
74490a7
[bazel,qemu] Bump QEMU version to `2025-10-16`
ziuziakowska Oct 16, 2025
a6e77d2
SpiFlash: Make skip-ff pages optimization optional.
korran Oct 16, 2025
fa2a929
Fix compiler warning (unused function otbn_write)
korran Oct 16, 2025
334f123
[rescue] Update rescue GPIO param to fix spidfu rescue test
anthonychen1251 Oct 16, 2025
6ee278b
[otlib] Use transport reset function in legacy bootstrap
jwnrt Oct 17, 2025
f3218e9
[otlib] Split reset function in two
jwnrt Oct 17, 2025
177e5eb
[otlib] Allow reset delay to be configured in files
jwnrt Oct 17, 2025
8d1c28f
[otlib] Deprecate CLI flag for setting reset delay
jwnrt Oct 17, 2025
2d4729a
[bazel,qemu] Add QEMU Envs to ROM_EXT E2E verified boot tests
AlexJones0 Oct 3, 2025
0f48d24
[bazel,qemu] Add QEMU envs for ROM E2E sigverify_always tests
AlexJones0 Oct 3, 2025
36a60e4
[bazel,qemu] Add QEMU envs to ROM E2E sigverify_key_type tests
AlexJones0 Oct 3, 2025
4f76081
[bazel,qemu] Add QEMU env to ROM E2E sigverify_spx tests
AlexJones0 Oct 17, 2025
98ff296
[bazel,qemu] Add QEMU env to ROM E2E sigverify_key_validity tests
AlexJones0 Oct 17, 2025
e7d7f95
[bazel,qemu] Add QEMU envs to ROM E2E sigverify_usage_constraints tests
AlexJones0 Oct 3, 2025
69732da
[otlib] Add GPIO interface to QEMU transport
jwnrt Sep 17, 2025
9946785
[test] Enable bootstrapping for QEMU exec envs
jwnrt Oct 2, 2025
a1e7d0c
[bazel] update `firmware` param for non-assembled images
jwnrt Oct 8, 2025
d857745
[bazel,qemu] Handle non-assembled tests that specify custom firmware.
AlexJones0 Oct 17, 2025
b4433ca
[bazel] Make bootstrapping optional for QEMU
jwnrt Oct 8, 2025
b27fcd1
[otlib] Add delay to QEMU monitor creation
jwnrt Oct 13, 2025
a3af426
Use clmul for CRC32.
korran Oct 17, 2025
cc77470
[qemu,bazel] Add QEMU env to `dice_cwt_functest`
AlexJones0 Oct 15, 2025
3d92ee3
[bazel,qemu] Add QEMU envs to attestation `print_certs` test
AlexJones0 Oct 15, 2025
716ca70
[bazel,qemu] Add QEMU envs for E2E dice chain tests
AlexJones0 Oct 2, 2025
2bf2e75
[otlib] Make Rescue 1.0 entry time configurable per-test
AlexJones0 Oct 3, 2025
d2c06ac
[bazel,qemu] Add QEMU envs for ROM_EXT E2E Ownership tests
AlexJones0 Oct 4, 2025
d899e0b
[bazel,test] Rename `fpga_owner_upgrade_test` to not specify FPGA
AlexJones0 Oct 20, 2025
fe082d9
[otlib] Update doc comment for QEMU chardevs
jwnrt Oct 20, 2025
fb08aea
[otlib] Tweak QEMU I2C interface registration to be top agnostic
jwnrt Oct 20, 2025
0547ea4
[otlib] Register QEMU I2C capability
jwnrt Oct 20, 2025
9edaf1f
[otlib] Add support for other QEMU UARTs
jwnrt Oct 20, 2025
ff05f6d
toolchains_llvm: patch to accept cros_sdk as a valid distro
vbendeb-lang Oct 8, 2025
e6124d2
[crypto/rsa_keygen] Refactor `run_rsa_keygen` DMEM layout
andrea-caforio Aug 14, 2025
8de655d
[crypto/rsa_modexp] Refactor `run_rsa_modexp` DMEM layout
andrea-caforio Aug 16, 2025
5633812
[bazel/otbn] Assemble source files into a single .o file
andrea-caforio Sep 11, 2025
21f3ea3
[crypto/rsa] Remove obsolete/superfluous RSA-3072 implementation
andrea-caforio Sep 18, 2025
bb222a3
[crypto/rsa] Fix public-key exponent to F4
andrea-caforio Sep 18, 2025
b4664d5
[crypto/rsa] Split secret-key exponent into two shares
andrea-caforio Sep 20, 2025
7df84ce
[crypto/rsa] Move Montgomery constant from DMEM to register
andrea-caforio Sep 21, 2025
6d6773c
[crypto/rsa] Use `run_rsa_modexp` in testutils/pentesting
andrea-caforio Sep 24, 2025
a72db34
[crypto/rsa] Shared RSA key in testutils and penetrationtests
andrea-caforio Sep 26, 2025
b8da881
[crypto/rsa] Hardened Montgomery ladder exponentiation
andrea-caforio Sep 26, 2025
8256908
[crypto/rsa] Hardened RSA key generation
andrea-caforio Oct 8, 2025
4e0ccfc
[opentitanlib,qemu] Fix UART CharDev ID
AlexJones0 Oct 22, 2025
31cb986
[opentitanlib] Add initial support for QEMU USB sense enable pin
pamaury Oct 15, 2025
f25330b
[tests] Add support for QEMU for certain USB tests
pamaury Oct 15, 2025
4b9a77f
[rules] Mark chip_info as always-link and symbol as used
pamaury Oct 3, 2025
90e809e
[silicon_creator] Rename chip_info to build_info
pamaury Oct 3, 2025
148eca8
[sw] Fix chip_info location in test_rom
pamaury Oct 22, 2025
1a1b939
[rom,e2e] Add a test for the chip_info
pamaury Oct 3, 2025
ad9fdba
Fix OTP descrambling test (otp_ctrl_descrambling_test)
luismarques Oct 21, 2025
53f8d5a
[crypto] Cryptolib versioning
nasahlpa Oct 23, 2025
3d90dc9
[kmsp11] Update libkmsp11 to v1.8
Oct 20, 2025
0ec7367
[dv,flash_ctrl] add basic rw test
gautschimi Oct 21, 2025
1c53a3d
[flash_ctrl,dv] byte/word scrambling addr fix
gautschimi Oct 23, 2025
0220a50
[test] Ignore bus integrity alert for scrambled SRAM test
jwnrt Oct 24, 2025
db5731c
[otlib] Add support for QEMU unix sockets
jwnrt Oct 1, 2025
46d7056
[otlib] Search for JTAG socket in QEMU chardevs
jwnrt Oct 1, 2025
e2c9a44
[bazel] Enable JTAG socket chardev for QEMU
jwnrt Oct 1, 2025
9c3b87e
[bazel] Process `needs_jtag` for QEMU execution environment
jwnrt Oct 21, 2025
aa2f2bd
[otlib] Add empty `PINMUX_TAP_RISCV` strap for QEMU
jwnrt Oct 21, 2025
66d3cfb
[bazel,qemu] Add SiVal QEMU execution environment.
AlexJones0 Oct 28, 2025
cf5a464
[test] Enable `rv_dm_csr_rw_rma` test for QEMU
jwnrt Oct 23, 2025
ea20827
[rom_ext] Run boot_svc after a wakeup according to owner config
cfrantz Oct 28, 2025
2157f68
[rules,qemu] Always stop QEMU after the test
pamaury Oct 22, 2025
e4a102c
[qemu] Enable the tpm_tx_rx test to run with qemu
engdoreis Oct 22, 2025
fa14a3f
[docs,qemu] Move QEMU setup documentation
AlexJones0 Oct 21, 2025
cf06f43
[docs,qemu] Update test parameters in QEMU docs
AlexJones0 Oct 21, 2025
a87b003
[docs,qemu] Add documentation for command-line QEMU args
AlexJones0 Oct 21, 2025
d051b60
[docs,qemu] Document QEMU logging
AlexJones0 Oct 23, 2025
8e53992
[docs,qemu] Add introductory QEMU documentation
AlexJones0 Oct 23, 2025
3e5a19b
[perso,rom_ext] bump version numbers
timothytrippel Oct 29, 2025
edb11ee
[qemu,bazel] Fix JTAG disconnection quitting QEMU
AlexJones0 Oct 30, 2025
d821cfe
Updated flash_ctrl test to check for unlocked regions
rprakas-gsc Oct 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
1 change: 1 addition & 0 deletions .bazelignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ build
hw/ip/prim/util/vendor/google_verible_verilog_syntax_py
sw/vendor/google_googletest
util/lowrisc_misc-linters
bazel-airgapped
79 changes: 36 additions & 43 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,19 @@
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

# Enable bzlmod with `MODULE.bazel` and disable the `WORKSPACE` system.
common --enable_bzlmod
common --enable_workspace=no

# https://docs.opentitan.org/doc/rm/c_cpp_coding_style/#cxx-version specifies
build --action_env=BAZEL_CXXOPTS="-std=gnu++14"
build --cxxopt='-std=gnu++14'
build --action_env=BAZEL_CXXOPTS="-std=gnu++17"
build --cxxopt='-std=gnu++17'
build --conlyopt='-std=gnu11'

# Never strip debugging information so that we can produce annotated
# disassemblies when compilation mode is fastbuild.
build --strip='never'

# Override default enablement of flags from @crt//common to control C compiler
# warnings.
build --features=-pedantic_warnings

# Enable toolchain hardening features.
# `guards` adds `unimp` guard instructions after unconditional jumps.
build --features=guards

# Use --config=disable_hardening to disable hardening to measure the
# impact of the hardened sequences on code size.
build:disable_hardening --features=-guards --copt=-DOT_DISABLE_HARDENING=1
Expand All @@ -32,7 +28,7 @@ build --workspace_status_command=util/get_workspace_status.sh

# This enables convenient building for opentitan targets with the argument
# --config=riscv32
build:riscv32 --platforms=@crt//platforms/riscv32:opentitan
build:riscv32 --platforms=@//toolchain:opentitan_platform

# These options are required to build `cc_fuzz_test` targets. Enable with
# --config=asan-libfuzzer
Expand All @@ -42,37 +38,27 @@ build:asan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine=@rules_fuzzing//fuzzing
build:asan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine_instrumentation=libfuzzer
build:asan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine_sanitizer=asan

# Shared configuration for clang's source-based coverage instrumentation.
# Bazel seems to support this only partially, thus we have to perform some
# additional processing. See
# https://github.com/bazelbuild/bazel/commit/21b5eb627d78c09d47c4de957e9e6b56a9ae6fad
# and `util/coverage/coverage_off_target.py`.
build:ot_coverage --repo_env='CC=clang'
build:ot_coverage --repo_env='BAZEL_USE_LLVM_NATIVE_COVERAGE=1'
build:ot_coverage --java_runtime_version='remotejdk_11'
# Docs state that bazel will fail to create coverage information if tests have
# been cached previously. See
# https://bazel.build/configure/coverage?hl=en#remote-execution
coverage:ot_coverage --nocache_test_results

# Configuration for measuring off-target coverage. Enable with
# `--config=ot_coverage_off_target`.
build:ot_coverage_off_target --config='ot_coverage'
build:ot_coverage_off_target --collect_code_coverage
coverage:ot_coverage_off_target --repo_env='GCOV=/usr/bin/llvm-profdata'
coverage:ot_coverage_off_target --repo_env='BAZEL_LLVM_COV=/usr/bin/llvm-cov'

# Configuration for measuring on-target coverage. Enable with
# `--config=ot_coverage_on_target`.
build:ot_coverage_on_target --config='ot_coverage'
build:ot_coverage_on_target --platforms="@crt//platforms/riscv32:opentitan"
build:ot_coverage_on_target --define='measure_coverage_on_target=true'
# Instrument selectively to limit size overhead when measuring on-target coverage.
# Note: We have to disable optimizations until the corresponding item in #16761 is
# resolved.
build:ot_coverage_on_target --per_file_copt='//sw/device/silicon_creator[/:].*,//sw/device/lib/base:.*@-fprofile-instr-generate,-fcoverage-mapping,-O0'
# Needed to be able to build host binaries while collecting coverage.
coverage:ot_coverage_on_target --platforms=""
# Configuration for clang's source-based coverage instrumentation.
coverage:ot_coverage --java_runtime_version='remotejdk_11'
coverage:ot_coverage --instrumentation_filter="^//sw/device"
coverage:ot_coverage --repo_env='BAZEL_USE_LLVM_NATIVE_COVERAGE=1'
coverage:ot_coverage --experimental_use_llvm_covmap
coverage:ot_coverage --experimental_generate_llvm_lcov
coverage:ot_coverage --combined_report=lcov

# Set coverage mode indicators
coverage:ot_coverage --define='ot_coverage_enabled=true'
coverage:ot_coverage --@rules_rust//:extra_rustc_flag='--cfg=feature="ot_coverage_enabled"'
coverage:ot_coverage --@rules_rust//:extra_exec_rustc_flag='--cfg=feature="ot_coverage_enabled"'
coverage:ot_coverage --//rules/coverage:enabled_flag
coverage:ot_coverage --copt='-DOT_COVERAGE_ENABLED=1'

# Host-side toolchain flags for unit tests
# https://github.com/bazelbuild/bazel/blob/release-8.0.1/src/test/shell/bazel/bazel_coverage_cc_test_llvm.sh#L59-L64
coverage:ot_coverage --repo_env='BAZEL_LLVM_COV=llvm-cov'
coverage:ot_coverage --repo_env='BAZEL_LLVM_PROFDATA=llvm-profdata'
coverage:ot_coverage --repo_env='CC=clang'
coverage:ot_coverage --repo_env='GCOV=llvm-profdata'

# Disable ccache if it happens to be installed
build --define=CCACHE_DISABLE=true
Expand Down Expand Up @@ -134,7 +120,7 @@ build --@rules_rust//rust/toolchain/channel=nightly
# Configure the rust 'clippy' linter.
build --aspects=@rules_rust//rust:defs.bzl%rust_clippy_aspect
build --output_groups=+clippy_checks
build --@rules_rust//:clippy_flags="-Aclippy::bool_assert_comparison,-Aclippy::uninlined_format_args,-Wclippy::undocumented_unsafe_blocks,-Dwarnings"
build --@rules_rust//:clippy_flags="-Aclippy::bool_assert_comparison,-Aclippy::uninlined_format_args,-Aclippy::needless_lifetimes,-Aclippy::precedence,-Wclippy::undocumented_unsafe_blocks,-Dwarnings"

# Configure the module ID check.
build --aspects=rules/quality.bzl%modid_check_aspect
Expand All @@ -148,3 +134,10 @@ build --flag_alias=ckms_cert_endorsement=//sw/device/silicon_creator/manuf/skus/

# cquery output option.
cquery --output=files

common --legacy_external_runfiles

# We have Verilator DPIs that use pseudoterminals, so we need to be able to use
# these when running sandboxed tests.
test --sandbox_explicit_pseudoterminal
run --sandbox_explicit_pseudoterminal
2 changes: 1 addition & 1 deletion .bazelversion
Original file line number Diff line number Diff line change
@@ -1 +1 @@
6.2.1
8.0.1
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,6 @@ sw/**/*.md doc
sw/**/*.svg doc
sw/**/*.jpg doc
sw/**/*.png doc

# Generated lock files
MODULE.bazel.lock linguist-generated=true
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,4 @@ COPYING* @mundaym

# CI and testing
/ci/ @rswarbrick
azure-pipelines.yml @rswarbrick
/.github @rswarbrick
31 changes: 31 additions & 0 deletions .github/actions/download-partial-build-bin/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

name: Download partial build-bin artifacts
description: Download partial build-bin and merge them

inputs:
job-patterns:
description: Glob patterns of jobs to download artifact from
required: true

runs:
using: composite
steps:
- name: Download partial build bins
uses: actions/download-artifact@v4
with:
pattern: partial-build-bin-${{ inputs.job-patterns }}
path: downloads
- name: Extract and merge bins
shell: bash
run: |
mkdir -p build-bin
find downloads -name "build-bin.tar" -exec \
tar -C build-bin --strip-components=1 -xvf {} \;
rm -rf downloads
- name: Show all downloads files
shell: bash
run: |
find build-bin
158 changes: 158 additions & 0 deletions .github/actions/prepare-env/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

name: Prepare environment
description: Install dependencies and prepare environment needed for OpenTitan

inputs:
service_account_json:
description: Service account JSON for Google Cloud access
default: ''
verilator-version:
description: Verilator version to install
required: true
default: '4.210'
verilator-path:
description: Path at which to install Veriltator
required: true
default: /tools/verilator
verible-version:
description: Verible version to install
required: true
default: 'v0.0-3622-g07b310a3'
verible-path:
description: Path at which to install Verible
required: true
default: /tools/verible
configure-bazel:
description: Configure Bazel to use remote cache
required: true
default: true
working-directory:
description: Working directory
default: ${{ github.workspace }}

runs:
using: composite
steps:
- name: Install system dependencies
run: |
sudo apt update
grep '^[^#]' apt-requirements.txt | xargs sudo apt install -y
shell: bash
working-directory: ${{ inputs.working-directory }}

- uses: astral-sh/setup-uv@v3
with:
version: '0.4.20'
enable-cache: true
cache-dependency-glob: |
${{ inputs.working-directory }}/pyproject.toml
${{ inputs.working-directory }}/python-requirements.txt

- name: Install Python
shell: bash
run: |
uv python install 3.9
# Create a virtual environment for UV
uv venv ~/.local/share/venv
echo "$HOME/.local/share/venv/bin" >> "$GITHUB_PATH"
echo "VIRTUAL_ENV=$HOME/.local/share/venv" >> "$GITHUB_ENV"
working-directory: ${{ inputs.working-directory }}

- name: Install Python dependencies
shell: bash
run: |
uv pip install -r python-requirements.txt --require-hashes
working-directory: ${{ inputs.working-directory }}

- name: Install Verilator
run: |
VERILATOR_TAR="verilator-v${{ inputs.verilator-version }}.tar.gz"
VERILATOR_URL="https://storage.googleapis.com/verilator-builds/${VERILATOR_TAR}"
sudo mkdir -p "${{ inputs.verilator-path }}"
curl -sSfL "$VERILATOR_URL" | sudo tar -C "${{ inputs.verilator-path }}" -xvzf -
echo "${{ inputs.verilator-path }}/v${{ inputs.verilator-version }}/bin" >> "$GITHUB_PATH"
shell: bash
working-directory: ${{ inputs.working-directory }}

- name: Install Verible
run: |
VERIBLE_TAR="verible-${{ inputs.verible-version }}-linux-static-x86_64.tar.gz"
VERIBLE_URL="https://github.com/chipsalliance/verible/releases/download/${{ inputs.verible-version }}/${VERIBLE_TAR}"
sudo mkdir -p "${{ inputs.verible-path }}"
curl -sSfL "$VERIBLE_URL" | sudo tar -C "${{ inputs.verible-path }}" -xvzf - --strip-components=1
# Fixup bin permission which is broken in tarball.
sudo chmod 755 "${{ inputs.verible-path }}/bin"
echo "${{ inputs.verible-path }}/bin" >> "$GITHUB_PATH"
shell: bash
working-directory: ${{ inputs.working-directory }}

# Log into Google Cloud using service account JSON.
# This can't be Workload Identity Federation because Bazel performance using WIF is terrible.
# This needs access to secrets and thus doesn't work for pull request.
- uses: google-github-actions/auth@v2
id: google_auth
if: github.event_name != 'pull_request' && inputs.service_account_json != ''
with:
credentials_json: '${{ inputs.service_account_json }}'

# The above action creates a credential file in workspace and it doesn't provide a way to configure
# it. This influences with a few scripts that assume clean workspace, and introduce security risk
# that it may be exposed when uploading to buckets.
- name: Move Google credentials out from workspace
if: github.event_name != 'pull_request' && inputs.service_account_json != ''
run: |
SOURCE=${{ steps.google_auth.outputs.credentials_file_path }}
TARGET=${{ runner.temp }}/$(basename "$SOURCE")
mv $SOURCE $TARGET
echo "CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE=$TARGET" >> $GITHUB_ENV
echo "GOOGLE_APPLICATION_CREDENTIALS=$TARGET" >> $GITHUB_ENV
echo "GOOGLE_GHA_CREDS_PATH=$TARGET" >> $GITHUB_ENV
shell: bash

- uses: google-github-actions/setup-gcloud@v2
if: github.event_name != 'pull_request' && inputs.service_account_json != ''

- name: Configure ~/.bazelrc
if: inputs.configure-bazel == 'true'
run: |
cp ci/.bazelrc ~/.bazelrc
# Inject the OS version into a parameter used in the action key computation to
# avoid collisions between different operating systems in the caches.
# See #14695 for more information.
echo "build --remote_default_exec_properties=OSVersion=\"$(lsb_release -ds)\"" >> ~/.bazelrc

if ${{ github.event_name != 'pull_request' && inputs.service_account_json != '' }}; then
echo "Will upload to the cache." >&2
echo "build --google_default_credentials" >> ~/.bazelrc
else
echo "Download from cache only." >&2
echo "build --remote_upload_local_results=false" >> ~/.bazelrc
fi
shell: bash
working-directory: ${{ inputs.working-directory }}

- name: Install merge-junit
run: |
MERGE_JUNIT_PATH="/tools/merge-junit"
MERGE_JUNIT_TAR="merge-junit-v0.2.1-x86_64-unknown-linux-musl.tar.gz"
MERGE_JUNIT_URL="https://github.com/tobni/merge-junit/releases/download/v0.2.1/${MERGE_JUNIT_TAR}"
MERGE_JUNIT_SHA256="5c6a63063f3a155ea4da912d5cae2ec4a89022df31d7942f2aba463ee4790152"

curl -fLSs -o "/tmp/${MERGE_JUNIT_TAR}" "$MERGE_JUNIT_URL"
HASH=$(sha256sum "/tmp/$MERGE_JUNIT_TAR" | awk '{print $1}')
if [[ "$HASH" != "$MERGE_JUNIT_SHA256" ]]; then
echo "The hash of merge-junit does not match" >&2
echo "$HASH != $MERGE_JUNIT_SHA256" >&2
exit 1
fi

sudo mkdir -p $MERGE_JUNIT_PATH
sudo chmod 777 $MERGE_JUNIT_PATH
tar -C $MERGE_JUNIT_PATH -xvzf "/tmp/${MERGE_JUNIT_TAR}" --strip-components=1
echo $MERGE_JUNIT_PATH >> "$GITHUB_PATH"
rm "/tmp/${MERGE_JUNIT_TAR}"
shell: bash
working-directory: ${{ inputs.working-directory }}
58 changes: 58 additions & 0 deletions .github/actions/publish-bazel-test-results/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

name: Publish Bazel test results
description: Merge Bazel test results and publish the report

inputs:
merged-results:
description: Path to place merged JUnit report
default: test_results.xml
artifact-name:
description: Name of uploaded artifact. Leave empty to skip upload.
default: ''
bucket-destination:
description: GCP bucket destination to upload report to.
default: ''

runs:
using: composite
steps:
# Bazel produce one xml for each test. Merge them together.
- name: Merge JUnit reports
shell: bash
run: |
if find -L bazel-out -name "test.xml" | grep -F '' >> /tmp/test-xmls; then
cat /tmp/test-xmls | xargs merge-junit -o "${{ inputs.merged-results }}"
else
# merge-junit doesn't handle 0 inputs.
echo '<?xml version="1.0" encoding="UTF-8"?><testsuites/>' >> "${{ inputs.merged-results }}"
fi

- name: Add hostname to testsuites
shell: bash
run: |
xmlstarlet ed --inplace -i '/testsuites/testsuite' -t attr -n hostname -v "${{ runner.name }}" "${{ inputs.merged-results }}"

- name: Upload report as artifact
if: inputs.artifact-name != ''
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.artifact-name }}
path: ${{ inputs.merged-results }}
# In case this is from a re-run
overwrite: true

- name: Upload report to Google Cloud
if: inputs.bucket-destination != ''
shell: bash
run: |
gcloud storage cp "${{ inputs.merged-results }}" "gs://${{ inputs.bucket-destination }}"

- name: Publish job summary
uses: mikepenz/action-junit-report@ec3a351c13e080dc4fa94c49ab7ad5bf778a9668 # v5
with:
report_paths: ${{ inputs.merged-results }}
annotate_only: true
detailed_summary: true
Loading
Loading