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

[Silicon Labs] Update to HAL and devices #3934

Merged
merged 10 commits into from Mar 24, 2017

Conversation

Projects
None yet
7 participants
@stevew817
Contributor

stevew817 commented Mar 14, 2017

Description

  • Updating the HAL to use the newest version of the Gecko SDK (5.1.2) and the Radio Library (1.5.1).
  • Adding target support for the newly-released EFM32PG12 STK.
  • Adding target support for the in-development Thunderboard Sense 12

Status

READY

Tests

Tests are running, will attach results as separate text file to a PR comment.

@stevew817

This comment has been minimized.

Contributor

stevew817 commented Mar 14, 2017

Testing finished on EFM32PG12_STK3402. Please note that the failures reported are all due to a known issue, where the lp_ticker test is basically invalid when going to deepsleep (because there is no second timebase available to reference against). This is discussed in #3215

EFM32PG_STK3402 results.txt

@stevew817

This comment has been minimized.

Contributor

stevew817 commented Mar 14, 2017

Second note: EFM32PG12 is the platform @akselsm and I will be leveraging for the partner workshop in two weeks, so it would be nice to get this PR reviewed by then.

@0xc0170

This comment has been minimized.

Member

0xc0170 commented Mar 15, 2017

Can you remove the merge commit (rebase ) ?

Cam-CI fails (I could not get the test from uvisor CI) but this is the report:

