Skip to content
This repository was archived by the owner on Feb 6, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
302 commits
Select commit Hold shift + click to select a range
de2531e
Removed assertion that catches holes in the active_hart_mask
jerinjoy Dec 5, 2024
89218e9
Added test058 to test holes in the active_hart_mask
jerinjoy Dec 5, 2024
6cc80ea
Enable CTR Ext in smstateen0 CSR.
rajnesh-kanwal Jan 2, 2025
edcafcd
Updated the copyright headers for 2025
jerinjoy Jan 13, 2025
87d13ad
common: Fix return type of march/mimpid helpers
rbradford Jan 15, 2025
af9e44f
Fix microsecond calculation in timeofday
Nov 8, 2024
8fc8bf7
Updated the README to sort instructions by OS
jerinjoy Jan 21, 2025
d71e8d4
Added note about debugging with GDB
jerinjoy Jan 22, 2025
d954e2b
Removed the option to override jumpstart source attributes.
jerinjoy Jan 23, 2025
aa78f51
Changed diag_entry_label to be a diag_attribute
jerinjoy Jan 23, 2025
00bcddc
Replace function section attributes with macros
jerinjoy Nov 20, 2024
45c4729
Added diag attributes to enforce ELF start/end addresses
jerinjoy Jan 27, 2025
a268909
Convert meson bool options to true/false strings
jerinjoy Jan 27, 2025
eace890
Require debug and optimization params when buildtype not specified
jerinjoy Jan 27, 2025
df0cdc5
Don't include string print functions if uart is disabled
jerinjoy Jan 27, 2025
f9608c9
Updated build_diag.py --lram_mode
jerinjoy Jan 24, 2025
a7bb451
Added the soc_rev meson option.
jerinjoy Jan 15, 2025
95284bb
DiagBuildTarget.add_build_asset() will copy by default
jerinjoy Jan 30, 2025
c77695d
Updated meson test to add a dependency for diag_exe
jerinjoy Jan 30, 2025
fa8ca9a
meson: Unified test call for all targets.
jerinjoy Jan 30, 2025
e731b13
Updating the params for reuse pre-commit linter
jerinjoy Jan 31, 2025
0aa057a
Updated to the latest pre-commit lint hooks
jerinjoy Feb 1, 2025
ed04663
Set MENVCFG_STCE so the s-mode timer can be used
mnissler-rivos Jan 30, 2025
f8343fa
Only build in sources of modes that are enabled.
jerinjoy Feb 8, 2025
2fac7a7
Removed test043
jerinjoy Feb 11, 2025
34a0b81
Don't default diag_generate_disassembly=true in Meson python class
jerinjoy Feb 11, 2025
a470b20
fixup! Only build in sources of modes that are enabled.
jerinjoy Nov 10, 2025
49499dc
Fix: Keep data.privileged.S in mmode_sources for fw-none builds
jerinjoy Nov 10, 2025
db3223c
Reduce test044 runtime by reducing loop iterations from 1024 to 50
jerinjoy Nov 10, 2025
8521525
Updated build script to not override meson options already set on cmd…
jerinjoy Feb 11, 2025
5192068
Enabled 4 cores for test044
jerinjoy Dec 5, 2024
3260c0e
Add load_reserved and store conditional macros.
rajnesh-kanwal Feb 13, 2025
f5bb1f9
Improve random number generator logic to be thread-safe
rajnesh-kanwal Feb 13, 2025
157b36c
Fix test044 to initialize seed from hart 0 only.
rajnesh-kanwal Feb 13, 2025
b6f008c
Update the diag file naming in meson.py.
rajnesh-kanwal Feb 13, 2025
85ead06
Run enable_mmode_float_and_vector_instructions() before setup_mmode()
jerinjoy Feb 20, 2025
d46896b
Handle the malloc(0) case.
jerinjoy Feb 1, 2025
9037815
Added an unaligned memory access check for memory allocated from heap
jerinjoy Feb 13, 2025
2f46a20
Expose read_time() as an API function
jerinjoy Feb 20, 2025
0961438
script: Check for trace file only if generate_trace=True
jerinjoy Feb 21, 2025
f2b6fd7
meson: Don't append --log to spike run when trace gen disabled
jerinjoy Feb 21, 2025
49cb0a4
Set pma as the default PBMT mode
jerinjoy Feb 24, 2025
d014943
Updated translate_VA() to return PBMT value
jerinjoy Feb 24, 2025
5f53a50
feat(heap): Add memory type-specific allocation functions
jerinjoy Feb 24, 2025
04f9528
Rename disable_uart to enable_uart to match with pcie_enable
rajnesh-kanwal Feb 28, 2025
c2bc22b
Remove target name from trace file name
rajnesh-kanwal Mar 3, 2025
e5b0365
enable_uart by default for all diags
jerinjoy Mar 4, 2025
5057864
Only check the heap memory type if the translation isn't Bare
jerinjoy Mar 4, 2025
438156d
Enable the UART before enabling the heap
jerinjoy Mar 4, 2025
0128395
Error out instead of failing silently when heap has not been set up
jerinjoy Mar 4, 2025
6e503aa
Don't disable the uart code when enable_uart is false
jerinjoy Mar 5, 2025
a6a9c87
Don't disable the heap code when ENABLE_HEAP is 0
jerinjoy Mar 5, 2025
e3b397d
Updated reference manual to describe the heap behavior.
jerinjoy Mar 5, 2025
c21c634
heap: Implement round-robin allocation strategy
jerinjoy Mar 6, 2025
887e8de
Extend test046 to use 4 cores
rajnesh-kanwal Mar 4, 2025
3915c84
Enable ZBA for public builds
rajnesh-kanwal Mar 4, 2025
4462003
print mapping objects when emitting page tables.
jerinjoy Mar 4, 2025
4b2e426
Add translate_GPA api to translate GPA into SPA.
rajnesh-kanwal Mar 6, 2025
0822bb3
Allow to set VGEIN to allow testing multiple guest IMSIC files.
rajnesh-kanwal Mar 6, 2025
16f8bf8
Updated memory allocation to expose allocation defines
jerinjoy Mar 10, 2025
eab8b68
Updated memory allocation to coalesce freed chunks
jerinjoy Mar 10, 2025
e909a80
Fixed the default heap size
jerinjoy Mar 10, 2025
4b80be0
heap: Use consistent defines for memory chunk operations
jerinjoy Mar 11, 2025
a34f37c
Fix: Remove duplicate MIN_HEAP_ALLOCATION_BYTES and MIN_HEAP_SEGMENT_…
jerinjoy Nov 11, 2025
2b2c419
heap: Fix chunk splitting condition to improve heap utilization
jerinjoy Mar 11, 2025
6e2527d
Renamed and moved some malloc related defines
jerinjoy Mar 11, 2025
5990fd0
test: Update test039 to support multiprocessor malloc testing
jerinjoy Mar 11, 2025
1f99616
heap: updated errors during free to be fatal
jerinjoy Mar 11, 2025
8d89c13
Increased the range of the Spike interleaving randomization
jerinjoy Mar 11, 2025
968b9f5
script: Fix active_hart_mask override with --override_diag_attributes
jerinjoy Mar 12, 2025
15c0d59
Increase exception handlers count to 24 for virt exceptions.
rajnesh-kanwal Mar 11, 2025
85252a9
Restore V_BIT attribute when hstatus CSR before returning from stvec
rajnesh-kanwal Mar 11, 2025
2227d90
Clear MDT and SDT bits before enabling interrupts
rajnesh-kanwal Mar 12, 2025
3fa1f12
Handle the case where diag_attributes_cmd_line_overrides is None
rajnesh-kanwal Mar 18, 2025
b252754
Document --target
charlie-rivos Mar 19, 2025
0df02f6
Allow diag attribute defines to be overriden with --diag_custom_defines
jerinjoy Mar 20, 2025
b031b2d
Improved meson option overriding in build_diag.py
jerinjoy Mar 20, 2025
3301796
Fixing diags with bad valid bit set
jerinjoy Mar 28, 2025
be511ee
Fix test046 to use vsmode data instead of smode data.
rajnesh-kanwal Mar 28, 2025
d9be52e
Fix valid bit in test042
rajnesh-kanwal Mar 28, 2025
97653b3
Add missing data area section test061
rajnesh-kanwal Mar 28, 2025
59d209e
build_tools: Improve trace generation logic in Meson class
jerinjoy Mar 29, 2025
714940e
Removed the stdlib memory functions from jumpstart header
jerinjoy Apr 2, 2025
155215b
malloc: set PER_HEAP_ALLOCATION_METADATA_SIZE based on struct size
jerinjoy Apr 7, 2025
bd8aa1b
memalign: improve code readability and robustness
jerinjoy Apr 7, 2025
eb9ba77
Reduce iterations in seed csr test
rajnesh-kanwal Apr 8, 2025
7a9697e
test010: updated ELF checks unit test
jerinjoy Apr 8, 2025
39ed513
Code cleanup for public release
jerinjoy Nov 11, 2025
be2f4cd
Remove test009 (MCRR-related, internal only)
jerinjoy Apr 15, 2025
d28f8e6
Mark struct xlate_info packed to avoid mismatches caused by padding
jerinjoy Apr 24, 2025
67e991d
linker: moved sdata, rodata attribute from smode to mmode
jerinjoy Apr 26, 2025
c139cec
meson.py: Raise MesonBuildError exception instead of exiting on failure
jerinjoy Apr 26, 2025
60711a5
page_tables.py: raise Exception instead of exiting on error
jerinjoy Apr 26, 2025
5f3fc00
meson.py: Don't change the default value of generate_trace
jerinjoy Apr 30, 2025
e617e09
build_diag.py: set generate_trace=true by default
jerinjoy Apr 30, 2025
fc7aba9
Sync cpu_bits.h with latest changes
jerinjoy Apr 30, 2025
1c5531f
string.smode.c: disable nonnull warning for strcpy/strcmp NULL checks
jerinjoy Apr 30, 2025
b34cc03
test010: improvements
jerinjoy May 1, 2025
2376ba9
build: added mcmodel meson option.
jerinjoy May 27, 2025
4610e84
Print unknown keys used in the attribute overrides
jerinjoy May 29, 2025
193d388
tests: Add main function address check in test017 and test018
jerinjoy Nov 11, 2025
3fea20b
Enable debug information for all build types.
jerinjoy Nov 11, 2025
dea8014
heap: expose memalign() in the API
jerinjoy Nov 11, 2025
a362e13
Hang on wfi if mmode init code doesn't fit in a 4K page
jerinjoy Nov 11, 2025
07a4e0a
Made mmode init end label common for public/rivos_internal
jerinjoy Nov 11, 2025
2d5e5f4
Move setup_thread_attributes_from_[sm]mode functions out of init section
jerinjoy Nov 11, 2025
8ed1dfc
Use mmode role enable/disable macros during mmode setup.
jerinjoy Nov 11, 2025
b309b84
Use the linker to check that the mmode init area is 4KB.
jerinjoy Nov 11, 2025
ea51f6d
Add support to handle vs/vu exceptions in M-Mode
jerinjoy Nov 11, 2025
7a6eb21
Fix buildtype precedence and default handling in meson setup
jerinjoy Jul 7, 2025
3251f72
DiagBuildTarget: Don't pass buildtype to init()
jerinjoy Jul 7, 2025
54dd818
added pause in inner loop of sync_harts functions to reduce the spinn…
Jul 7, 2025
dbd558d
heap: Improved error message for uninitialized heap
jerinjoy Jul 8, 2025
7c3138d
meson: Fix environment change that broke PYTHONUNBUFFERED
charlie-rivos Jul 8, 2025
97b3832
review: only set MALLOC_PERTURB_=0 for qemu runs
jerinjoy Jul 8, 2025
ca624b0
RVCCS-11451 jumpstart cpu bits update
Jul 8, 2025
a98af8b
common: locks: Extract locking code so it can be used outside of smode
charlie-rivos Jul 7, 2025
bd20ae9
common: uart: Extract uart code so it can be used outside of smode
charlie-rivos Jul 10, 2025
1985665
common: use extracted locking/uart code to create mmode uart handlers
charlie-rivos Jul 10, 2025
ce910c6
Set up the thread_attributes struct at the start of mmode
jerinjoy Jul 12, 2025
979e697
mmode: wrap stack setup in setup_stack()
jerinjoy Jul 14, 2025
04fa8b3
mmode: wrap handle_inactive_harts() functionality
jerinjoy Jul 14, 2025
5ebcdb7
mmode: wrap mmode interrupt enables
jerinjoy Jul 14, 2025
fd1943f
renamed hart_id -> cpu_id
jerinjoy Jul 15, 2025
39cea0b
thread_attributes: Added physical cpu id
jerinjoy Jul 15, 2025
6381cfd
Added convert_hart_id_to_cpu_id().
jerinjoy Jul 12, 2025
614eca1
mmode: moved a few functions out of mmode init region
jerinjoy Jul 15, 2025
8cbac52
mmode: Handle inactive CPUs as early as possible
jerinjoy Jul 15, 2025
50904fb
Filter out zero-page mappings to prevent issues downstream.
jerinjoy Jul 18, 2025
a92b1ab
heap: added is_valid_heap()
jerinjoy Jul 23, 2025
d433413
meson: Added custom gcc15 cross compile target
jerinjoy Jul 21, 2025
2280f86
test000: Updated check for main() address
jerinjoy Jul 25, 2025
6c6de05
process_memory_map(): process jumpstart mappings before diag mappings
jerinjoy Jul 25, 2025
4b78daa
Implement automatic address assignment for memory mappings
jerinjoy Jul 25, 2025
156fcee
Code cleanup for external release.
jerinjoy Nov 11, 2025
e3beebb
Automatic address assignment: support bare mode
jerinjoy Jul 29, 2025
9e17724
Address assignment: Align .text start address to NAPOT for mmode diag
jerinjoy Jul 29, 2025
08b23a4
rivos: Allow disabling of generate_trace
charlie-rivos Jul 29, 2025
8b8d4d1
test067: Added test for generating missing addresses
jerinjoy Jul 25, 2025
c91e569
common: uart: Fix mmode puts to be named m_puts
charlie-rivos Jul 29, 2025
c73c72a
common: uart: Expose putch as uart function
charlie-rivos Jul 29, 2025
b8cac8c
Enable generate_trace by default for spike and qemu.
rajnesh-kanwal Aug 7, 2025
fe9c5bc
scripts: Don't pass active_cpu_mask_override, custom_rcode_bin to Dia…
jerinjoy Aug 8, 2025
17840fc
Add support to set env variables and timeout in run_command.
rajnesh-kanwal Aug 8, 2025
6375820
script: refactor diag build/run; remove build_jumpstart_diag()
jerinjoy Aug 8, 2025
422ab31
script: move Meson option overrides to DiagBuildTarget
jerinjoy Aug 9, 2025
c4bc7bb
script: Don't pass diag_build_target to Meson()
jerinjoy Aug 9, 2025
196ff72
script: pull out run_target overrides from Meson.init() and into Diag…
jerinjoy Aug 9, 2025
13b84e3
script: Improved printing of meson options
jerinjoy Aug 9, 2025
a6fd2e5
script: add type hints and robustness to meson/diag (no behavior change)
jerinjoy Aug 9, 2025
9cea4b6
script: Renamed DiagBuildTarget -> DiagBuilUnit
jerinjoy Aug 9, 2025
4d5fc0f
script: Save the meson builddir on failure
jerinjoy Aug 8, 2025
51f75df
Code cleanup for public release
jerinjoy Nov 11, 2025
ea93f67
scripts: introduce DiagFactory and YAML-based multi-diag build/run
jerinjoy Aug 9, 2025
79640f6
Add support for sections having different virtual and physical address.
rajnesh-kanwal Aug 14, 2025
2611d03
Fixes for public release
jerinjoy Nov 11, 2025
208963a
Extend test026 to validate PA!=VA on text section as well.
rajnesh-kanwal Aug 14, 2025
8402a49
Don't use upper VA bits when generating page table.
rajnesh-kanwal Aug 15, 2025
aed22d0
script: Removed --generate_padded_binaries
jerinjoy Aug 16, 2025
b045b55
script: refactor: decompose DiagBuildUnit.__init__ into focused methods
jerinjoy Aug 16, 2025
7d35dbf
script: Meson: Add a sanity check function
jerinjoy Aug 16, 2025
5000e06
script: Add run manifest generation to DiagFactory
jerinjoy Aug 18, 2025
d40b3eb
script: DiagFactory: Updates to summarize()
jerinjoy Aug 19, 2025
9ca3b2e
Updated documentation with current instructions.
jerinjoy Aug 20, 2025
e2f945c
script: meson.py: Added Meson.introspect()
jerinjoy Aug 21, 2025
09241c1
justfile: set priv modes, diag attributes for boot_config explicitly.
jerinjoy Aug 21, 2025
0ebb40c
script: DiagBuildUnit.init() minor changes
jerinjoy Aug 21, 2025
78fe179
script: DiagBuildUnit._apply_meson_option_overrides(): process cmd li…
jerinjoy Aug 21, 2025
900c9a9
script: environment.py: Add environment configuration
jerinjoy Aug 21, 2025
ebdff10
Code cleanup for public release
jerinjoy Nov 12, 2025
8dca5d9
script: DiagBuildUnit: Apply overrides from environment
jerinjoy Aug 21, 2025
58e31bb
script: Environment: Mark some as hidden
jerinjoy Aug 21, 2025
bc9a8ff
meson: Remove explicit setting of some options based on boot_config
jerinjoy Aug 21, 2025
44a4537
script: Moved sanity check for batch_mode and boot_config
jerinjoy Aug 21, 2025
bcfa7fc
Remove batch_mode check (rivos internal)
jerinjoy Nov 12, 2025
003f6fb
script: meson: don't enforce checks for batch_mode + magicbox
jerinjoy Aug 22, 2025
f4a13fb
script: build_diag.py: replace --target with --environment
jerinjoy Aug 22, 2025
8a1657d
script: build_diag: Removed --boot_config.
jerinjoy Aug 22, 2025
726c5ba
docs: Updated documentation about --environment
jerinjoy Aug 22, 2025
792a481
Renamed diag_target -> run_target to match environment attribute
jerinjoy Nov 12, 2025
bb21bcf
meson: Added checks from Meson.validate_build_option()
jerinjoy Aug 22, 2025
684175c
Kill the process on timeout exception in run_command
rajnesh-kanwal Aug 20, 2025
ce02ec4
script: linker_script.py: Fixed elf_start/end_address check
jerinjoy Aug 22, 2025
6eea1cd
script: DiagFactory: Create deep copies of overrides/yaml passed to D…
jerinjoy Aug 22, 2025
1f1dd21
Updated to the latest pre-commit lint hooks
jerinjoy Aug 24, 2025
30adf82
build_diag.py: move trace/disassembly generation to environments
jerinjoy Aug 25, 2025
c039d2a
script: improved error handling on option overrides
jerinjoy Aug 25, 2025
c00dc02
script: DiagBuildUnit: Deduplicate diag_custom_defines meson option.
jerinjoy Aug 25, 2025
177fb02
script: pass empty builddir to Meson instead of artifacts_dir
jerinjoy Aug 28, 2025
d22a97c
script: Add per-diagnostic rng_seed support in YAML configuration
jerinjoy Aug 28, 2025
10fc0b6
script: Remove primary_cpu_id from run manifest generation
jerinjoy Aug 28, 2025
26b9323
script: DiagFactory: Print the paths to the diags instead of diag names
jerinjoy Aug 29, 2025
0eb7a68
script: DiagFactory: Print a summary of diags built/run
jerinjoy Aug 29, 2025
4585638
DiagBuildUnit: keep meson builddir on failures
jerinjoy Aug 29, 2025
9c042f3
Call _apply_run_target_specific_overrides after _apply_command_line_o…
rajnesh-kanwal Sep 2, 2025
f3d5949
script: generate_diag_sources.py: removed off override warnings
jerinjoy Sep 5, 2025
6e0315a
script: fix DiagFactory cleanup and error
jerinjoy Sep 2, 2025
797fddc
script: Write all int defines as hex values
jerinjoy Sep 9, 2025
95783be
script: Set default pma_memory_type to "uc" for all mappings
jerinjoy Sep 10, 2025
ab50295
script: Added napot_utils.py
jerinjoy Sep 11, 2025
4d5f62c
script: assign_addresses_to_mapping_for_stage() updated napot related…
jerinjoy Sep 11, 2025
3c83195
Expose sync_cpus_in_mask_from_*() in the API
jerinjoy Sep 11, 2025
5d0f1ad
Simplify sync_cpus_in_mask_from_* function signatures
jerinjoy Sep 11, 2025
a548af5
Removed test034
jerinjoy Nov 12, 2025
036da4b
heap: improve last_allocated maintenance on free
jerinjoy Sep 12, 2025
13dd645
script: DiagBuildUnit: Set --hartids for Spike
rajnesh-kanwal Sep 12, 2025
a81ed93
Updated logic to convert hartid -> cpuid
jerinjoy Sep 12, 2025
99b06a5
mmode: set up stack before the thread attributes
jerinjoy Sep 15, 2025
811a994
Add get_thread_attributes_for_cpu_id function
jerinjoy Sep 15, 2025
ad8f3a2
Add get_physical_cpu_id_for_cpu_id functions for both S-mode and M-mode
jerinjoy Sep 15, 2025
71129c5
Add num_pages_per_cpu attribute in MemoryMapping.
rajnesh-kanwal Sep 12, 2025
2394848
Fixes for public release
jerinjoy Nov 12, 2025
150dafd
script: SourceGenerator: Refactor stack generation to use MemoryMappi…
jerinjoy Sep 16, 2025
d4c6ed4
script: SourceGenerator: Align stack based on page size
jerinjoy Sep 16, 2025
493279a
source attributes: Use num_pages_per_cpu for mmode stack, data, c_struct
jerinjoy Sep 16, 2025
c5c6d60
script: moved define, regctx, thread attr gen to diag sources script.
jerinjoy Sep 16, 2025
1afd52b
c_struct: Refactor to use CStruct python object.
jerinjoy Sep 16, 2025
226c96e
c_struct: moved from jumpstart sources to diag sources
jerinjoy Sep 16, 2025
5c16194
script: Remove scripts/generate_jumpstart_sources.py
jerinjoy Sep 16, 2025
dd44163
BitField: Added find_lowest_set_bit(), find_highest_set_bit()
jerinjoy Sep 17, 2025
b370feb
mmode: Don't send cores with ID > MAX_NUM_CPUS_SUPPORTED to wfi
jerinjoy Sep 17, 2025
d504bee
Remove hardcoded max_num_cpus_supported and derive from active_cpu_mask
jerinjoy Sep 17, 2025
4eb69eb
reference manual: Add entry for num_pages_for_cpu
jerinjoy Sep 17, 2025
6a65bac
Add delay_us() function for microsecond delays
jerinjoy Sep 18, 2025
0806c19
Add a separate env parser to able to conditionally prints args.
rajnesh-kanwal Aug 26, 2025
a2b5c73
script: Meson: replace options with values from introspect after intr…
jerinjoy Sep 25, 2025
8f22e40
script: DiagBuildUnit: Added get_primary_hart_id()
jerinjoy Sep 26, 2025
3acf29c
Avoid failing in case of disabled uart similar to smode APIs.
rajnesh-kanwal Oct 1, 2025
9523584
DiagFactory: set both error and state for compile/run failures
jerinjoy Oct 3, 2025
d71d577
DiagBuildUnit: Added compile_passed() and run_passed()
jerinjoy Oct 3, 2025
e5cd493
MemoryMapping: Add canonical address validation
jerinjoy Oct 6, 2025
c137b98
Code cleanup for public release
jerinjoy Nov 12, 2025
0f66381
test019: fixed issue with single CPU syncing
jerinjoy Oct 6, 2025
abd4afe
script: Kill spawned processes on Ctrl+C interruption
jerinjoy Oct 8, 2025
0d59af3
DiagFactory: Take environment object and not env name
jerinjoy Oct 9, 2025
13dc880
build_diag.py: --disable_diag_run sets environment.run_target to False
jerinjoy Oct 9, 2025
b540367
DiagFactory: Fixed summary reporting pass/fail
jerinjoy Oct 9, 2025
600dbce
heap: Prevent memalign from reusing recently freed chunks
jerinjoy Oct 10, 2025
0a3ea8d
heap: Extract common chunk search logic into iterator
jerinjoy Oct 10, 2025
6eeaf0a
utils.*.h: added pragma once
jerinjoy Oct 14, 2025
25f24e7
Save and restore gp in stvec and vstvec similar to mtvec.
rajnesh-kanwal Oct 16, 2025
a729686
Updated few tests to remove explicit addresses
jerinjoy Oct 22, 2025
96d3054
Add translate_GVA API to support updating guest pagetables.
rajnesh-kanwal Oct 24, 2025
45b038d
mmode: minor change for readability for registered trap handler
jerinjoy Sep 18, 2025
cc60267
Set up default exception handler for all unexpected exceptions.
jerinjoy Oct 29, 2025
d404bf7
gcc: fixed march extension order
jerinjoy Nov 12, 2025
d452276
Updated README for public release
jerinjoy Nov 12, 2025
519b8ac
Code cleanup for public release
jerinjoy Nov 12, 2025
6b8a301
public: fixing pre-commit lint
jerinjoy Nov 12, 2025
a70dd32
CI: updated meson version and GCC pointer
jerinjoy Nov 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .clang-format
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Rivos Inc.
# SPDX-FileCopyrightText: 2023 - 2025 Rivos Inc.
#
# SPDX-License-Identifier: Apache-2.0

