samples: bluetooth: central_uart: sign nRF54LM20 Dongle image#27984
samples: bluetooth: central_uart: sign nRF54LM20 Dongle image#27984Damian-Nordic wants to merge 2 commits into
Conversation
CI InformationTo view the history of this post, click the 'edited' button above Inputs:Sources:sdk-nrf: PR head: b3a674235cc08ed688835e8f12107fca33f77542 more detailssdk-nrf:
Github labels
List of changed files detected by CI (10)Outputs:ToolchainVersion: 911f4c5c26 Test Spec & Results: ✅ Success; ❌ Failure; 🟠 Queued; 🟡 Progress; ◻️ Skipped;
|
ktaborowski
left a comment
There was a problem hiding this comment.
looks good, a minor improvement proposition in comments
cc9b887 to
2d5a199
Compare
2d5a199 to
bd39fb1
Compare
| # Copyright (c) 2026 Nordic Semiconductor ASA | ||
| # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause | ||
|
|
||
| config NRF54LM20DONGLE_BOOTLOADER |
There was a problem hiding this comment.
it is invalid to do things like this, use a board variant if you want builds with and without support for this, if you just want this to always be available then replace Kconfig with the name of the board, remove the prompt and type and just set the defaults from that
There was a problem hiding this comment.
Yes, we certainly want to be able to build the dongle with and without the bootloader (in case someone wants to use SWD for programming). But I don't want to introduce board variants as this is beyond the scope of my PR. So nevermind, I'll just use a file suffix in the sample if everything else is invalid.
There was a problem hiding this comment.
Reworked to what was implemented in dfu samples. If a general rework is needed, please create a JIRA ticket and assign to the board files' owners.
nRF54LM20 Dongle board already defines MCUmgr CDC ACM instance in DTS, so no need to define it in the fw_loader. In fact, that broke MCUmgr because CDC ACM serial driver would initialize a wrong instance. Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
nRF54LM20 Dongle image needs to be signed to be programmable with nRF Util (that uses MCUBoot firmware loader mode). As for now, this implies that MCUBoot build must be enabled for the dongle. Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no> Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
bd39fb1 to
b3a6742
Compare
|
You can find the documentation preview for this PR here. |
|
@nordicjm Please review. |
| /* This file modifies RRAM partitioning for MCUboot and firmware loader by | ||
| * extending slot0_partition (application image) to the end of RRAM. | ||
| * | ||
| * While the application may use extra partitions, such as storage_partition | ||
| * defined by default, this partitioning of application-dedicated region is | ||
| * irrelevant to the bootloader images. | ||
| */ |
There was a problem hiding this comment.
this is false? I don't follow this, the pre-programmed bootloader will not allow you to write this
There was a problem hiding this comment.
This is not false according to @tomchy and @nvlsianpu. MCUBoot and firmware loader don't care whether the application uses all its region for the code or for data.
There was a problem hiding this comment.
I wrote the feature, neither of them did. Configuring hello_world for this board with MCUboot gives the following for MCUboot:
/* node '/soc/rram-controller@5004e000/rram@0/partitions' defined in nrf/boards/nordic/nrf54lm20dong>
partitions {
compatible = "fixed-partitions"; /* in nrf/boards/nordic/nrf54lm20dongle/nrf54lm20dongle_nrf>
#address-cells = < 0x1 >; /* in nrf/boards/nordic/nrf54lm20dongle/nrf54lm20dongle_nrf>
#size-cells = < 0x1 >; /* in nrf/boards/nordic/nrf54lm20dongle/nrf54lm20dongle_nrf>
/* node '/soc/rram-controller@5004e000/rram@0/partitions/partition@0' defined in nrf/boards/>
boot_partition: partition@0 {
label = "mcuboot"; /* in nrf/boards/nordic/nrf54lm20dongle/nrf54lm20dongle_nrf54l>
reg = < 0x0 0x6000 >; /* in nrf/boards/nordic/nrf54lm20dongle/nrf54lm20dongle_nrf54l>
};
/* node '/soc/rram-controller@5004e000/rram@0/partitions/partition@6000' defined in nrf/boar>
slot1_partition: partition@6000 {
label = "image-1"; /* in nrf/boards/nordic/nrf54lm20dongle/nrf54lm20dongle_nr>
reg = < 0x6000 0x1d000 >; /* in nrf/boards/nordic/nrf54lm20dongle/nrf54lm20dongle_nr>
};
/* node '/soc/rram-controller@5004e000/rram@0/partitions/partition@23000' defined in nrf/boa>
slot0_partition: partition@23000 {
label = "image-0"; /* in nrf/boards/nordic/nrf54lm20dongle/nrf54lm20dongle_>
reg = < 0x23000 0x1ca000 >; /* in nrf/boards/nordic/nrf54lm20dongle/nrf54lm20dongle_>
};
/* node '/soc/rram-controller@5004e000/rram@0/partitions/partition@1ed000' defined in nrf/bo>
storage_partition: partition@1ed000 {
label = "storage"; /* in nrf/boards/nordic/nrf54lm20dongle/nrf54lm20dongle_>
reg = < 0x1ed000 0x10000 >; /* in nrf/boards/nordic/nrf54lm20dongle/nrf54lm20dongle_>
};
};
likewise the same for usb_mcumgr, and all that sample does is use MCUmgr's img mgmt which opens and writes to a partition, so unless the image build for the dongle is from an entirely different repo then their claim is false
There was a problem hiding this comment.
discussed f2f, the comment is not false per se, but the takeaway is that this layout should be configured by default in MCUboot and fw_loader for the dongle (not in the sample).
|
Will open another PR that contains a subset of changes without touching MCUboot and fw_loader partition layout. |
nRF54LM20 Dongle image needs to be signed to be programmable with nRF Util (that uses MCUBoot firmware loader mode). As for now, this implies that MCUBoot build must be enabled for the dongle.
Also, fix nRF54LM20 Dongle configuration for single_slot sample:
nRF54LM20 Dongle board already defines MCUmgr CDC ACM instance in DTS, so no need to define it in the fw_loader. In fact, that broke MCUmgr because CDC ACM serial driver would initialize a wrong instance.