Skip to content
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

Refactor core optional parameters (FPU + DSP + Security extensions) #9480

Merged
merged 5 commits into from Jan 31, 2019

Conversation

Projects
None yet
9 participants
@deepikabhavnani
Copy link
Contributor

deepikabhavnani commented Jan 23, 2019

Description

Core variant options were set differently in all toolchains and bit complex. Trying to have similar mechanism here for all toolchains and cleanup. Commit messages provide more details.

Pull request type

[X] Fix
[ ] Refactor
[ ] Target update
[ ] Functionality change
[ ] Docs update
[ ] Test update
[ ] Breaking change

Reviewers

@kjbracey-arm @theotherjimmy

@deepikabhavnani

This comment has been minimized.

Copy link
Contributor Author

deepikabhavnani commented Jan 23, 2019

@jeromecoutant @mikisch81 @cyliangtw @mmahadevan108
Change in this PR is not breaking, but it will be good to test for all Armv8M devices locally to make sure behavior or functionality is not modified.

@ciarmcom ciarmcom requested review from kjbracey-arm , theotherjimmy and ARMmbed/mbed-os-maintainers Jan 23, 2019

@ciarmcom

This comment has been minimized.

Copy link
Member

ciarmcom commented Jan 23, 2019

Show resolved Hide resolved tools/toolchains/arm.py
@theotherjimmy
Copy link
Contributor

theotherjimmy left a comment

Since this is quickly becoming a lookup table of if statements, could we make this a lookup table?

@deepikabhavnani deepikabhavnani force-pushed the deepikabhavnani:core_arch_v8m branch 3 times, most recently Jan 24, 2019

@cyliangtw

This comment has been minimized.

Copy link
Contributor

cyliangtw commented Jan 25, 2019

@deepikabhavnani, draft test by some sample on M2351 device and the behavior or functionality is not modified in both of GCC_ARM and ARM toolchain.

@theotherjimmy
Copy link
Contributor

theotherjimmy left a comment

I think we're headed in the correct direction. I marked a few more things for conversion into lookup tables. Let me know if you would like me to do the conversion.

Show resolved Hide resolved tools/toolchains/arm.py
Show resolved Hide resolved tools/toolchains/gcc.py Outdated
Show resolved Hide resolved tools/toolchains/gcc.py

deepikabhavnani added some commits Jan 23, 2019

Armc6 - Set floating point and CPU options for all core variants expl…
…icitly

Below are the options read from the toolchains/arm
armclang --target=arm-arm-none-eabi -mcpu=list
The following arguments to option 'mcpu' can be selected:
  -mcpu=cortex-m0
  -mcpu=cortex-m0plus
  -mcpu=cortex-m1
  -mcpu=cortex-m3
  -mcpu=cortex-m4
  -mcpu=cortex-m7
  -mcpu=cortex-m23
  -mcpu=cortex-m33
  ...

armlink --cpu=list
The following arguments to option 'cpu' can be selected:
 --cpu=Cortex-M0
 --cpu=Cortex-M0plus
 --cpu=Cortex-M1
 --cpu=Cortex-M1.os_extension
 --cpu=Cortex-M1.no_os_extension
 --cpu=Cortex-M4
 --cpu=Cortex-M4.no_fp
 --cpu=Cortex-M7
 --cpu=Cortex-M7.fp.sp
 --cpu=Cortex-M7.no_fp
 --cpu=Cortex-M23
 --cpu=Cortex-M33
 --cpu=Cortex-M33.no_fp
 --cpu=Cortex-M33.no_dsp
 --cpu=Cortex-M33.no_dsp.no_fp
...

armclang --target=arm-arm-none-eabi -mfpu=list
The following arguments to option 'mfpu' can be selected:
  -mfpu=fpv4-sp-d16
  -mfpu=fpv5-sp-d16
  -mfpu=fpv5-d16
...

@deepikabhavnani deepikabhavnani force-pushed the deepikabhavnani:core_arch_v8m branch to febbeff Jan 25, 2019

@theotherjimmy
Copy link
Contributor

theotherjimmy left a comment

I'll make a PR to convert the FPU arguments to tables.

@bridadan
Copy link
Contributor

bridadan left a comment

Nice work @deepikabhavnani

Show resolved Hide resolved tools/toolchains/arm.py

@0xc0170 0xc0170 added needs: CI and removed needs: review labels Jan 28, 2019

@0xc0170

This comment has been minimized.

Copy link
Member

0xc0170 commented Jan 28, 2019

Ci started

@mbed-ci

This comment has been minimized.

Copy link

mbed-ci commented Jan 28, 2019

Test run: FAILED

Summary: 1 of 12 test jobs failed
Build number : 1
Build artifacts

Failed test jobs:

  • jenkins-ci/mbed-os-ci_greentea-test

@cmonr cmonr added the needs: work label Jan 28, 2019

@cmonr cmonr removed the needs: CI label Jan 28, 2019

@cmonr

This comment has been minimized.

Copy link
Contributor

cmonr commented Jan 28, 2019

@deepikabhavnani Could you take a look at the greentea test failures?

@cmonr

This comment has been minimized.

Copy link
Contributor

cmonr commented Jan 28, 2019

CI job restarted: jenkins-ci/mbed-os-ci_greentea-test

@cmonr cmonr added needs: CI and removed needs: work labels Jan 28, 2019

@0xc0170

This comment has been minimized.

Copy link
Member

0xc0170 commented Jan 29, 2019

Restarted again

K66F failure, @ARMmbed/mbed-os-test we reported earlier today similar failures in another PR, related to kinetis devices

@0xc0170

This comment has been minimized.

Copy link
Member

0xc0170 commented Jan 29, 2019

Based on the changes, I marked this to 5.11.4. But Refactor in PR type would go to the next feature release.

@cmonr

This comment has been minimized.

Copy link
Contributor

cmonr commented Jan 29, 2019

@deepikabhavnani I'm confused by #9480 (comment). Should this build not have succeeded?

@cmonr cmonr added needs: review and removed ready for merge labels Jan 29, 2019

@deepikabhavnani

This comment has been minimized.

Copy link
Contributor Author

deepikabhavnani commented Jan 29, 2019

@cmonr - Sorry comment on wrong PR.. Will delete it to avoid confusion

@cmonr cmonr added ready for merge and removed needs: review labels Jan 30, 2019

@cmonr cmonr merged commit c9e00cf into ARMmbed:master Jan 31, 2019

24 checks passed

continuous-integration/jenkins/pr-head This commit looks good
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
jenkins-ci/build-ARM Success
Details
jenkins-ci/build-ARMC6 Success
Details
jenkins-ci/build-GCC_ARM Success
Details
jenkins-ci/build-IAR Success
Details
jenkins-ci/cloud-client-test Success
Details
jenkins-ci/dynamic-memory-usage RTOS ROM(+0 bytes) RAM(+0 bytes)
Details
jenkins-ci/exporter Success
Details
jenkins-ci/greentea-test Success
Details
jenkins-ci/mbed2-build-ARM Success
Details
jenkins-ci/mbed2-build-GCC_ARM Success
Details
jenkins-ci/mbed2-build-IAR Success
Details
jenkins-ci/unittests Success
Details
travis-ci/astyle Local astyle testing has passed
Details
travis-ci/docs Local docs testing has passed
Details
travis-ci/doxy-spellcheck Local doxy-spellcheck testing has passed
Details
travis-ci/events Passed, runtime is 9141 cycles (-1293 cycles)
Details
travis-ci/gitattributestest Local gitattributestest testing has passed
Details
travis-ci/include_check Local include_check testing has passed
Details
travis-ci/licence_check Local licence_check testing has passed
Details
travis-ci/littlefs Passed, code size is 8408B (+0.00%)
Details
travis-ci/psa-autogen Local psa-autogen testing has passed
Details
travis-ci/tools-py2.7 Local tools-py2.7 testing has passed
Details

@cmonr cmonr removed the ready for merge label Jan 31, 2019

@deepikabhavnani deepikabhavnani deleted the deepikabhavnani:core_arch_v8m branch Jan 31, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.