Expand Down
175 changes: 87 additions & 88 deletions .github/workflows/build-and-test-jumpstart.yaml
Original file line number Diff line number Diff line change
@@ -1,107 +1,106 @@
# SPDX-FileCopyrightText: 2023 - 2024 Rivos Inc.
# SPDX-FileCopyrightText: 2023 - 2025 Rivos Inc.
#
# SPDX-License-Identifier: Apache-2.0

name: Build and Test Jumpstart

on:
push:
branches: [ "main" ]
branches: ["main"]
pull_request:
branches: [ "main" ]
branches: ["main"]
workflow_dispatch:

env:
SPIKE_REPO: https://github.com/riscv-software-src/riscv-isa-sim.git
SPIKE_REV: master
TOOLCHAIN_URL: https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2023.09.27/riscv64-elf-ubuntu-22.04-gcc-nightly-2023.09.27-nightly.tar.gz
TOOLCHAIN_URL: https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2025.09.28/riscv64-elf-ubuntu-22.04-gcc-nightly-2025.09.28-nightly.tar.xz

jobs:
build-and-test-jumpstart:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0

- name: Install Packages
run: |
sudo apt-get update
sudo apt-get install -y device-tree-compiler build-essential

- name: Get revisions of dependencies
run: |
SPIKE_COMMIT=$( git ls-remote "$SPIKE_REPO" $SPIKE_REV | awk '{ print $1; }' )
echo "Revison of Spike: $SPIKE_COMMIT"
# Save for later use
echo "SPIKE_COMMIT=$SPIKE_COMMIT" >> $GITHUB_ENV

- name: Get the toolchain from cache (if available)
id: cache-restore-toolchain
uses: actions/cache/restore@v3
with:
path: /opt/riscv/toolchain
key: "toolchain-${{env.TOOLCHAIN_URL}}"

- if: ${{ steps.cache-restore-toolchain.outputs.cache-hit != 'true' }}
name: Download Toolchain (if not cached)
run: |
mkdir -p /opt/riscv/toolchain
wget --progress=dot:giga $TOOLCHAIN_URL -O /tmp/toolchain.tar.gz

- if: ${{ steps.cache-restore-toolchain.outputs.cache-hit != 'true' }}
name: Install Toolchain (if not cached)
run: tar zxf /tmp/toolchain.tar.gz --strip-components=1 -C /opt/riscv/toolchain

- name: Save the toolchain to the cache (if necessary)
id: cache-save-toolchain
uses: actions/cache/save@v3
with:
path: /opt/riscv/toolchain
key: "toolchain-${{env.TOOLCHAIN_URL}}"

- name: Add the toolchain to the path
run: echo "/opt/riscv/toolchain/bin" >> $GITHUB_PATH

- name: Get spike from cache (if available)
id: cache-restore-spike
uses: actions/cache/restore@v3
with:
path: /opt/riscv/spike
key: "spike-${{env.SPIKE_COMMIT}}"

