Skip to content

Update uVisor to v0.28.1 #4295

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 4 commits into from
Jun 4, 2017
Merged

Update uVisor to v0.28.1 #4295

merged 4 commits into from
Jun 4, 2017

Conversation

Patater
Copy link
Contributor

@Patater Patater commented May 10, 2017

Description

This ships an updated uVisor that supports ARMv8-M, and provides fixes for uVisor on ARMv7-M.

This previously added the following, but this target is not yet ready to be added to mbed OS; so we'll hold off on these things.

  • Add ARMv8-M Cortex-M33 target (ARM_MPS2_ARMv8MML)
  • Prepare uVisor scripts and components for ARMv8-M

Status

READY
This depends on #4294 being merged first. Merged

Related PRs

Deploy notes

Requires GNU Tools for ARM Embedded Processors 6-2017-q1-update.

@Patater Patater changed the base branch from master to feature_cmsis5 May 10, 2017 11:52
@Patater Patater changed the base branch from feature_cmsis5 to master May 10, 2017 11:53
@Patater Patater changed the title Add ARMv8-M Cortex-M33 target (ARM_MPS2_ARMv8MML) Update uVisor to v0.28.0 May 30, 2017
@sg- sg- removed the needs: review label May 30, 2017
@Patater Patater force-pushed the armv8m branch 2 times, most recently from 2ddc80b to eb303ec Compare May 31, 2017 09:55
* osRtxInfo again. */
BL thread_switch_helper
LDR R3,=osRtxInfo+I_T_RUN_OFS // Load address of osRtxInfo.run
LDM R3,{R1,R2} // Load osRtxInfo.thread.run: curr & next
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Note: the values from osRtxInfo are re-obtained identically to lines 63 and 64 above.

@sg- sg- added needs: CI and removed needs: work labels Jun 1, 2017
@Patater Patater changed the title Update uVisor to v0.28.0 Update uVisor to v0.28.1 Jun 2, 2017
@Patater Patater requested a review from AlessandroA June 2, 2017 16:40
@sg-
Copy link
Contributor

sg- commented Jun 3, 2017

@Patater @AlessandroA Just needs a rebase and should be ready for final testing

@Patater
Copy link
Contributor Author

Patater commented Jun 3, 2017

uVisor CI is expected to fail on this PR right now. This PR changes uVisor APIs, and we need to merge our tests PR first in order to use the new APIs. Unfortunately, merging our test PR will break uVisor CI for everybody else until this mbed OS PR also goes in. Merging these two PRs requires careful coordination.

@0xc0170
Copy link
Contributor

0xc0170 commented Jun 3, 2017

OK, please keep us updated

@sg-
Copy link
Contributor

sg- commented Jun 3, 2017

/morph test

@mbed-bot
Copy link

mbed-bot commented Jun 3, 2017

Result: SUCCESS

Your command has finished executing! Here's what you wrote!

/morph test

Output

mbed Build Number: 432

All builds and test passed!

@sg-
Copy link
Contributor

sg- commented Jun 4, 2017

@Patater Ready for the uvisor tests to be updated. Can you do that now?

@Patater
Copy link
Contributor Author

Patater commented Jun 4, 2017

@sg- Yes, I'll merge those now.

Patater and others added 4 commits June 4, 2017 14:41
uVisor doesn't set the PSP of the target thread. The RTOS sets the PSP
of the target thread from the target thread's TCB. However, when
interrupts of higher priority than PendSV happen between the call to
uVisor to switch boxes, and the RTOS setting PSP, the uVisor vIRQ
interrupt handler will attempt to use an invalid PSP (the PSP from
before the box and thread switch). This leads to a crash. Make box and
thread switching atomic by disabling interrupts immediately before the
box switching until immediately after the new PSP is set.
@Patater
Copy link
Contributor Author

Patater commented Jun 4, 2017

retest uvisor

@sg-
Copy link
Contributor

sg- commented Jun 4, 2017

/morph test

@mbed-bot
Copy link

mbed-bot commented Jun 4, 2017

Result: SUCCESS

Your command has finished executing! Here's what you wrote!

/morph test

Output

mbed Build Number: 437

All builds and test passed!

@sg- sg- merged commit 40042f0 into ARMmbed:master Jun 4, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants