Skip to content

[Silicon Labs] Update to HAL and devices #3934

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 10 commits into from
Mar 24, 2017

Conversation

stevew817
Copy link
Contributor

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
Copy link
Contributor Author

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
Copy link
Contributor Author

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
Copy link
Contributor

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

},
"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"],
Copy link
Contributor

Choose a reason for hiding this comment

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

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

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.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fixed in latest commit

@stevew817 stevew817 force-pushed the siliconlabs/update_sdk_tbsense_12 branch from 1cac755 to 12b0ff2 Compare March 15, 2017 09:37
@stevew817
Copy link
Contributor Author

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

@0xc0170
Copy link
Contributor

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
Copy link

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

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));
Copy link
Contributor

Choose a reason for hiding this comment

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

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.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks! Will make note.

Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks @Patater !

@0xc0170
Copy link
Contributor

0xc0170 commented Mar 17, 2017

/morph test

@mbed-bot
Copy link

Result: FAILURE

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

/morph test

Output

mbed Build Number: 1694

Example Build failed!

@bridadan
Copy link
Contributor

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
Copy link

Result: FAILURE

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

/morph test

Output

mbed Build Number: 1696

Example Build failed!

@bridadan
Copy link
Contributor

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

@bridadan
Copy link
Contributor

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
Copy link
Contributor Author

You got IAR to crash? Congratulations! :D

@bridadan
Copy link
Contributor

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
Copy link
Contributor Author

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

@0xc0170
Copy link
Contributor

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
Copy link
Contributor Author

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

@0xc0170
Copy link
Contributor

0xc0170 commented Mar 20, 2017

/morph test

@mbed-bot
Copy link

Result: FAILURE

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

/morph test

Output

mbed Build Number: 1704

Example Build failed!

@stevew817
Copy link
Contributor Author

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

@stevew817
Copy link
Contributor Author

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

Steven Cooreman and others added 4 commits March 20, 2017 16:34
@stevew817 stevew817 force-pushed the siliconlabs/update_sdk_tbsense_12 branch from d1dcfd4 to 32e5587 Compare March 20, 2017 15:36
@0xc0170
Copy link
Contributor

0xc0170 commented Mar 20, 2017

retest uvisor

@0xc0170
Copy link
Contributor

0xc0170 commented Mar 20, 2017

/morph test

@mbed-bot
Copy link

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
Copy link
Contributor Author

Finally! 👍

@0xc0170
Copy link
Contributor

0xc0170 commented Mar 21, 2017

retest uvisor

@0xc0170
Copy link
Contributor

0xc0170 commented Mar 21, 2017

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

@stevew817
Copy link
Contributor Author

@0xc0170 Yay, all green.

@0xc0170
Copy link
Contributor

0xc0170 commented Mar 21, 2017

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

* 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
* Reduce verbosity of EFR32 radio driver when debug tracing is on.
* Correctly pass pending bit of received ACK to the stack.
Removing device_name for devices that haven't shown up in the Keil package manager yet to avoid Travis from tripping on our PR
As asked by @0xc0170 in PR ARMmbed#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 siliconlabs/update_sdk_tbsense_12 branch from 32e5587 to d217357 Compare March 21, 2017 15:25
@stevew817
Copy link
Contributor Author

@0xc0170 Squashed

@0xc0170
Copy link
Contributor

0xc0170 commented Mar 21, 2017

/morph test

@mbed-bot
Copy link

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
adbridge pushed a commit that referenced this pull request Mar 24, 2017
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 pushed a commit that referenced this pull request Mar 24, 2017
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.
aisair pushed a commit to aisair/mbed that referenced this pull request Apr 30, 2024
Ports for Upcoming Targets

3934: [Silicon Labs] Update to HAL and devices ARMmbed/mbed-os#3934

Known Issues

There is an issue with LPC1768 failing the 'Semihost file system' test with this release.

Fixes and Changes

3691: [TLS / hw acceleration] AES ECB for NUCLEO_F439ZI ARMmbed/mbed-os#3691
3869: NCS36510: Default range changed from 0 to 950mV - ADC  ARMmbed/mbed-os#3869
3893: [STM32F7] Update STM32 Cube version v1.6.0 ARMmbed/mbed-os#3893
3917: Fix  mistake register setting in serial_format() ARMmbed/mbed-os#3917
3927: [DELTA_DFBM_NQ620] Add RC calibration setting and revise mbed_overrides.c ARMmbed/mbed-os#3927
3918: [NUC472/M453] Support unique locally administered MAC address and other driver updates ARMmbed/mbed-os#3918
3920: Heap size adjusted to work for both tls-client and mbed-client ARMmbed/mbed-os#3920
3969: NUCLEO_F302R8: Add missing PB_8/PB_9 CAN pins ARMmbed/mbed-os#3969
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.

7 participants