- if: ${{ steps.cache-restore-spike.outputs.cache-hit != 'true' }}
name: Download Spike source (if not cached)
run: |
git clone "$SPIKE_REPO"
cd riscv-isa-sim
git checkout "$SPIKE_COMMIT"
git submodule update --init --recursive

- if: ${{ steps.cache-restore-spike.outputs.cache-hit != 'true' }}
name: Build Spike (if not cached)
run: |
cd riscv-isa-sim
mkdir build && cd build
../configure --prefix=/opt/riscv/spike
make -j"$(nproc 2> /dev/null || sysctl -n hw.ncpu)"
make install

- if: ${{ steps.cache-restore-spike.outputs.cache-hit != 'true' }}
name: Save spike to cache (if built)
id: cache-save-spike
uses: actions/cache/save@v3
with:
path: /opt/riscv/spike
key: "spike-${{env.SPIKE_COMMIT}}"

- uses: BSFishy/meson-build@v1.0.3
with:
action: test
directory: build
setup-options: --cross-file cross_compile/public/gcc_options.txt --cross-file cross_compile/gcc.txt --buildtype release -Dspike_binary=/opt/riscv/spike/bin/spike
options: --verbose
meson-version: 1.2.0
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0

- name: Install Packages
run: |
sudo apt-get update
sudo apt-get install -y device-tree-compiler build-essential

- name: Get revisions of dependencies
run: |
SPIKE_COMMIT=$( git ls-remote "$SPIKE_REPO" $SPIKE_REV | awk '{ print $1; }' )
echo "Revison of Spike: $SPIKE_COMMIT"
# Save for later use
echo "SPIKE_COMMIT=$SPIKE_COMMIT" >> $GITHUB_ENV

- name: Get the toolchain from cache (if available)
id: cache-restore-toolchain
uses: actions/cache/restore@v3
with:
path: /opt/riscv/toolchain
key: "toolchain-${{env.TOOLCHAIN_URL}}"

- if: ${{ steps.cache-restore-toolchain.outputs.cache-hit != 'true' }}
name: Download Toolchain (if not cached)
run: |
mkdir -p /opt/riscv/toolchain
wget --progress=dot:giga $TOOLCHAIN_URL -O /tmp/toolchain.tar.xz

- if: ${{ steps.cache-restore-toolchain.outputs.cache-hit != 'true' }}
name: Install Toolchain (if not cached)
run: tar xJf /tmp/toolchain.tar.xz --strip-components=1 -C /opt/riscv/toolchain

- name: Save the toolchain to the cache (if necessary)
id: cache-save-toolchain
uses: actions/cache/save@v3
with:
path: /opt/riscv/toolchain
key: "toolchain-${{env.TOOLCHAIN_URL}}"

- name: Add the toolchain to the path
run: echo "/opt/riscv/toolchain/bin" >> $GITHUB_PATH

- name: Get spike from cache (if available)
id: cache-restore-spike
uses: actions/cache/restore@v3
with:
path: /opt/riscv/spike
key: "spike-${{env.SPIKE_COMMIT}}"

- if: ${{ steps.cache-restore-spike.outputs.cache-hit != 'true' }}
name: Download Spike source (if not cached)
run: |
git clone "$SPIKE_REPO"
cd riscv-isa-sim
git checkout "$SPIKE_COMMIT"
git submodule update --init --recursive

- if: ${{ steps.cache-restore-spike.outputs.cache-hit != 'true' }}
name: Build Spike (if not cached)
run: |
cd riscv-isa-sim
mkdir build && cd build
../configure --prefix=/opt/riscv/spike
make -j"$(nproc 2> /dev/null || sysctl -n hw.ncpu)"
make install

- if: ${{ steps.cache-restore-spike.outputs.cache-hit != 'true' }}
name: Save spike to cache (if built)
id: cache-save-spike
uses: actions/cache/save@v3
with:
path: /opt/riscv/spike
key: "spike-${{env.SPIKE_COMMIT}}"

- uses: BSFishy/meson-build@v1.0.3
with:
action: test
directory: build
setup-options: --cross-file cross_compile/public/gcc_options.txt --cross-file cross_compile/gcc.txt --buildtype release -Dspike_binary=/opt/riscv/spike/bin/spike
options: --verbose
meson-version: 1.3.0
10 changes: 6 additions & 4 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Rivos Inc.
# SPDX-FileCopyrightText: 2023 - 2025 Rivos Inc.
#
# SPDX-License-Identifier: Apache-2.0

