-
Notifications
You must be signed in to change notification settings - Fork 327
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
target/riscv: Add support for Sv57 (and Sv57x4) translation mode #904
Conversation
…-stage translations) Also fix Sv48x4 translation mode
This looks good. What testing have you done? |
I run this tests. Sv57 I check on spike + telnet + custom script for generate page table spike32test listCeaseMultiTest CeaseRunTest CeaseStepiTest CheckMisa CustomRegisterTest DebugBreakpoint DebugChangeString DebugCompareSections DebugExit DebugFunctionCall DebugSymbols DebugTurbostep DisconnectTest DownloadTest EbreakTest EtriggerTest FreeRtosTest Hwbp1 Hwbp2 HwbpManual IcountTest InfoTest InstantChangePc InstantHaltTest InterruptTest ItriggerTest JumpHbreak MemTest16 MemTest32 MemTest64 MemTest8 MemTestBlock0 MemTestBlock1 MemTestBlock2 MemTestBlockReadInvalid MemTestReadInvalid MemorySampleMixed MemorySampleSingle MulticoreRegTest MulticoreRtosSwitchActiveHartTest MulticoreRunAllHaltOne PrivChange PrivRw ProgramHwWatchpoint ProgramSwWatchpoint Registers RepeatReadTest Semihosting SemihostingFileio SimpleF18Test SimpleNoExistTest SimpleS0Test SimpleS1Test SimpleT0Test SimpleT1Test SimpleV13Test SmpSimultaneousRunHalt StepTest StepThread2Test Sv32Test Sv39Test Sv48Test TooManyHwbp TriggerDmode TriggerExecuteInstant TriggerLoadAddressInstant TriggerStoreAddressInstant UserInterrupt VectorTest WriteCsrs WriteGprs:::::::::::::::::::::::::::[ ran 71 tests in 190s ]::::::::::::::::::::::::::: spike64test listCeaseMultiTest CeaseRunTest CeaseStepiTest CheckMisa CustomRegisterTest DebugBreakpoint DebugChangeString DebugCompareSections DebugExit DebugFunctionCall DebugSymbols DebugTurbostep DisconnectTest DownloadTest EbreakTest EtriggerTest FreeRtosTest Hwbp1 Hwbp2 HwbpManual IcountTest InfoTest InstantChangePc InstantHaltTest InterruptTest ItriggerTest JumpHbreak MemTest16 MemTest32 MemTest64 MemTest8 MemTestBlock0 MemTestBlock1 MemTestBlock2 MemTestBlockReadInvalid MemTestReadInvalid MemorySampleMixed MemorySampleSingle MulticoreRegTest MulticoreRtosSwitchActiveHartTest MulticoreRunAllHaltOne PrivChange PrivRw ProgramHwWatchpoint ProgramSwWatchpoint Registers RepeatReadTest Semihosting SemihostingFileio SimpleF18Test SimpleNoExistTest SimpleS0Test SimpleS1Test SimpleT0Test SimpleT1Test SimpleV13Test SmpSimultaneousRunHalt StepTest StepThread2Test Sv32Test Sv39Test Sv48Test TooManyHwbp TriggerDmode TriggerExecuteInstant TriggerLoadAddressInstant TriggerStoreAddressInstant UserInterrupt VectorTest WriteCsrs WriteGprs:::::::::::::::::::::::::::[ ran 71 tests in 202s ]::::::::::::::::::::::::::: spike32-2-hwthreadtest listCeaseMultiTest CeaseRunTest CeaseStepiTest CheckMisa CustomRegisterTest DebugBreakpoint DebugChangeString DebugCompareSections DebugExit DebugFunctionCall DebugSymbols DebugTurbostep DisconnectTest DownloadTest EbreakTest EtriggerTest FreeRtosTest Hwbp1 Hwbp2 HwbpManual IcountTest InfoTest InstantChangePc InstantHaltTest InterruptTest ItriggerTest JumpHbreak MemTest16 MemTest32 MemTest64 MemTest8 MemTestBlock0 MemTestBlock1 MemTestBlock2 MemTestBlockReadInvalid MemTestReadInvalid MemorySampleMixed MemorySampleSingle MulticoreRegTest MulticoreRtosSwitchActiveHartTest MulticoreRunAllHaltOne PrivChange PrivRw ProgramHwWatchpoint ProgramSwWatchpoint Registers RepeatReadTest Semihosting SemihostingFileio SimpleF18Test SimpleNoExistTest SimpleS0Test SimpleS1Test SimpleT0Test SimpleT1Test SimpleV13Test SmpSimultaneousRunHalt StepTest StepThread2Test Sv32Test Sv39Test Sv48Test TooManyHwbp TriggerDmode TriggerExecuteInstant TriggerLoadAddressInstant TriggerStoreAddressInstant UserInterrupt VectorTest WriteCsrs WriteGprs:::::::::::::::::::::::::::[ ran 71 tests in 244s ]::::::::::::::::::::::::::: spike64-2test listCeaseMultiTest CeaseRunTest CeaseStepiTest CheckMisa CustomRegisterTest DebugBreakpoint DebugChangeString DebugCompareSections DebugExit DebugFunctionCall DebugSymbols DebugTurbostep DisconnectTest DownloadTest EbreakTest EtriggerTest FreeRtosTest Hwbp1 Hwbp2 HwbpManual IcountTest InfoTest InstantChangePc InstantHaltTest InterruptTest ItriggerTest JumpHbreak MemTest16 MemTest32 MemTest64 MemTest8 MemTestBlock0 MemTestBlock1 MemTestBlock2 MemTestBlockReadInvalid MemTestReadInvalid MemorySampleMixed MemorySampleSingle MulticoreRegTest MulticoreRtosSwitchActiveHartTest MulticoreRunAllHaltOne PrivChange PrivRw ProgramHwWatchpoint ProgramSwWatchpoint Registers RepeatReadTest Semihosting SemihostingFileio SimpleF18Test SimpleNoExistTest SimpleS0Test SimpleS1Test SimpleT0Test SimpleT1Test SimpleV13Test SmpSimultaneousRunHalt StepTest StepThread2Test Sv32Test Sv39Test Sv48Test TooManyHwbp TriggerDmode TriggerExecuteInstant TriggerLoadAddressInstant TriggerStoreAddressInstant UserInterrupt VectorTest WriteCsrs WriteGprs:::::::::::::::::::::::::::[ ran 71 tests in 264s ]::::::::::::::::::::::::::: spike32-2test listCeaseMultiTest CeaseRunTest CeaseStepiTest CheckMisa CustomRegisterTest DebugBreakpoint DebugChangeString DebugCompareSections DebugExit DebugFunctionCall DebugSymbols DebugTurbostep DisconnectTest DownloadTest EbreakTest EtriggerTest FreeRtosTest Hwbp1 Hwbp2 HwbpManual IcountTest InfoTest InstantChangePc InstantHaltTest InterruptTest ItriggerTest JumpHbreak MemTest16 MemTest32 MemTest64 MemTest8 MemTestBlock0 MemTestBlock1 MemTestBlock2 MemTestBlockReadInvalid MemTestReadInvalid MemorySampleMixed MemorySampleSingle MulticoreRegTest MulticoreRtosSwitchActiveHartTest MulticoreRunAllHaltOne PrivChange PrivRw ProgramHwWatchpoint ProgramSwWatchpoint Registers RepeatReadTest Semihosting SemihostingFileio SimpleF18Test SimpleNoExistTest SimpleS0Test SimpleS1Test SimpleT0Test SimpleT1Test SimpleV13Test SmpSimultaneousRunHalt StepTest StepThread2Test Sv32Test Sv39Test Sv48Test TooManyHwbp TriggerDmode TriggerExecuteInstant TriggerLoadAddressInstant TriggerStoreAddressInstant UserInterrupt VectorTest WriteCsrs WriteGprs:::::::::::::::::::::::::::[ ran 71 tests in 270s ]::::::::::::::::::::::::::: spike64-2-hwthreadtest listCeaseMultiTest CeaseRunTest CeaseStepiTest CheckMisa CustomRegisterTest DebugBreakpoint DebugChangeString DebugCompareSections DebugExit DebugFunctionCall DebugSymbols DebugTurbostep DisconnectTest DownloadTest EbreakTest EtriggerTest FreeRtosTest Hwbp1 Hwbp2 HwbpManual IcountTest InfoTest InstantChangePc InstantHaltTest InterruptTest ItriggerTest JumpHbreak MemTest16 MemTest32 MemTest64 MemTest8 MemTestBlock0 MemTestBlock1 MemTestBlock2 MemTestBlockReadInvalid MemTestReadInvalid MemorySampleMixed MemorySampleSingle MulticoreRegTest MulticoreRtosSwitchActiveHartTest MulticoreRunAllHaltOne PrivChange PrivRw ProgramHwWatchpoint ProgramSwWatchpoint Registers RepeatReadTest Semihosting SemihostingFileio SimpleF18Test SimpleNoExistTest SimpleS0Test SimpleS1Test SimpleT0Test SimpleT1Test SimpleV13Test SmpSimultaneousRunHalt StepTest StepThread2Test Sv32Test Sv39Test Sv48Test TooManyHwbp TriggerDmode TriggerExecuteInstant TriggerLoadAddressInstant TriggerStoreAddressInstant UserInterrupt VectorTest WriteCsrs WriteGprs:::::::::::::::::::::::::::[ ran 71 tests in 326s ]::::::::::::::::::::::::::: |
Sounds good. Could you extend https://github.com/riscv-software-src/riscv-tests/blob/d4eaa5bd6674b51d3b9b24913713c4638e99cdd9/debug/gdbserver.py#L1635 to also test Sv57? It already tests the other (non-x4) translation modes? |
Extension for riscv-tests in progress, trying to figure out in infrastructure. |
Thanks. Let me know if you have any questions. |
Also fix Sv48x4 translation mode (riscv.c:224). According to riscv privileged specification,
pa_ppn_mask
insv48x4
mode should be same as insv48
mode.