16:48:57 +-------------------------+-----------------+------------+---------+--------------------+-------------+
16:48:57 | target                  | platform_name   | test suite | result  | elapsed_time (sec) | copy_method |
16:48:57 +-------------------------+-----------------+------------+---------+--------------------+-------------+
16:48:57 | EFM32GG_STK3700-GCC_ARM | EFM32GG_STK3700 | 1          | TIMEOUT | 70.41              | shell       |
16:48:57 +-------------------------+-----------------+------------+---------+--------------------+-------------+
16:48:57 mbedgt: test suite results: 1 TIMEOUT
16:48:57 mbedgt: test case report:
16:48:57 +-------------------------+-----------------+------------+-----------+--------+--------+--------+--------------------+
16:48:57 | target                  | platform_name   | test suite | test case | passed | failed | result | elapsed_time (sec) |
16:48:57 +-------------------------+-----------------+------------+-----------+--------+--------+--------+--------------------+
16:48:57 | EFM32GG_STK3700-GCC_ARM | EFM32GG_STK3700 | 1          | 1         | 0      | 1      | ERROR  | 70.41              |
16:48:57 +-------------------------+-----------------+------------+-----------+--------+--------+--------+--------------------+
16:48:57 mbedgt: test case results: 1 ERROR
16:48:57 mbedgt: completed in 75.10 sec
16:48:57 mbedgt: exited with code 1
targets/targets.json Outdated
},
"THUNDERBOARD_SENSE_12": {
"inherits": ["EFR32MG12P332F1024GL125"],
"device_has": ["AES", "SHA", "ECC", "SL_PTI", "RF_2P4GHZ", "ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],

This comment has been minimized.

@0xc0170

0xc0170 Mar 15, 2017

Member

the first 5 are not valid device_has values ? I don't remember having DEVICE_AES. They should be defined via macros ?

This comment has been minimized.

@stevew817

stevew817 Mar 15, 2017

Contributor

I thought it made more logical sense to use the device_has infrastructure present in the tooling for indicating device functionality. But okay, I can move to macros.

This comment has been minimized.

@stevew817

stevew817 Mar 20, 2017

Contributor

Fixed in latest commit

@stevew817 stevew817 force-pushed the stevew817:siliconlabs/update_sdk_tbsense_12 branch Mar 15, 2017

@stevew817

This comment has been minimized.

Contributor

stevew817 commented Mar 15, 2017

Did the rebase.
Do you have more details on the EFM32GG fail?

@0xc0170

This comment has been minimized.

Member

0xc0170 commented Mar 16, 2017

@mazimkhan Can you please look at the uvisor CI failure? I can't find a reason for the TIMEOUT (hw failure ?).

@mazimkhan

This comment has been minimized.

Contributor

mazimkhan commented Mar 16, 2017

@Patater can you please have a look. This PR repeatedly fails on efm32gg target.

targets/TARGET_Silicon_Labs/TARGET_EFM32/emlib/src/em_system.c Outdated
uint32_t pid0 = SECURE_READ(&(ROMTABLE->PID0));
uint32_t pid1 = SECURE_READ(&(ROMTABLE->PID1));
uint32_t pid2 = SECURE_READ(&(ROMTABLE->PID2));
uint32_t pid3 = SECURE_READ(&(ROMTABLE->PID3));

This comment has been minimized.

@Patater

Patater Mar 16, 2017

Contributor

uVisor won't work if SECURE_READ is no longer used. This is why uVisor CI is failing. Please ensure that the SECURE macros continue to be used across updates to the Gecko SDK.

This comment has been minimized.

@stevew817

stevew817 Mar 16, 2017

Contributor

Thanks! Will make note.

This comment has been minimized.

@0xc0170
@0xc0170

This comment has been minimized.

Member

0xc0170 commented Mar 17, 2017

/morph test

@mbed-bot

This comment has been minimized.

mbed-bot commented Mar 17, 2017

Result: FAILURE

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

/morph test

Output

mbed Build Number: 1694

Example Build failed!

@bridadan

This comment has been minimized.

Contributor

bridadan commented Mar 17, 2017

I'm honestly not sure why the example build failed here. The log didn't print any useful information. I'm restarting it now.

/morph test

@mbed-bot

This comment has been minimized.

mbed-bot commented Mar 17, 2017

Result: FAILURE

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

/morph test

Output

mbed Build Number: 1696

Example Build failed!

@bridadan

This comment has been minimized.

Contributor

bridadan commented Mar 17, 2017

Ok something's up, I'm looking into it.

@bridadan

This comment has been minimized.

Contributor

bridadan commented Mar 17, 2017

Well this is interesting! I wasn't able to reproduce this on my local machine, only on the CI machine. Even though we're using the exact same build of IAR.

$ "C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.5\arm\bin\iasmarm" --cpu Cortex-M4F -DNRF52 -D__FPU_PRESENT=1 -D__MBED_CMSIS_RTOS_CM -D__CMSIS_RTOS -DBOARD_PCA10040 -DNRF52_PAN_12 -DNRF52_PAN_15 -DNRF52_PAN_58 -DNRF52_PAN_55 -DNRF52_PAN_54 -DARM_MATH_CM4 -DNRF52_PAN_30 -DNRF52_PAN_51 -DNRF52_PAN_36 -DNRF52_PAN_53 -DTARGET_NRF52832 -D__CORTEX_M4 -DNRF52_PAN_63 -DCONFIG_GPIO_AS_PINRESET -DBLE_STACK_SUPPORT_REQD -DSWI_DISABLE0 -DNRF52_PAN_20 -DNRF52_PAN_64 -DSOFTDEVICE_PRESENT -DNRF52_PAN_62 -DS132 -DNRF52_PAN_31 -f .\BUILD\DELTA_DFBM_NQ620\IAR\.includes_ba7ee9369ef8a806ba32c0ee73c31779.txt -o .\BUILD\DELTA_DFBM_NQ620\IAR\mbed-os\targets\TARGET_NORDIC\TARGET_NRF5\TARGET_MCU_NRF52832\device\TOOLCHAIN_IAR\startup_NRF52832_IAR.o .\mbed-os\targets\TARGET_NORDIC\TARGET_NRF5\TARGET_MCU_NRF52832\device\TOOLCHAIN_IAR\startup_NRF52832_IAR.s

    IAR Assembler V7.80.1.11864/W32 for ARM
    Copyright 1999-2016 IAR Systems AB.

Errors:   0
Warnings: 0
Bytes: 336

               * * *   I N T E R N A L   E R R O R   * * *

In function: Assembler
Diagnostic: non-initialized parameter
Line: 379   P0: 0    P1: 0

Dear User,
please send us a copy of the source file(s) that were assembled when
the internal error occurred.  Even better is if you could try to
pinpoint the problem with a small sample program.
In addition to the source file(s) we would like to receive information on:
  1. Error message (as above)
  2. Software version (see sign-on message)
  3. Command-line including any .xcl file used
  4. Hardware (memory etc.) and operating system version
  5. Where and when you bought the software
Please report this error to your distributor or the nearest IAR
Systems office. For further information please see the Software
Performance Report that can be found in your manual.


                           T H A N K   Y O U !
@stevew817

This comment has been minimized.

Contributor

stevew817 commented Mar 17, 2017

You got IAR to crash? Congratulations! :D

@bridadan

This comment has been minimized.

Contributor

bridadan commented Mar 17, 2017

Ok, I've spent a good 3 hours trying to narrow down what has gone wrong here, but I've yet to come up with something 100% concrete. But so far here is the closest I have to a reproducible test case:

  • This seems to only happen on Windows 10
    • So far I haven't been able to reproduce this on Windows 7
  • It may be related to some recent Windows 10 updates since I don't think this was a problem before
  • The working directory should be 65 characters long (including the project name). Crazily enough, it seems like this affects the failure rate significantly. I often thought I had fixed the problem when really I just had a directory structure that wasn't 65 characters.
    1. I've been using the following since that's what the CI uses: C:\Jenkins\workspace\bm_wrap\1778\examples\mbed-os-example-blinky
  • I've only reproduced this with IAR for the DELTA_DFBM_NQ620 target
  • Using IAR version IAR ANSI C/C++ Compiler V7.80.1.11864/W32 for ARM

Run the following commands to reproduce:

mkdir C:\Jenkins\workspace\bm_wrap\1778\examples
cd C:\Jenkins\workspace\bm_wrap\1778\examples
mbed import mbed-os-example-blinky
cd mbed-os-example-blinky/mbed-os
git fetch origin master
git checkout origin/master
cd ../
mbed compile -m DELTA_DFBM_NQ620 -t IAR --clean -v

This sometimes still passes, but it seems to fail more often than not.

It looks like there are more Windows updates in the update queue, so I may try installing those. Hoping Microsoft has fixed anything that they may have broke.

That's it for now, not sure how much time I'll have to examine this further. Would really appreciate it if someone else running Windows 10 could try the steps above and verify!

@stevew817

This comment has been minimized.

Contributor

stevew817 commented Mar 18, 2017

Has this anything to do with the PR? I didn't touch any common files nor NRF ones...

@0xc0170

This comment has been minimized.

Member

0xc0170 commented Mar 20, 2017

Any tests results for this pull request (as this is a new target, would be nice to run tests and share test results), ci test shield tests ?

@stevew817

This comment has been minimized.

Contributor

stevew817 commented Mar 20, 2017

@0xc0170 test results in first reply on this PR :)

@0xc0170

This comment has been minimized.

Member

0xc0170 commented Mar 20, 2017

/morph test

@mbed-bot

This comment has been minimized.

mbed-bot commented Mar 20, 2017

Result: FAILURE

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

/morph test

Output

mbed Build Number: 1704

Example Build failed!

@stevew817

This comment has been minimized.

Contributor

stevew817 commented Mar 20, 2017

Same issue with the one NRF-based target failing on IAR.
@bridadan @0xc0170 That shouldn't impact this PR?

@stevew817

This comment has been minimized.

Contributor

stevew817 commented Mar 20, 2017

Also, why did #3939 pass? I'll try to rebase onto master once more.

Steven Cooreman and others added some commits Mar 13, 2017

@stevew817 stevew817 force-pushed the stevew817:siliconlabs/update_sdk_tbsense_12 branch Mar 20, 2017

@0xc0170

This comment has been minimized.

Member

0xc0170 commented Mar 20, 2017

retest uvisor

@0xc0170

This comment has been minimized.

Member

0xc0170 commented Mar 20, 2017

/morph test

@mbed-bot

This comment has been minimized.

mbed-bot commented Mar 20, 2017

Result: SUCCESS

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

/morph test

Output

mbed Build Number: 1705

All builds and test passed!

@stevew817

This comment has been minimized.

Contributor

stevew817 commented Mar 20, 2017

Finally! 👍

@0xc0170

This comment has been minimized.

Member

0xc0170 commented Mar 21, 2017

retest uvisor

@0xc0170

This comment has been minimized.

Member

0xc0170 commented Mar 21, 2017

@mazimkhan To be aware - uvisor CI failed with an exception (tools problem ?). I re-triggered the job

@stevew817

This comment has been minimized.

Contributor

stevew817 commented Mar 21, 2017

@0xc0170 Yay, all green.

@0xc0170 0xc0170 removed the needs: review label Mar 21, 2017

@0xc0170

This comment has been minimized.

Member

0xc0170 commented Mar 21, 2017

@stevew817 Do you want to rebase some commits ("copypasta" like ) ?

stevew817 added some commits Mar 14, 2017

Bugfix for EFM32PG12 and EFR32MG12
* Off by one error in the linker scripts reserved one word too little for the vector table
* Re-apply uvisor changes to emlib. To allow uvisor to run, we should make accesses to the romtable through uvisor's secure read gateway
* Copypasta in target name (EFM32PG12, not EFR32PG12)
* Copypasta in the pin definitions (thanks @akselsm)
* Forgot to update PortName for extra ports on MG/PG12
EFR32 radio driver small fixes
* Reduce verbosity of EFR32 radio driver when debug tracing is on.
* Correctly pass pending bit of received ACK to the stack.
Pass Travis
Removing device_name for devices that haven't shown up in the Keil package manager yet to avoid Travis from tripping on our PR
Stop using device_has for non-mbed options
As asked by @0xc0170 in PR #3934, we won't be using device_has for indicating RF/Crypto features any longer. RF config options moved to the SL_RAIL lib.json, crypto config options will come with mbedTLS integration.

@stevew817 stevew817 force-pushed the stevew817:siliconlabs/update_sdk_tbsense_12 branch to d217357 Mar 21, 2017

@stevew817

This comment has been minimized.

Contributor

stevew817 commented Mar 21, 2017

@0xc0170 Squashed

@0xc0170

This comment has been minimized.

Member

0xc0170 commented Mar 21, 2017

/morph test

@mbed-bot

This comment has been minimized.

mbed-bot commented Mar 21, 2017

Result: SUCCESS

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

/morph test

Output

mbed Build Number: 1710

All builds and test passed!

@adbridge adbridge merged commit 35a5612 into ARMmbed:master Mar 24, 2017

4 checks passed

Cam-CI uvisor Build & Test Success
Details
ci/morph-test Job has completed
Details
continuous-integration/jenkins/pr-head This commit looks good
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details

adbridge added a commit that referenced this pull request Mar 24, 2017

Stop using device_has for non-mbed options
As asked by @0xc0170 in PR #3934, we won't be using device_has for indicating RF/Crypto features any longer. RF config options moved to the SL_RAIL lib.json, crypto config options will come with mbedTLS integration.

adbridge added a commit that referenced this pull request Mar 24, 2017

Stop using device_has for non-mbed options
As asked by @0xc0170 in PR #3934, we won't be using device_has for indicating RF/Crypto features any longer. RF config options moved to the SL_RAIL lib.json, crypto config options will come with mbedTLS integration.

@deepikabhavnani deepikabhavnani referenced this pull request Aug 25, 2017

Closed

disable the combination of st-iar-mesh example #4964

0 of 1 task complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment