Skip to content

Update Darjeeling implementation #65

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 65 commits into from
May 31, 2024

Conversation

rivos-eblot
Copy link

  • add alert handler initial support
  • add OT PLIC extensions
  • add generic interrupt interception to devproxy: now support any kind of interrupt, not only sysbus IRQs
  • fix timer issue with STEP=0
  • fix mailbox IRQs
  • update JTAG/TAP controller support (mutiple instances are now supported)
    -jtag tcp::3335 is replaced with -chardev socket,id=taprbb,host=localhost,port=3335,server=on,wait=off
  • improve pyot.py
  • update linter and format rules to support LLVM 18

rivos-eblot and others added 30 commits May 30, 2024 19:57
Also fix an invalid error report type.

Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
- explicit timeout message
- add close() to ProxyEngine
- add quit() wrapper to DeviceProxy

Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
- discard casting-through-void, as QEMU heavily relies on ptr casting
- discard multi-level-implicit-pointer-conversion, as Glib likes casts
- discard macro-to-enum which is not fitted for C language
- discard redundant-casting which consider bool and int as strictly eq.
- discard avoid-nested-conditional-operator, useful for ?: operator
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
…andler

EarlGrey/Darjeeling alert handlers will be replaced by a new shared
implementation in a later commit.
Disable instantiation of current versions to avoid breaking bisect during the
transition.

Signed-off-by: Loïc Lefort <loic@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Also move instantiation calls instance_init.

Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
This option may be used in a test configuration section, to tell pyot.py
what QEMU is expected to fail with a specific error code.

Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
…ommon

Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
rivos-eblot and others added 24 commits May 30, 2024 19:57
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Count of arguments exchanged between a couple of methods in pyot.py as
grown to a hardly readable list. Replace it with a dictionary which is
easier to debug and extend with new features.

Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
debug may be None, overriding the pre-parsed default setting.

Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
- do not use critical log level for expected failure
- post context execution should be performed if failure matches expected one

Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
…warning

Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Update protocol and implementation to generalize interrupt interception
to all qemu_irq of a device, not only the system bus IRQs.

Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
It helps differentiating QEMU traces from pyot.py and other tool messages

Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
getLevelNamesMapping() has been added in Python 3.11.
Add a replacement function for previous Python releases.

Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
When setting CFG0.STEP to 0 and a compare value greater than the current timer
value, QEMU would crash with a division by 0.

Fix this issue by skipping QEMU internal timer scheduling when STEP=0 (same as a
disabled ot_timer).

Signed-off-by: Loïc Lefort <loic@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
@rivos-eblot rivos-eblot requested a review from loiclefort May 31, 2024 13:37
Signed-off-by: Emmanuel Blot <eblot@rivosinc.com>
Copy link

@loiclefort loiclefort left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM (already reviewed and tested at Rivos)

@rivos-eblot rivos-eblot merged commit 77ff7d9 into lowRISC:ot-darjeeling-8.2.0 May 31, 2024
5 checks passed
@rivos-eblot rivos-eblot deleted the dev/ebl/update_dj branch May 31, 2024 14:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants