forked from jappel/VersaMCU
Add UF2 bootloader for USB firmware flashing
Vendored and trimmed from microsoft/uf2-samdx1, adapted to the actual ATSAMD21G17D (128 KiB flash / 16 KiB RAM), fixing the flash/RAM-size mismatch that the previously commented-out SAM-BA bootloader target had (it assumed a 256 KiB SAMD21G18A). Builds as a standalone PlatformIO environment (bootloader/platformio.ini), no python2/make dependency. Compiles clean, fits in the 8 KiB bootloader region (7292/8192 bytes). Not yet flashed/verified on real hardware.
This commit is contained in:
parent
ce5db617a1
commit
de52b57041
143 changed files with 69119 additions and 0 deletions
150
bootloader/inc/configkeys.h
Normal file
150
bootloader/inc/configkeys.h
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
#ifndef __CONFIGKEYS_H
|
||||
#define __CONFIGKEYS_H 1
|
||||
|
||||
#define CFG_MAGIC0 0x1e9e10f1
|
||||
#define CFG_MAGIC1 0x20227a79
|
||||
|
||||
#define CFG_PIN_ACCELEROMETER_INT 1
|
||||
#define CFG_PIN_ACCELEROMETER_SCL 2
|
||||
#define CFG_PIN_ACCELEROMETER_SDA 3
|
||||
#define CFG_PIN_BTN_A 4
|
||||
#define CFG_PIN_BTN_B 5
|
||||
#define CFG_PIN_BTN_SLIDE 6
|
||||
#define CFG_PIN_DOTSTAR_CLOCK 7
|
||||
#define CFG_PIN_DOTSTAR_DATA 8
|
||||
#define CFG_PIN_FLASH_CS 9
|
||||
#define CFG_PIN_FLASH_MISO 10
|
||||
#define CFG_PIN_FLASH_MOSI 11
|
||||
#define CFG_PIN_FLASH_SCK 12
|
||||
#define CFG_PIN_LED 13
|
||||
#define CFG_PIN_LIGHT 14
|
||||
#define CFG_PIN_MICROPHONE 15
|
||||
#define CFG_PIN_MIC_CLOCK 16
|
||||
#define CFG_PIN_MIC_DATA 17
|
||||
#define CFG_PIN_MISO 18
|
||||
#define CFG_PIN_MOSI 19
|
||||
#define CFG_PIN_NEOPIXEL 20
|
||||
#define CFG_PIN_RX 21
|
||||
#define CFG_PIN_RXLED 22
|
||||
#define CFG_PIN_SCK 23
|
||||
#define CFG_PIN_SCL 24
|
||||
#define CFG_PIN_SDA 25
|
||||
#define CFG_PIN_SPEAKER_AMP 26
|
||||
#define CFG_PIN_TEMPERATURE 27
|
||||
#define CFG_PIN_TX 28
|
||||
#define CFG_PIN_TXLED 29
|
||||
#define CFG_PIN_IR_OUT 30
|
||||
#define CFG_PIN_IR_IN 31
|
||||
#define CFG_PIN_DISPLAY_SCK 32
|
||||
#define CFG_PIN_DISPLAY_MISO 33
|
||||
#define CFG_PIN_DISPLAY_MOSI 34
|
||||
#define CFG_PIN_DISPLAY_CS 35
|
||||
#define CFG_PIN_DISPLAY_DC 36
|
||||
#define CFG_DISPLAY_WIDTH 37
|
||||
#define CFG_DISPLAY_HEIGHT 38
|
||||
#define CFG_DISPLAY_CFG0 39
|
||||
#define CFG_DISPLAY_CFG1 40
|
||||
#define CFG_DISPLAY_CFG2 41
|
||||
#define CFG_DISPLAY_CFG3 42
|
||||
#define CFG_PIN_DISPLAY_RST 43
|
||||
#define CFG_PIN_DISPLAY_BL 44
|
||||
#define CFG_PIN_SERVO_1 45
|
||||
#define CFG_PIN_SERVO_2 46
|
||||
#define CFG_PIN_BTN_LEFT 47
|
||||
#define CFG_PIN_BTN_RIGHT 48
|
||||
#define CFG_PIN_BTN_UP 49
|
||||
#define CFG_PIN_BTN_DOWN 50
|
||||
#define CFG_PIN_BTN_MENU 51
|
||||
#define CFG_PIN_LED_R 52
|
||||
#define CFG_PIN_LED_G 53
|
||||
#define CFG_PIN_LED_B 54
|
||||
#define CFG_PIN_LED1 55
|
||||
#define CFG_PIN_LED2 56
|
||||
#define CFG_PIN_LED3 57
|
||||
#define CFG_PIN_LED4 58
|
||||
#define CFG_SPEAKER_VOLUME 59
|
||||
#define CFG_PIN_JACK_TX 60
|
||||
#define CFG_PIN_JACK_SENSE 61
|
||||
#define CFG_PIN_JACK_HPEN 62
|
||||
#define CFG_PIN_JACK_BZEN 63
|
||||
#define CFG_PIN_JACK_PWREN 64
|
||||
#define CFG_PIN_JACK_SND 65
|
||||
#define CFG_PIN_JACK_BUSLED 66
|
||||
#define CFG_PIN_JACK_COMMLED 67
|
||||
#define CFG_PIN_BTNMX_LATCH 66
|
||||
#define CFG_PIN_BTNMX_CLOCK 67
|
||||
#define CFG_PIN_BTNMX_DATA 68
|
||||
#define CFG_PIN_BTN_SOFT_RESET 69
|
||||
#define CFG_ACCELEROMETER_TYPE 70
|
||||
#define CFG_DISPLAY_TYPE 78
|
||||
#define CFG_PIN_A0 100
|
||||
#define CFG_PIN_A1 101
|
||||
#define CFG_PIN_A2 102
|
||||
#define CFG_PIN_A3 103
|
||||
#define CFG_PIN_A4 104
|
||||
#define CFG_PIN_A5 105
|
||||
#define CFG_PIN_A6 106
|
||||
#define CFG_PIN_A7 107
|
||||
#define CFG_PIN_A8 108
|
||||
#define CFG_PIN_A9 109
|
||||
#define CFG_PIN_A10 110
|
||||
#define CFG_PIN_A11 111
|
||||
#define CFG_PIN_A12 112
|
||||
#define CFG_PIN_A13 113
|
||||
#define CFG_PIN_A14 114
|
||||
#define CFG_PIN_A15 115
|
||||
#define CFG_PIN_D0 150
|
||||
#define CFG_PIN_D1 151
|
||||
#define CFG_PIN_D2 152
|
||||
#define CFG_PIN_D3 153
|
||||
#define CFG_PIN_D4 154
|
||||
#define CFG_PIN_D5 155
|
||||
#define CFG_PIN_D6 156
|
||||
#define CFG_PIN_D7 157
|
||||
#define CFG_PIN_D8 158
|
||||
#define CFG_PIN_D9 159
|
||||
#define CFG_PIN_D10 160
|
||||
#define CFG_PIN_D11 161
|
||||
#define CFG_PIN_D12 162
|
||||
#define CFG_PIN_D13 163
|
||||
#define CFG_PIN_D14 164
|
||||
#define CFG_PIN_D15 165
|
||||
#define CFG_NUM_NEOPIXELS 200
|
||||
#define CFG_NUM_DOTSTARS 201
|
||||
#define CFG_DEFAULT_BUTTON_MODE 202
|
||||
#define CFG_SWD_ENABLED 203
|
||||
#define CFG_FLASH_BYTES 204
|
||||
#define CFG_RAM_BYTES 205
|
||||
#define CFG_SYSTEM_HEAP_BYTES 206
|
||||
#define CFG_LOW_MEM_SIMULATION_KB 207
|
||||
#define CFG_BOOTLOADER_BOARD_ID 208
|
||||
#define CFG_UF2_FAMILY 209
|
||||
#define CFG_PINS_PORT_SIZE 210
|
||||
|
||||
#define ACCELEROMETER_TYPE_LIS3DH 0x32
|
||||
#define ACCELEROMETER_TYPE_MMA8453 0x38
|
||||
#define ACCELEROMETER_TYPE_FXOS8700 0x3c
|
||||
#define ACCELEROMETER_TYPE_MMA8653 0x3a
|
||||
#define ACCELEROMETER_TYPE_MSA300 0x4c
|
||||
|
||||
#define UF2_FAMILY_ATSAMD21 0x68ed2b88
|
||||
#define UF2_FAMILY_ATSAMD51 0x55114460
|
||||
#define UF2_FAMILY_NRF52840 0x1b57745f
|
||||
#define UF2_FAMILY_STM32F103 0x5ee21072
|
||||
#define UF2_FAMILY_STM32F401 0x57755a57
|
||||
#define UF2_FAMILY_ATMEGA32 0x16573617
|
||||
#define UF2_FAMILY_CYPRESS_FX2 0x5a18069b
|
||||
|
||||
#define PINS_PORT_SIZE_PA_16 0x10
|
||||
#define PINS_PORT_SIZE_PA_32 0x20
|
||||
#define PINS_PORT_SIZE_P0_16 0x1010
|
||||
#define PINS_PORT_SIZE_P0_32 0x1020
|
||||
|
||||
#define DEFAULT_BUTTON_MODE_ACTIVE_HIGH_PULL_DOWN 0x11
|
||||
#define DEFAULT_BUTTON_MODE_ACTIVE_HIGH_PULL_UP 0x21
|
||||
#define DEFAULT_BUTTON_MODE_ACTIVE_HIGH_PULL_NONE 0x31
|
||||
#define DEFAULT_BUTTON_MODE_ACTIVE_LOW_PULL_DOWN 0x10
|
||||
#define DEFAULT_BUTTON_MODE_ACTIVE_LOW_PULL_UP 0x20
|
||||
#define DEFAULT_BUTTON_MODE_ACTIVE_LOW_PULL_NONE 0x30
|
||||
|
||||
#endif // __CONFIGKEYS_H
|
||||
Loading…
Add table
Add a link
Reference in a new issue