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

cpu/sam0_common: flashpage: add functions to write to user config area / AUX page #14512

Merged
merged 9 commits into from
Nov 10, 2020

Conversation

benpicco
Copy link
Contributor

@benpicco benpicco commented Jul 14, 2020

Contribution description

SAM0 MCUs have a page in flash where the boot-up configuration of the MCU is stored.
The MCU configuration does not take up the entire space, but leaves some room that can be used for user configuraiton.
As this flash area will persist across re-flashes and bank switches, it is an ideal candidate to store e.g. MAC addresses or TRIM values.

On samd5x we have 480 bytes available for this, samd21 leaves us with 56 bytes at our disposal.

For writing to this area, I extended the flashpage driver.

To make the API easier to use, I implemented support for unaligned writes.
The MCU only supports writing whole words (4 bytes) to the flash write buffer, any 8 or 16 bit write will lead to a hard fault.
So we have to pad the unaligned start and end of a transfer with 0xFF, as writing that on flash is a no-op (we can only write 1 -> 0 bits, 0 -> 1 writes will be ignored).

The original flashpage API did not require this and would instead fail an assertion.
If we want to save code size, I can move the new unaligned _write_page to a separate function, so this feature is only available to the config section.

Testing procedure

Warning: It is theoretically possible to brick your MCU if you overwrite the factory settings.

Make sure tests/mtd_flashpage still works.

I did not include a test application yet, but functionality can be tested with

I added the commands test_config_page and dump_config_page to tests/periph_flashpage.

test_config_page will backup the vendor config, clear the config page, write back the vendor config and custom test data at the end of the config page.

So if you already have any custom data stored in there, that will be deleted (unlikely since that functionality was just added by this PR 😉)

old version
#include <stdio.h>
#include "periph_cpu.h"
#include "od.h"

int main(void)
{
    uint8_t buffer[5];

    for (unsigned i = 0; i < sizeof(buffer); ++i) {
        buffer[i] = i + 0xA1;
    }

    od_hex_dump((void*)NVMCTRL_USER, FLASH_USER_PAGE_SIZE, 0);

//    puts("clearing flash");
//    sam0_flashpage_aux_reset(NULL);
    puts("writing flash");
    sam0_flashpage_aux_write_raw(0x1E, buffer, sizeof(buffer));
    puts("done.");

    return 0;
}

This will print the contents of the user page and write a small buffer at an offset.
You should see it written when the flash page is dumped again after a reboot.

samr21-xpro
2020-07-14 16:31:54,394 # main(): This is RIOT! (Version: 2020.10-devel-31-ga32e4-cpu/sam0_common/nvm_user_page)
2020-07-14 16:31:54,402 # 00000000  FF  C7  E0  D8  5D  FC  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-14 16:31:54,407 # 00000010  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-14 16:31:54,414 # 00000020  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-14 16:31:54,420 # 00000030  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-14 16:31:54,422 # writing flash
2020-07-14 16:31:54,422 # done.
2020-07-14 16:31:57,729 # main(): This is RIOT! (Version: 2020.10-devel-31-ga32e4-cpu/sam0_common/nvm_user_page)
2020-07-14 16:31:57,735 # 00000000  FF  C7  E0  D8  5D  FC  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-14 16:31:57,742 # 00000010  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-14 16:31:57,751 # 00000020  FF  FF  FF  FF  FF  FF  A1  A2  A3  A4  A5  FF  FF  FF  FF  FF
2020-07-14 16:31:57,755 # 00000030  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-14 16:31:57,756 # writing flash
2020-07-14 16:31:57,757 # done.
saml10-xpro
2020-07-16 20:37:48,897 # main(): This is RIOT! (Version: 2020.10-devel-31-gff529-cpu/sam0_common/nvm_user_page)
2020-07-16 20:37:48,904 # 00000000  7F  43  8F  B0  BB  F8  FF  FF  FF  C0  F8  FF  FF  FF  FF  FF
2020-07-16 20:37:48,911 # 00000010  00  00  00  00  00  00  00  00  00  00  00  00  1E  65  33  84
2020-07-16 20:37:48,918 # 00000020  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:48,924 # 00000030  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:48,931 # 00000040  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:48,938 # 00000050  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:48,945 # 00000060  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:48,951 # 00000070  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:48,958 # 00000080  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:48,965 # 00000090  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:48,972 # 000000A0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:48,979 # 000000B0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:48,985 # 000000C0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:48,992 # 000000D0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:48,999 # 000000E0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:49,006 # 000000F0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:49,007 # writing flash
2020-07-16 20:37:49,008 # done.
2020-07-16 20:37:53,178 # main(): This is RIOT! (Version: 2020.10-devel-31-gff529-cpu/sam0_common/nvm_user_page)
2020-07-16 20:37:53,185 # 00000000  7F  43  8F  B0  BB  F8  FF  FF  FF  C0  F8  FF  FF  FF  FF  FF
2020-07-16 20:37:53,191 # 00000010  00  00  00  00  00  00  00  00  00  00  00  00  1E  65  33  84
2020-07-16 20:37:53,198 # 00000020  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:53,205 # 00000030  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  A1  A2
2020-07-16 20:37:53,212 # 00000040  A3  A4  A5  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:53,219 # 00000050  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:53,225 # 00000060  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:53,232 # 00000070  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:53,239 # 00000080  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:53,246 # 00000090  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:53,252 # 000000A0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:53,259 # 000000B0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:53,266 # 000000C0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:53,273 # 000000D0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:53,279 # 000000E0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:37:53,286 # 000000F0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
same54-xpro
2020-07-16 20:41:16,783 # main(): This is RIOT! (Version: 2020.10-devel-31-gec932f-cpu/sam0_common/nvm_user_page)
2020-07-16 20:41:16,789 # 00000000  39  92  9A  FE  80  FF  EC  AE  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,801 # 00000010  10  40  80  00  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,803 # 00000020  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,809 # 00000030  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,821 # 00000040  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,835 # 00000050  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,838 # 00000060  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,840 # 00000070  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,841 # 00000080  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,847 # 00000090  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,855 # 000000A0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,861 # 000000B0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,866 # 000000C0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,872 # 000000D0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,879 # 000000E0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,885 # 000000F0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,891 # 00000100  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,898 # 00000110  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,904 # 00000120  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,911 # 00000130  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,917 # 00000140  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,923 # 00000150  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,930 # 00000160  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,936 # 00000170  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,942 # 00000180  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  A1  A2
2020-07-16 20:41:16,949 # 00000190  A3  A4  A5  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  B1  B2
2020-07-16 20:41:16,955 # 000001A0  B3  B4  B5  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,962 # 000001B0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,968 # 000001C0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,974 # 000001D0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,981 # 000001E0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,987 # 000001F0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:16,988 # writing flash
2020-07-16 20:41:16,989 # done.
2020-07-16 20:41:21,111 # main(): This is RIOT! (Version: 2020.10-devel-31-gec932f-cpu/sam0_common/nvm_user_page)
2020-07-16 20:41:21,118 # 00000000  39  92  9A  FE  80  FF  EC  AE  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,124 # 00000010  10  40  80  00  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,131 # 00000020  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,137 # 00000030  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  A1  A2
2020-07-16 20:41:21,143 # 00000040  A3  A4  A5  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,150 # 00000050  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,156 # 00000060  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,163 # 00000070  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,169 # 00000080  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,175 # 00000090  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,182 # 000000A0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,188 # 000000B0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,194 # 000000C0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,201 # 000000D0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,207 # 000000E0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,213 # 000000F0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,220 # 00000100  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,226 # 00000110  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,233 # 00000120  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,239 # 00000130  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,245 # 00000140  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,252 # 00000150  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,258 # 00000160  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,264 # 00000170  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,271 # 00000180  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,277 # 00000190  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,284 # 000001A0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,290 # 000001B0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,296 # 000001C0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,303 # 000001D0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,309 # 000001E0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-07-16 20:41:21,315 # 000001F0  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF

Issues/PRs references

triggers #14929 (fixed by 1840972 ?)

@benpicco benpicco requested review from bergzand, dylad and fjmolinas July 14, 2020 14:52
@benpicco benpicco added Area: cpu Area: CPU/MCU ports Type: new feature The issue requests / The PR implemements a new feature for RIOT labels Jul 14, 2020
@benpicco benpicco force-pushed the cpu/sam0_common/nvm_user_page branch 2 times, most recently from ff529a2 to ec932fe Compare July 16, 2020 18:40
@benpicco benpicco force-pushed the cpu/sam0_common/nvm_user_page branch from ec932fe to ffa7136 Compare August 10, 2020 08:29
@benpicco benpicco added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Aug 10, 2020
@benpicco benpicco force-pushed the cpu/sam0_common/nvm_user_page branch from ffa7136 to 2dfd157 Compare August 21, 2020 13:26
@benpicco benpicco force-pushed the cpu/sam0_common/nvm_user_page branch from 4eea598 to f783a85 Compare September 8, 2020 14:16
@benpicco benpicco added State: waiting for CI update State: The PR requires an Update to CI to be performed first and removed State: waiting for CI update State: The PR requires an Update to CI to be performed first labels Sep 10, 2020
@benpicco benpicco force-pushed the cpu/sam0_common/nvm_user_page branch 2 times, most recently from 3e17d62 to a30e55a Compare September 22, 2020 14:50
@benpicco benpicco added State: waiting for CI update State: The PR requires an Update to CI to be performed first and removed State: waiting for CI update State: The PR requires an Update to CI to be performed first labels Sep 30, 2020
@benpicco benpicco force-pushed the cpu/sam0_common/nvm_user_page branch from b10e21a to b5913b7 Compare September 30, 2020 13:59
@benpicco benpicco added State: waiting for CI update State: The PR requires an Update to CI to be performed first and removed State: waiting for CI update State: The PR requires an Update to CI to be performed first labels Sep 30, 2020
@benpicco benpicco requested a review from jue89 October 2, 2020 11:11
@jue89
Copy link
Contributor

jue89 commented Oct 2, 2020

Sweet!

Currently, I'm really busy and this state will persist until Oct. the 13th. I won't be able to review your PRs before that date. (I've seen your other request, too.) Please ping me, if I haven't got around after that date!

@benpicco
Copy link
Contributor Author

Heh, looks like invalidating the cache after the write does the trick.

@jue89
Copy link
Contributor

jue89 commented Nov 3, 2020

Quick test on samr30-xpro:

> dump_config_page
2020-11-03 22:47:54,501 #  dump_config_page
2020-11-03 22:47:54,507 # 00000000  FF  86  1E  B1  BB  F8  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-11-03 22:47:54,514 # 00000010  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-11-03 22:47:54,521 # 00000020  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-11-03 22:47:54,527 # 00000030  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
> test_config_page
2020-11-03 22:50:01,180 #  test_config_page
2020-11-03 22:50:01,181 # [START]
2020-11-03 22:50:01,184 # [SUCCESS]
> dump_config_page
2020-11-03 22:50:12,548 #  dump_config_page
2020-11-03 22:50:12,555 # 00000000  FF  86  1E  B1  BB  F8  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-11-03 22:50:12,562 # 00000010  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-11-03 22:50:12,568 # 00000020  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
2020-11-03 22:50:12,575 # 00000030  FF  FF  FF  FF  FF  FF  FF  FF  FF  AA  BB  CC  DD  EE  34  12

@benpicco benpicco removed the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Nov 5, 2020
@fjmolinas fjmolinas self-assigned this Nov 10, 2020
@benpicco benpicco removed the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Nov 10, 2020
@fjmolinas
Copy link
Contributor

Please squash @benpicco

@fjmolinas fjmolinas added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Nov 10, 2020
@benpicco benpicco force-pushed the cpu/sam0_common/nvm_user_page branch from 716a83d to 8a1d8d0 Compare November 10, 2020 10:24
@benpicco
Copy link
Contributor Author

Rebased to add Kconfig to sys/od so it can be selected.

sys/Kconfig Outdated Show resolved Hide resolved
@benpicco benpicco force-pushed the cpu/sam0_common/nvm_user_page branch from 1b540f8 to b66e782 Compare November 10, 2020 12:24
@benpicco benpicco force-pushed the cpu/sam0_common/nvm_user_page branch from b66e782 to b9e61fd Compare November 10, 2020 13:21
Copy link
Contributor

@fjmolinas fjmolinas left a comment

Choose a reason for hiding this comment

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

ACK

@fjmolinas fjmolinas merged commit 6ed397b into RIOT-OS:master Nov 10, 2020
@benpicco benpicco deleted the cpu/sam0_common/nvm_user_page branch November 10, 2020 19:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: cpu Area: CPU/MCU ports CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Type: new feature The issue requests / The PR implemements a new feature for RIOT
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants