Skip to content

Reorganize SoftDevices for NRF52 series #6826

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 2 commits into from
May 21, 2018
Merged

Reorganize SoftDevices for NRF52 series #6826

merged 2 commits into from
May 21, 2018

Conversation

marcuschangarm
Copy link
Contributor

@marcuschangarm marcuschangarm commented May 6, 2018

Description

New directory structure:

  • TARGET_SOFTDEVICE_COMMON
  • TARGET_SOFTDEVICE_S112
  • TARGET_SOFTDEVICE_S132_FULL (MBR + SoftDevice, default)
  • TARGET_SOFTDEVICE_S132_OTA (SoftDevice only, for firmware updates)
  • TARGET_SOFTDEVICE_S132_MBR (MBR only, for bootloader builds)
  • TARGET_SOFTDEVICE_S140_FULL (MBR + SoftDevice, default)
  • TARGET_SOFTDEVICE_S140_OTA (SoftDevice only, for firmware updates)
  • TARGET_SOFTDEVICE_S140_MBR (MBR only, for bootloader builds)
  • TARGET_SOFTDEVICE_NONE

The X_OTA and X_MBR binaries are obtained from the original x_FULL SoftDevice
by splitting it in an MBR part and a SoftDevice part. The MBR is needed for
the bootloader and the SoftDevice for firmware updates.

Build application without SoftDevice:

  "target_overrides": {
      "*": {
          "target.extra_labels_remove": ["SOFTDEVICE_COMMON", "SOFTDEVICE_X_FULL"],
          "target.extra_labels_add": ["SOFTDEVICE_NONE"]
      }
  }

Build application for firmware update using SoftDevice X:

  "target_overrides": {
      "*": {
          "target.extra_labels_remove": ["SOFTDEVICE_X_FULL"],
          "target.extra_labels_add": ["SOFTDEVICE_X_OTA"]
      }
  }

Build bootloader without SoftDevice X:

  "target_overrides": {
      "*": {
          "target.extra_labels_remove": ["SOFTDEVICE_X_FULL"],
          "target.extra_labels_add": ["SOFTDEVICE_X_MBR"]
      }
  }

Pull request type

[ ] Fix
[x] Refactor
[ ] New target
[ ] Feature
[x] Breaking change

@0xc0170 0xc0170 requested a review from donatieng May 7, 2018 09:02
@0xc0170
Copy link
Contributor

0xc0170 commented May 7, 2018

@marcuschangarm How this breaks the current apps? Can it be made backward compatible ?

@marcuschangarm
Copy link
Contributor Author

Its not more breaking than the 5.9 stuff we've been doing! 😄
Just wanted to make sure it got tagged correctly.

@cmonr
Copy link
Contributor

cmonr commented May 7, 2018

There sure are a bunch of new hex files and bootloaders. Would it be possible to comment in the commit message as to how they were generated?

@cmonr
Copy link
Contributor

cmonr commented May 7, 2018

Build application without SoftDevice:

Shouldn't this be the default action for Nordic devices instead of needing to explicity add it to target_overrides?

@marcuschangarm
Copy link
Contributor Author

Added:

The x_OTA and x_MBR binaries are obtained from the original x_FULL SoftDevice
by splitting it in an MBR part and a SoftDevice part. The MBR is needed for
the bootloader and the SoftDevice for firmware updates.

@marcuschangarm
Copy link
Contributor Author

Build application without SoftDevice:

Shouldn't this be the default action for Nordic devices instead of needing to explicity add it to target_overrides?

That would be a deviation from what we have done since the first NRF51.

@cmonr
Copy link
Contributor

cmonr commented May 8, 2018

/morph build

@mbed-ci
Copy link

mbed-ci commented May 8, 2018

Build : FAILURE

Build number : 1950
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/6826/

@cmonr
Copy link
Contributor

cmonr commented May 8, 2018

/morph build

@mbed-ci
Copy link

mbed-ci commented May 8, 2018

Build : FAILURE

Build number : 1951
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/6826/

@studavekar
Copy link
Contributor

/morph build

@mbed-ci
Copy link

mbed-ci commented May 8, 2018

Build : FAILURE

Build number : 1953
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/6826/

@cmonr
Copy link
Contributor

cmonr commented May 8, 2018

Looks like something different went wrong with the CI.

@marcuschangarm
Copy link
Contributor Author

/morph build

@mbed-ci
Copy link

mbed-ci commented May 9, 2018

Build : FAILURE

Build number : 1967
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/6826/

@marcuschangarm
Copy link
Contributor Author

/morph build

@mbed-ci
Copy link

mbed-ci commented May 10, 2018

Build : SUCCESS

Build number : 1973
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/6826/

Triggering tests

/morph test
/morph uvisor-test
/morph export-build
/morph mbed2-build

@mbed-ci
Copy link

mbed-ci commented May 10, 2018

@marcuschangarm
Copy link
Contributor Author

/morph test

@mbed-ci
Copy link

mbed-ci commented May 11, 2018

@mbed-ci
Copy link

mbed-ci commented May 11, 2018

@marcuschangarm
Copy link
Contributor Author

/morph build

@mbed-ci
Copy link

mbed-ci commented May 14, 2018

@0xc0170
Copy link
Contributor

0xc0170 commented May 14, 2018

The failure for export is the same one as previous one. We have seen it on master, was fixed a week ago. Can you test locally on your branch, or shall it be rebased (however CI merges this with the destination branch) so should not be there at all.

@theotherjimmy @studavekar Please look at this

@studavekar
Copy link
Contributor

The failure for export is the same one as previous one. We have seen it on master, was fixed a week ago. Can you test locally on your branch, or shall it be rebased (however CI merges this with the destination branch) so should not be there at all.

@theotherjimmy @studavekar Please look at this

The fix #6713 for error startup_nrf52832.S: error: A3907U: Via file '.\build\startup_nrf52832._ia' command too long for buffer.

looks like still the commandline is too long to handle.

@marcuschangarm
Copy link
Contributor Author

I'm undoing the nested folder structure and keeping the directories flat. The PR will be about adding the MBR and OTA binaries.

@marcuschangarm
Copy link
Contributor Author

@donatieng

any chance you could add a README explaining how you split up the MBR/Softdevice?

Sure, I literally just copy pasted it in an intel hex editor.

@marcuschangarm
Copy link
Contributor Author

@0xc0170

Note, with all these updates, we need to make sure the release notes contain sufficient details for these changes (how nrf52 update from the current minor release to the one that this is in - as there are quite changes and won't be that trivial, will it?).

I can collect a list with changes. The major changes have been to things that didn't work correctly to begin or to people that for some reason have linked directly to files in the SDK.

@marcuschangarm
Copy link
Contributor Author

/morph build

@mbed-ci
Copy link

mbed-ci commented May 16, 2018

Build : SUCCESS

Build number : 2032
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/6826/

Triggering tests

/morph test
/morph uvisor-test
/morph export-build
/morph mbed2-build

@mbed-ci
Copy link

mbed-ci commented May 16, 2018

@mbed-ci
Copy link

mbed-ci commented May 16, 2018

@marcuschangarm
Copy link
Contributor Author

/morph test
/morph export-build

@marcuschangarm
Copy link
Contributor Author

/morph test

@mbed-ci
Copy link

mbed-ci commented May 16, 2018

@marcuschangarm
Copy link
Contributor Author

/morph test

@mbed-ci
Copy link

mbed-ci commented May 17, 2018

New directory structure:

 * TARGET_SOFTDEVICE_COMMON
 * TARGET_SOFTDEVICE_S112
 * TARGET_SOFTDEVICE_S132_FULL (MBR + SoftDevice, default)
 * TARGET_SOFTDEVICE_S132_OTA (SoftDevice only, for firmware updates)
 * TARGET_SOFTDEVICE_S132_MBR (MBR only, for bootloader builds)
 * TARGET_SOFTDEVICE_S140_FULL (MBR + SoftDevice, default)
 * TARGET_SOFTDEVICE_S140_OTA (SoftDevice only, for firmware updates)
 * TARGET_SOFTDEVICE_S140_MBR (MBR only, for bootloader builds)
 * TARGET_SOFTDEVICE_NONE

The X_OTA and X_MBR binaries are obtained from the original x_FULL SoftDevice
by splitting it in an MBR part and a SoftDevice part. The MBR is needed for
the bootloader and the SoftDevice for firmware updates.

Build application without SoftDevice:

  "target_overrides": {
      "*": {
          "target.extra_labels_remove": ["SOFTDEVICE_COMMON", "SOFTDEVICE_X_FULL"],
          "target.extra_labels_add": ["SOFTDEVICE_NONE"]
      }
  }

Build application for firmware update using SoftDevice X:

  "target_overrides": {
      "*": {
          "target.extra_labels_remove": ["SOFTDEVICE_X_FULL"],
          "target.extra_labels_add": ["SOFTDEVICE_X_OTA"]
      }
  }

Build bootloader without SoftDevice X:

  "target_overrides": {
      "*": {
          "target.extra_labels_remove": ["SOFTDEVICE_COMMON", "SOFTDEVICE_X_FULL"],
          "target.extra_labels_add": ["SOFTDEVICE_X_MBR"]
      }
  }
@marcuschangarm
Copy link
Contributor Author

/morph build

@mbed-ci
Copy link

mbed-ci commented May 17, 2018

Build : SUCCESS

Build number : 2058
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/6826/

Triggering tests

/morph test
/morph uvisor-test
/morph export-build
/morph mbed2-build

@cmonr
Copy link
Contributor

cmonr commented May 18, 2018

/morph test
/morph export-build

@mbed-ci
Copy link

mbed-ci commented May 18, 2018

@mbed-ci
Copy link

mbed-ci commented May 18, 2018

@cmonr cmonr merged commit 2fa6cb5 into ARMmbed:master May 21, 2018
@marcuschangarm marcuschangarm deleted the feature-ota branch May 25, 2018 17:59
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