Expand All @@ -13,6 +13,8 @@ jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v3
- uses: pre-commit/action@v3.0.0
- uses: actions/checkout@v3
- uses: actions/setup-python@v3
with:
python-version: "3.12"
- uses: pre-commit/action@v3.0.0
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2024 Rivos Inc.
# SPDX-FileCopyrightText: 2024 - 2025 Rivos Inc.
#
# SPDX-License-Identifier: Apache-2.0

Expand Down
22 changes: 11 additions & 11 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# SPDX-FileCopyrightText: 2023 - 2024 Rivos Inc.
# SPDX-FileCopyrightText: 2023 - 2025 Rivos Inc.
#
# SPDX-License-Identifier: Apache-2.0

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks.git
rev: v4.6.0
rev: v5.0.0
hooks:
- id: check-added-large-files
- id: check-ast
Expand All @@ -24,43 +24,43 @@ repos:
args: [--markdown-linebreak-ext=md]

- repo: https://github.com/PyCQA/isort
rev: 5.13.2
rev: 6.0.1
hooks:
- id: isort

- repo: https://github.com/psf/black-pre-commit-mirror
rev: 24.4.2
rev: 25.1.0
hooks:
- id: black

- repo: https://github.com/ikamensh/flynt/
rev: 1.0.1
rev: 1.0.2
hooks:
- id: flynt

- repo: https://github.com/asottile/pyupgrade
rev: v3.16.0
rev: v3.20.0
hooks:
- id: pyupgrade

- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v16.0.6
rev: v20.1.8
hooks:
- id: clang-format

# pull mirror of https://github.com/fsfe/reuse-tool
- repo: https://github.com/rivosinc/reuse-tool
rev: '092e17c7287dad33a3da7fde22185dea29698810'
rev: 'da430ed605e06460b020a75410d62ddb7fc9a616'
hooks:
- id: reuse-annotate
args:
- -c=Rivos Inc.
- -l=Apache-2.0
- -c Rivos Inc.
- -l Apache-2.0
- --merge-copyrights
- --skip-unrecognised
- id: reuse

- repo: https://github.com/pycqa/flake8
rev: 6.1.0
rev: 7.1.0
hooks:
- id: flake8
Loading
Loading