Skip to content

Commit 94dd2de

Browse files
committed
report bootloader version in info_uf2.txt and add moddable_<board>
1 parent 2851b7c commit 94dd2de

17 files changed

Lines changed: 574 additions & 1 deletion

File tree

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
/*
2+
* The MIT License (MIT)
3+
*
4+
* Copyright (c) 2018 Ha Thach for Adafruit Industries
5+
*
6+
* Permission is hereby granted, free of charge, to any person obtaining a copy
7+
* of this software and associated documentation files (the "Software"), to deal
8+
* in the Software without restriction, including without limitation the rights
9+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
* copies of the Software, and to permit persons to whom the Software is
11+
* furnished to do so, subject to the following conditions:
12+
*
13+
* The above copyright notice and this permission notice shall be included in
14+
* all copies or substantial portions of the Software.
15+
*
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22+
* THE SOFTWARE.
23+
*/
24+
25+
#ifndef MODDABLE_ITSYBITSY_H
26+
#define MODDABLE_ITSYBITSY_H
27+
28+
#define BOOTLOADER_VER_MEM 0x200041D0
29+
30+
/*------------------------------------------------------------------*/
31+
/* LED
32+
*------------------------------------------------------------------*/
33+
#define LEDS_NUMBER 1
34+
#define LED_PRIMARY_PIN 6
35+
#define LED_STATE_ON 1
36+
37+
/*------------------------------------------------------------------*/
38+
/* BUTTON
39+
*------------------------------------------------------------------*/
40+
#define BUTTONS_NUMBER 2
41+
#define BUTTON_1 29
42+
#define BUTTON_2 33
43+
#define BUTTON_PULL NRF_GPIO_PIN_PULLUP
44+
45+
/*------------------------------------------------------------------*/
46+
/* QSPI
47+
*------------------------------------------------------------------*/
48+
// #define USE_QSPI_XIP 1
49+
50+
#define USE_QSPI 0
51+
#define USE_DFU_UART 0
52+
53+
#define QSPI_SCK_PIN NRF_GPIO_PIN_MAP(1,1)
54+
#define QSPI_CSN_PIN NRF_GPIO_PIN_MAP(1,2)
55+
#define QSPI_IO0_PIN NRF_GPIO_PIN_MAP(1,3)
56+
#define QSPI_IO1_PIN NRF_GPIO_PIN_MAP(1,4)
57+
#define QSPI_IO2_PIN NRF_GPIO_PIN_MAP(1,5)
58+
#define QSPI_IO3_PIN NRF_GPIO_PIN_MAP(1,6)
59+
60+
#define QSPI_XIP_START_ADDR 0x12000000
61+
62+
//--------------------------------------------------------------------+
63+
// BLE OTA
64+
//--------------------------------------------------------------------+
65+
#define BLEDIS_MANUFACTURER "Moddable Tech, Inc."
66+
#define BLEDIS_MODEL "Moddable itsybitsy"
67+
68+
//--------------------------------------------------------------------+
69+
// USB
70+
//--------------------------------------------------------------------+
71+
72+
73+
//#define USB_DESC_VID 0x1915
74+
//#define USB_DESC_UF2_PID 0x520F
75+
#define USB_DESC_VID 0xbeef
76+
#define USB_DESC_UF2_PID 0xcafe
77+
#define USB_DESC_CDC_ONLY_PID 0x002A
78+
79+
#define UF2_PRODUCT_NAME "Moddable on ItsyBitsy"
80+
#define UF2_BOARD_ID "moddable_itsybitsy-v1"
81+
#define UF2_INDEX_URL "https://www.moddable.com/product.php"
82+
83+
#define UF2_VOLUME_LABEL "MODDABLEnRF"
84+
85+
// Interface number, string index, EP Out & IN address, EP size
86+
#define TUD_MOD_VENDOR_DESCRIPTOR(_itfnum, _stridx, _epout, _epin, _epsize) \
87+
/* Interface */\
88+
9, TUSB_DESC_INTERFACE, _itfnum, 0, 2, TUSB_CLASS_VENDOR_SPECIFIC, CFG_TUD_VENDOR_SUBCLASS, 0x00, _stridx,\
89+
/* Endpoint Out */\
90+
7, TUSB_DESC_ENDPOINT, _epout, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0,\
91+
/* Endpoint In */\
92+
7, TUSB_DESC_ENDPOINT, _epin, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0
93+
#endif // MODDABLE_ITSYBITSY_H
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
MCU_SUB_VARIANT = nrf52840
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#include "boards.h"
2+
#include "uf2/configkeys.h"
3+
4+
__attribute__((used, section(".bootloaderConfig")))
5+
const uint32_t bootloaderConfig[] =
6+
{
7+
/* CF2 START */
8+
CFG_MAGIC0, CFG_MAGIC1, // magic
9+
5, 100, // used entries, total entries
10+
11+
204, 0x100000, // FLASH_BYTES = 0x100000
12+
205, 0x40000, // RAM_BYTES = 0x40000
13+
208, (USB_DESC_VID << 16) | USB_DESC_UF2_PID, // BOOTLOADER_BOARD_ID = USB VID+PID, used for verification when updating bootloader via uf2
14+
209, 0xada52840, // UF2_FAMILY = 0xada52840
15+
210, 0x20, // PINS_PORT_SIZE = PA_32
16+
17+
0, 0, 0, 0, 0, 0, 0, 0
18+
/* CF2 END */
19+
};
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
/*
2+
* The MIT License (MIT)
3+
*
4+
* Copyright (c) 2018 Ha Thach for Adafruit Industries
5+
*
6+
* Permission is hereby granted, free of charge, to any person obtaining a copy
7+
* of this software and associated documentation files (the "Software"), to deal
8+
* in the Software without restriction, including without limitation the rights
9+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
* copies of the Software, and to permit persons to whom the Software is
11+
* furnished to do so, subject to the following conditions:
12+
*
13+
* The above copyright notice and this permission notice shall be included in
14+
* all copies or substantial portions of the Software.
15+
*
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22+
* THE SOFTWARE.
23+
*/
24+
25+
#ifndef MODDABLE_MAKERDIARY_NRF52_H
26+
#define MODDABLE_MAKERDIARY_NRF52_H
27+
28+
#define BOOTLOADER_VER_MEM 0x200041D0
29+
30+
/*------------------------------------------------------------------*/
31+
/* LED
32+
*------------------------------------------------------------------*/
33+
#define LEDS_NUMBER 2
34+
#define LED_PRIMARY_PIN 22
35+
#define LED_SECONDARY_PIN 23
36+
#define LED_STATE_ON 0
37+
38+
/*------------------------------------------------------------------*/
39+
/* BUTTON
40+
*------------------------------------------------------------------*/
41+
#define BUTTONS_NUMBER 2
42+
#define BUTTON_1 11
43+
#define BUTTON_2 12
44+
#define BUTTON_PULL NRF_GPIO_PIN_PULLUP
45+
46+
/*------------------------------------------------------------------*/
47+
/* QSPI
48+
*------------------------------------------------------------------*/
49+
// #define USE_QSPI_XIP 1
50+
51+
#define USE_QSPI 0
52+
#define USE_DFU_UART 0
53+
54+
#define QSPI_SCK_PIN NRF_GPIO_PIN_MAP(1,1)
55+
#define QSPI_CSN_PIN NRF_GPIO_PIN_MAP(1,2)
56+
#define QSPI_IO0_PIN NRF_GPIO_PIN_MAP(1,3)
57+
#define QSPI_IO1_PIN NRF_GPIO_PIN_MAP(1,4)
58+
#define QSPI_IO2_PIN NRF_GPIO_PIN_MAP(1,5)
59+
#define QSPI_IO3_PIN NRF_GPIO_PIN_MAP(1,6)
60+
61+
#define QSPI_XIP_START_ADDR 0x12000000
62+
63+
//--------------------------------------------------------------------+
64+
// BLE OTA
65+
//--------------------------------------------------------------------+
66+
#define BLEDIS_MANUFACTURER "Moddable Tech, Inc."
67+
#define BLEDIS_MODEL "Moddable pca10056"
68+
69+
//--------------------------------------------------------------------+
70+
// USB
71+
//--------------------------------------------------------------------+
72+
73+
74+
//#define USB_DESC_VID 0x1915
75+
//#define USB_DESC_UF2_PID 0x520F
76+
#define USB_DESC_VID 0xbeef
77+
#define USB_DESC_UF2_PID 0xcafe
78+
#define USB_DESC_CDC_ONLY_PID 0x002A
79+
80+
#define UF2_PRODUCT_NAME "Moddable makerdiary nrf52"
81+
#define UF2_BOARD_ID "moddable_md_nrf52-v1"
82+
#define UF2_INDEX_URL "https://www.moddable.com/product.php"
83+
84+
#define UF2_VOLUME_LABEL "MODDABLEnRF"
85+
86+
// Interface number, string index, EP Out & IN address, EP size
87+
#define TUD_MOD_VENDOR_DESCRIPTOR(_itfnum, _stridx, _epout, _epin, _epsize) \
88+
/* Interface */\
89+
9, TUSB_DESC_INTERFACE, _itfnum, 0, 2, TUSB_CLASS_VENDOR_SPECIFIC, CFG_TUD_VENDOR_SUBCLASS, 0x00, _stridx,\
90+
/* Endpoint Out */\
91+
7, TUSB_DESC_ENDPOINT, _epout, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0,\
92+
/* Endpoint In */\
93+
7, TUSB_DESC_ENDPOINT, _epin, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0
94+
#endif // MODDABLE_MAKERDIARY_NRF52_H
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
MCU_SUB_VARIANT = nrf52840
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#include "boards.h"
2+
#include "uf2/configkeys.h"
3+
4+
__attribute__((used, section(".bootloaderConfig")))
5+
const uint32_t bootloaderConfig[] =
6+
{
7+
/* CF2 START */
8+
CFG_MAGIC0, CFG_MAGIC1, // magic
9+
5, 100, // used entries, total entries
10+
11+
204, 0x100000, // FLASH_BYTES = 0x100000
12+
205, 0x40000, // RAM_BYTES = 0x40000
13+
208, (USB_DESC_VID << 16) | USB_DESC_UF2_PID, // BOOTLOADER_BOARD_ID = USB VID+PID, used for verification when updating bootloader via uf2
14+
209, 0xada52840, // UF2_FAMILY = 0xada52840
15+
210, 0x20, // PINS_PORT_SIZE = PA_32
16+
17+
0, 0, 0, 0, 0, 0, 0, 0
18+
/* CF2 END */
19+
};
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
/*
2+
* The MIT License (MIT)
3+
*
4+
* Copyright (c) 2018 Ha Thach for Adafruit Industries
5+
*
6+
* Permission is hereby granted, free of charge, to any person obtaining a copy
7+
* of this software and associated documentation files (the "Software"), to deal
8+
* in the Software without restriction, including without limitation the rights
9+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
* copies of the Software, and to permit persons to whom the Software is
11+
* furnished to do so, subject to the following conditions:
12+
*
13+
* The above copyright notice and this permission notice shall be included in
14+
* all copies or substantial portions of the Software.
15+
*
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22+
* THE SOFTWARE.
23+
*/
24+
25+
#ifndef MODDABLE_PCA10056_H
26+
#define MODDABLE_PCA10056_H
27+
28+
#define BOOTLOADER_VER_MEM 0x200041D0
29+
30+
/*------------------------------------------------------------------*/
31+
/* LED
32+
*------------------------------------------------------------------*/
33+
#define LEDS_NUMBER 2
34+
#define LED_PRIMARY_PIN 13
35+
#define LED_SECONDARY_PIN 14
36+
#define LED_STATE_ON 0
37+
38+
/*------------------------------------------------------------------*/
39+
/* BUTTON
40+
*------------------------------------------------------------------*/
41+
#define BUTTONS_NUMBER 2
42+
#define BUTTON_1 11
43+
#define BUTTON_2 12
44+
#define BUTTON_PULL NRF_GPIO_PIN_PULLUP
45+
46+
/*------------------------------------------------------------------*/
47+
/* QSPI
48+
*------------------------------------------------------------------*/
49+
// #define USE_QSPI_XIP 1
50+
51+
#define USE_QSPI 0
52+
#define USE_DFU_UART 0
53+
54+
#define QSPI_SCK_PIN NRF_GPIO_PIN_MAP(1,1)
55+
#define QSPI_CSN_PIN NRF_GPIO_PIN_MAP(1,2)
56+
#define QSPI_IO0_PIN NRF_GPIO_PIN_MAP(1,3)
57+
#define QSPI_IO1_PIN NRF_GPIO_PIN_MAP(1,4)
58+
#define QSPI_IO2_PIN NRF_GPIO_PIN_MAP(1,5)
59+
#define QSPI_IO3_PIN NRF_GPIO_PIN_MAP(1,6)
60+
61+
#define QSPI_XIP_START_ADDR 0x12000000
62+
63+
//--------------------------------------------------------------------+
64+
// BLE OTA
65+
//--------------------------------------------------------------------+
66+
#define BLEDIS_MANUFACTURER "Moddable Tech, Inc."
67+
#define BLEDIS_MODEL "Moddable pca10056"
68+
69+
//--------------------------------------------------------------------+
70+
// USB
71+
//--------------------------------------------------------------------+
72+
73+
74+
//#define USB_DESC_VID 0x1915
75+
//#define USB_DESC_UF2_PID 0x520F
76+
#define USB_DESC_VID 0xbeef
77+
#define USB_DESC_UF2_PID 0xcafe
78+
#define USB_DESC_CDC_ONLY_PID 0x002A
79+
80+
#define UF2_PRODUCT_NAME "Moddable nRF52840 DK"
81+
#define UF2_BOARD_ID "moddable_pca10056-v1"
82+
#define UF2_INDEX_URL "https://www.moddable.com/product.php"
83+
84+
#define UF2_VOLUME_LABEL "MODDABLEnRF"
85+
86+
// Interface number, string index, EP Out & IN address, EP size
87+
#define TUD_MOD_VENDOR_DESCRIPTOR(_itfnum, _stridx, _epout, _epin, _epsize) \
88+
/* Interface */\
89+
9, TUSB_DESC_INTERFACE, _itfnum, 0, 2, TUSB_CLASS_VENDOR_SPECIFIC, CFG_TUD_VENDOR_SUBCLASS, 0x00, _stridx,\
90+
/* Endpoint Out */\
91+
7, TUSB_DESC_ENDPOINT, _epout, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0,\
92+
/* Endpoint In */\
93+
7, TUSB_DESC_ENDPOINT, _epin, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0
94+
#endif // MODDABLE_PCA10056_H
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
MCU_SUB_VARIANT = nrf52840
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#include "boards.h"
2+
#include "uf2/configkeys.h"
3+
4+
__attribute__((used, section(".bootloaderConfig")))
5+
const uint32_t bootloaderConfig[] =
6+
{
7+
/* CF2 START */
8+
CFG_MAGIC0, CFG_MAGIC1, // magic
9+
5, 100, // used entries, total entries
10+
11+
204, 0x100000, // FLASH_BYTES = 0x100000
12+
205, 0x40000, // RAM_BYTES = 0x40000
13+
208, (USB_DESC_VID << 16) | USB_DESC_UF2_PID, // BOOTLOADER_BOARD_ID = USB VID+PID, used for verification when updating bootloader via uf2
14+
209, 0xada52840, // UF2_FAMILY = 0xada52840
15+
210, 0x20, // PINS_PORT_SIZE = PA_32
16+
17+
0, 0, 0, 0, 0, 0, 0, 0
18+
/* CF2 END */
19+
};

0 commit comments

Comments
 (0)