Unverified Commit 09268fe0 authored by Earle F. Philhower, III's avatar Earle F. Philhower, III Committed by GitHub

Add multiple boot2 options with /2 and /4 SPI div (#67)

Build all 4 different boot_stage2 objects with SPI/2 and SPI/4 options.
Add a menu to the generic board to allow selecting between them.
Use the potato/4 boot2 for the Adafruit Feather until we have a better
version verified.

Fixes #42
parent c988c1c8
// Padded and checksummed version of: boot2_generic_03h.2.bin
.cpu cortex-m0plus
.thumb
.section .boot2, "ax"
.byte 0x00, 0xb5, 0x0c, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x02, 0x21, 0x59, 0x61, 0x0a, 0x49, 0x19, 0x60
.byte 0x0a, 0x49, 0x0b, 0x48, 0x01, 0x60, 0x00, 0x21, 0x59, 0x60, 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc
.byte 0x00, 0x28, 0x00, 0xd0, 0x00, 0x47, 0x07, 0x48, 0x07, 0x49, 0x08, 0x60, 0x03, 0xc8, 0x80, 0xf3
.byte 0x08, 0x88, 0x08, 0x47, 0x00, 0x00, 0x00, 0x18, 0x00, 0x03, 0x1f, 0x00, 0x18, 0x02, 0x00, 0x03
.byte 0xf4, 0x00, 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, 0x08, 0xed, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0x22, 0x4c, 0x5d
// Padded and checksummed version of: boot2_generic_03h.4.bin
.cpu cortex-m0plus
.thumb
.section .boot2, "ax"
.byte 0x00, 0xb5, 0x0c, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x0a, 0x49, 0x19, 0x60
.byte 0x0a, 0x49, 0x0b, 0x48, 0x01, 0x60, 0x00, 0x21, 0x59, 0x60, 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc
.byte 0x00, 0x28, 0x00, 0xd0, 0x00, 0x47, 0x07, 0x48, 0x07, 0x49, 0x08, 0x60, 0x03, 0xc8, 0x80, 0xf3
.byte 0x08, 0x88, 0x08, 0x47, 0x00, 0x00, 0x00, 0x18, 0x00, 0x03, 0x1f, 0x00, 0x18, 0x02, 0x00, 0x03
.byte 0xf4, 0x00, 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, 0x08, 0xed, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0xec, 0x21, 0x0d
// Padded and checksummed version of: boot2_is25lp080.2.bin
.cpu cortex-m0plus
.thumb
.section .boot2, "ax"
.byte 0x00, 0xb5, 0x2b, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x02, 0x21, 0x59, 0x61, 0x29, 0x49, 0x19, 0x60
.byte 0x01, 0x21, 0x99, 0x60, 0x28, 0x48, 0x00, 0xf0, 0x42, 0xf8, 0x28, 0x4a, 0x90, 0x42, 0x12, 0xd0
.byte 0x06, 0x21, 0x19, 0x66, 0x00, 0xf0, 0x32, 0xf8, 0x19, 0x6e, 0x01, 0x21, 0x19, 0x66, 0x00, 0x20
.byte 0x1a, 0x66, 0x00, 0xf0, 0x2b, 0xf8, 0x19, 0x6e, 0x19, 0x6e, 0x1f, 0x48, 0x00, 0xf0, 0x2f, 0xf8
.byte 0x01, 0x21, 0x08, 0x42, 0xf9, 0xd1, 0x00, 0x21, 0x99, 0x60, 0x1d, 0x49, 0x19, 0x60, 0x00, 0x21
.byte 0x59, 0x60, 0x1c, 0x49, 0x1c, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xeb, 0x21, 0x19, 0x66
.byte 0xa0, 0x21, 0x19, 0x66, 0x00, 0xf0, 0x12, 0xf8, 0x00, 0x21, 0x99, 0x60, 0x17, 0x49, 0x16, 0x48
.byte 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28, 0x00, 0xd0, 0x00, 0x47, 0x14, 0x48
.byte 0x14, 0x49, 0x08, 0x60, 0x03, 0xc8, 0x80, 0xf3, 0x08, 0x88, 0x08, 0x47, 0x03, 0xb5, 0x99, 0x6a
.byte 0x04, 0x20, 0x01, 0x42, 0xfb, 0xd0, 0x01, 0x20, 0x01, 0x42, 0xf8, 0xd1, 0x03, 0xbd, 0x02, 0xb5
.byte 0x18, 0x66, 0x18, 0x66, 0xff, 0xf7, 0xf2, 0xff, 0x18, 0x6e, 0x18, 0x6e, 0x02, 0xbd, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x07, 0x00, 0x05, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
.byte 0x00, 0x03, 0x5f, 0x00, 0x21, 0x22, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x18, 0x22, 0x20, 0x00, 0xa0
.byte 0x00, 0x01, 0x00, 0x10, 0x08, 0xed, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0xfd, 0x2e, 0xe2
// Padded and checksummed version of: boot2_is25lp080.4.bin
.cpu cortex-m0plus
.thumb
.section .boot2, "ax"
.byte 0x00, 0xb5, 0x2b, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x29, 0x49, 0x19, 0x60
.byte 0x01, 0x21, 0x99, 0x60, 0x28, 0x48, 0x00, 0xf0, 0x42, 0xf8, 0x28, 0x4a, 0x90, 0x42, 0x12, 0xd0
.byte 0x06, 0x21, 0x19, 0x66, 0x00, 0xf0, 0x32, 0xf8, 0x19, 0x6e, 0x01, 0x21, 0x19, 0x66, 0x00, 0x20
.byte 0x1a, 0x66, 0x00, 0xf0, 0x2b, 0xf8, 0x19, 0x6e, 0x19, 0x6e, 0x1f, 0x48, 0x00, 0xf0, 0x2f, 0xf8
.byte 0x01, 0x21, 0x08, 0x42, 0xf9, 0xd1, 0x00, 0x21, 0x99, 0x60, 0x1d, 0x49, 0x19, 0x60, 0x00, 0x21
.byte 0x59, 0x60, 0x1c, 0x49, 0x1c, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xeb, 0x21, 0x19, 0x66
.byte 0xa0, 0x21, 0x19, 0x66, 0x00, 0xf0, 0x12, 0xf8, 0x00, 0x21, 0x99, 0x60, 0x17, 0x49, 0x16, 0x48
.byte 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28, 0x00, 0xd0, 0x00, 0x47, 0x14, 0x48
.byte 0x14, 0x49, 0x08, 0x60, 0x03, 0xc8, 0x80, 0xf3, 0x08, 0x88, 0x08, 0x47, 0x03, 0xb5, 0x99, 0x6a
.byte 0x04, 0x20, 0x01, 0x42, 0xfb, 0xd0, 0x01, 0x20, 0x01, 0x42, 0xf8, 0xd1, 0x03, 0xbd, 0x02, 0xb5
.byte 0x18, 0x66, 0x18, 0x66, 0xff, 0xf7, 0xf2, 0xff, 0x18, 0x6e, 0x18, 0x6e, 0x02, 0xbd, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x07, 0x00, 0x05, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
.byte 0x00, 0x03, 0x5f, 0x00, 0x21, 0x22, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x18, 0x22, 0x20, 0x00, 0xa0
.byte 0x00, 0x01, 0x00, 0x10, 0x08, 0xed, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x33, 0x43, 0xb2
// Padded and checksummed version of: boot2_w25q080.2.bin
.cpu cortex-m0plus
.thumb
.section .boot2, "ax"
.byte 0x00, 0xb5, 0x32, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x98, 0x68, 0x02, 0x21, 0x88, 0x43, 0x98, 0x60
.byte 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x2e, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x02, 0x21, 0x59, 0x61
.byte 0x01, 0x21, 0xf0, 0x22, 0x99, 0x50, 0x2b, 0x49, 0x19, 0x60, 0x01, 0x21, 0x99, 0x60, 0x35, 0x20
.byte 0x00, 0xf0, 0x44, 0xf8, 0x02, 0x22, 0x90, 0x42, 0x14, 0xd0, 0x06, 0x21, 0x19, 0x66, 0x00, 0xf0
.byte 0x34, 0xf8, 0x19, 0x6e, 0x01, 0x21, 0x19, 0x66, 0x00, 0x20, 0x18, 0x66, 0x1a, 0x66, 0x00, 0xf0
.byte 0x2c, 0xf8, 0x19, 0x6e, 0x19, 0x6e, 0x19, 0x6e, 0x05, 0x20, 0x00, 0xf0, 0x2f, 0xf8, 0x01, 0x21
.byte 0x08, 0x42, 0xf9, 0xd1, 0x00, 0x21, 0x99, 0x60, 0x1b, 0x49, 0x19, 0x60, 0x00, 0x21, 0x59, 0x60
.byte 0x1a, 0x49, 0x1b, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xeb, 0x21, 0x19, 0x66, 0xa0, 0x21
.byte 0x19, 0x66, 0x00, 0xf0, 0x12, 0xf8, 0x00, 0x21, 0x99, 0x60, 0x16, 0x49, 0x14, 0x48, 0x01, 0x60
.byte 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28, 0x00, 0xd0, 0x00, 0x47, 0x12, 0x48, 0x13, 0x49
.byte 0x08, 0x60, 0x03, 0xc8, 0x80, 0xf3, 0x08, 0x88, 0x08, 0x47, 0x03, 0xb5, 0x99, 0x6a, 0x04, 0x20
.byte 0x01, 0x42, 0xfb, 0xd0, 0x01, 0x20, 0x01, 0x42, 0xf8, 0xd1, 0x03, 0xbd, 0x02, 0xb5, 0x18, 0x66
.byte 0x18, 0x66, 0xff, 0xf7, 0xf2, 0xff, 0x18, 0x6e, 0x18, 0x6e, 0x02, 0xbd, 0x00, 0x00, 0x02, 0x40
.byte 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x07, 0x00, 0x00, 0x03, 0x5f, 0x00, 0x21, 0x22, 0x00, 0x00
.byte 0xf4, 0x00, 0x00, 0x18, 0x22, 0x20, 0x00, 0xa0, 0x00, 0x01, 0x00, 0x10, 0x08, 0xed, 0x00, 0xe0
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0xb2, 0x4e, 0x7a
// Padded and checksummed version of: boot2_w25q080.4.bin
.cpu cortex-m0plus
.thumb
.section .boot2, "ax"
.byte 0x00, 0xb5, 0x32, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x98, 0x68, 0x02, 0x21, 0x88, 0x43, 0x98, 0x60
.byte 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x2e, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61
.byte 0x01, 0x21, 0xf0, 0x22, 0x99, 0x50, 0x2b, 0x49, 0x19, 0x60, 0x01, 0x21, 0x99, 0x60, 0x35, 0x20
.byte 0x00, 0xf0, 0x44, 0xf8, 0x02, 0x22, 0x90, 0x42, 0x14, 0xd0, 0x06, 0x21, 0x19, 0x66, 0x00, 0xf0
.byte 0x34, 0xf8, 0x19, 0x6e, 0x01, 0x21, 0x19, 0x66, 0x00, 0x20, 0x18, 0x66, 0x1a, 0x66, 0x00, 0xf0
.byte 0x2c, 0xf8, 0x19, 0x6e, 0x19, 0x6e, 0x19, 0x6e, 0x05, 0x20, 0x00, 0xf0, 0x2f, 0xf8, 0x01, 0x21
.byte 0x08, 0x42, 0xf9, 0xd1, 0x00, 0x21, 0x99, 0x60, 0x1b, 0x49, 0x19, 0x60, 0x00, 0x21, 0x59, 0x60
.byte 0x1a, 0x49, 0x1b, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xeb, 0x21, 0x19, 0x66, 0xa0, 0x21
.byte 0x19, 0x66, 0x00, 0xf0, 0x12, 0xf8, 0x00, 0x21, 0x99, 0x60, 0x16, 0x49, 0x14, 0x48, 0x01, 0x60
.byte 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28, 0x00, 0xd0, 0x00, 0x47, 0x12, 0x48, 0x13, 0x49
.byte 0x08, 0x60, 0x03, 0xc8, 0x80, 0xf3, 0x08, 0x88, 0x08, 0x47, 0x03, 0xb5, 0x99, 0x6a, 0x04, 0x20
.byte 0x01, 0x42, 0xfb, 0xd0, 0x01, 0x20, 0x01, 0x42, 0xf8, 0xd1, 0x03, 0xbd, 0x02, 0xb5, 0x18, 0x66
.byte 0x18, 0x66, 0xff, 0xf7, 0xf2, 0xff, 0x18, 0x6e, 0x18, 0x6e, 0x02, 0xbd, 0x00, 0x00, 0x02, 0x40
.byte 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x07, 0x00, 0x00, 0x03, 0x5f, 0x00, 0x21, 0x22, 0x00, 0x00
.byte 0xf4, 0x00, 0x00, 0x18, 0x22, 0x20, 0x00, 0xa0, 0x00, 0x01, 0x00, 0x10, 0x08, 0xed, 0x00, 0xe0
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0b, 0x8f, 0xd5
// Padded and checksummed version of: boot2_w25x10cl.2.bin
.cpu cortex-m0plus
.thumb
.section .boot2, "ax"
.byte 0x00, 0xb5, 0x14, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x02, 0x21, 0x59, 0x61, 0x12, 0x49, 0x19, 0x60
.byte 0x00, 0x21, 0x59, 0x60, 0x11, 0x49, 0x12, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xbb, 0x21
.byte 0x19, 0x66, 0x02, 0x21, 0x19, 0x66, 0x08, 0x21, 0x98, 0x6a, 0x08, 0x42, 0xfc, 0xd0, 0x00, 0x21
.byte 0x99, 0x60, 0x0c, 0x49, 0x0a, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28
.byte 0x00, 0xd0, 0x00, 0x47, 0x08, 0x48, 0x09, 0x49, 0x08, 0x60, 0x03, 0xc8, 0x80, 0xf3, 0x08, 0x88
.byte 0x08, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x03, 0x3f, 0x00, 0x1d, 0x12, 0x00, 0x00
.byte 0xf4, 0x00, 0x00, 0x18, 0x1e, 0x10, 0x00, 0x20, 0x00, 0x01, 0x00, 0x10, 0x08, 0xed, 0x00, 0xe0
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x4f, 0x3e, 0xca
// Padded and checksummed version of: boot2_w25x10cl.4.bin
.cpu cortex-m0plus
.thumb
.section .boot2, "ax"
.byte 0x00, 0xb5, 0x14, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x12, 0x49, 0x19, 0x60
.byte 0x00, 0x21, 0x59, 0x60, 0x11, 0x49, 0x12, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xbb, 0x21
.byte 0x19, 0x66, 0x02, 0x21, 0x19, 0x66, 0x08, 0x21, 0x98, 0x6a, 0x08, 0x42, 0xfc, 0xd0, 0x00, 0x21
.byte 0x99, 0x60, 0x0c, 0x49, 0x0a, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28
.byte 0x00, 0xd0, 0x00, 0x47, 0x08, 0x48, 0x09, 0x49, 0x08, 0x60, 0x03, 0xc8, 0x80, 0xf3, 0x08, 0x88
.byte 0x08, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x03, 0x3f, 0x00, 0x1d, 0x12, 0x00, 0x00
.byte 0xf4, 0x00, 0x00, 0x18, 0x1e, 0x10, 0x00, 0x20, 0x00, 0x01, 0x00, 0x10, 0x08, 0xed, 0x00, 0xe0
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x81, 0x53, 0x9a
// Padded and checksummed version of: /home/earle/src/pico/pico-examples/build/pico_sdk/src/rp2_common/boot_stage2/bs2_default.bin
.section .boot2, "a"
.byte 0x00, 0xb5, 0x2f, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x98, 0x68, 0x02, 0x21, 0x88, 0x43, 0x98, 0x60
.byte 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x2b, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x02, 0x21, 0x59, 0x61
.byte 0x01, 0x21, 0xf0, 0x22, 0x99, 0x50, 0x28, 0x49, 0x19, 0x60, 0x01, 0x21, 0x99, 0x60, 0x35, 0x20
.byte 0x00, 0xf0, 0x3e, 0xf8, 0x02, 0x22, 0x90, 0x42, 0x14, 0xd0, 0x06, 0x21, 0x19, 0x66, 0x00, 0xf0
.byte 0x2e, 0xf8, 0x19, 0x6e, 0x01, 0x21, 0x19, 0x66, 0x00, 0x20, 0x18, 0x66, 0x1a, 0x66, 0x00, 0xf0
.byte 0x26, 0xf8, 0x19, 0x6e, 0x19, 0x6e, 0x19, 0x6e, 0x05, 0x20, 0x00, 0xf0, 0x29, 0xf8, 0x01, 0x21
.byte 0x08, 0x42, 0xf9, 0xd1, 0x00, 0x21, 0x99, 0x60, 0x18, 0x49, 0x19, 0x60, 0x00, 0x21, 0x59, 0x60
.byte 0x17, 0x49, 0x18, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xeb, 0x21, 0x19, 0x66, 0xa0, 0x21
.byte 0x19, 0x66, 0x00, 0xf0, 0x0c, 0xf8, 0x00, 0x21, 0x99, 0x60, 0x13, 0x49, 0x11, 0x48, 0x01, 0x60
.byte 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28, 0x00, 0xd1, 0x10, 0x48, 0x00, 0x47, 0x03, 0xb5
.byte 0x99, 0x6a, 0x04, 0x20, 0x01, 0x42, 0xfb, 0xd0, 0x01, 0x20, 0x01, 0x42, 0xf8, 0xd1, 0x03, 0xbd
.byte 0x02, 0xb5, 0x18, 0x66, 0x18, 0x66, 0xff, 0xf7, 0xf2, 0xff, 0x18, 0x6e, 0x18, 0x6e, 0x02, 0xbd
.byte 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x07, 0x00, 0x00, 0x03, 0x5f, 0x00
.byte 0x21, 0x22, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x18, 0x22, 0x20, 0x00, 0xa0, 0x01, 0x01, 0x00, 0x10
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x27, 0x2a, 0x60
......@@ -3,6 +3,7 @@ menu.flash=Flash Size
menu.freq=CPU Speed
menu.dbgport=Debug Port
menu.dbglvl=Debug Level
menu.boot2=Boot Stage 2
rpipico.name=Raspberry Pi Pico
rpipico.vid.0=0x2e8a
rpipico.pid.0=0x000a
......@@ -22,6 +23,7 @@ rpipico.build.led=
rpipico.build.core=rp2040
rpipico.build.mcu=rp2040
rpipico.build.ldscript=memmap_default.ld
rpipico.build.boot2=boot2_w25q080_2_padded_checksum
rpipico.menu.flash.2097152_0=2MB (no FS)
rpipico.menu.flash.2097152_0.upload.maximum_size=2093056
rpipico.menu.flash.2097152_0.build.flash_length=2093056
......@@ -119,6 +121,7 @@ rpipicopicoprobe.build.led=
rpipicopicoprobe.build.core=rp2040
rpipicopicoprobe.build.mcu=rp2040
rpipicopicoprobe.build.ldscript=memmap_default.ld
rpipicopicoprobe.build.boot2=boot2_w25q080_2_padded_checksum
rpipicopicoprobe.menu.flash.2097152_0=2MB (no FS)
rpipicopicoprobe.menu.flash.2097152_0.upload.maximum_size=2093056
rpipicopicoprobe.menu.flash.2097152_0.build.flash_length=2093056
......@@ -216,6 +219,7 @@ adafruitfeather.build.led=
adafruitfeather.build.core=rp2040
adafruitfeather.build.mcu=rp2040
adafruitfeather.build.ldscript=memmap_default.ld
adafruitfeather.build.boot2=boot2_generic_03h_4_padded_checksum
adafruitfeather.menu.flash.8388608_0=8MB (no FS)
adafruitfeather.menu.flash.8388608_0.upload.maximum_size=8384512
adafruitfeather.menu.flash.8388608_0.build.flash_length=8384512
......@@ -349,6 +353,7 @@ adafruitfeatherpicoprobe.build.led=
adafruitfeatherpicoprobe.build.core=rp2040
adafruitfeatherpicoprobe.build.mcu=rp2040
adafruitfeatherpicoprobe.build.ldscript=memmap_default.ld
adafruitfeatherpicoprobe.build.boot2=boot2_generic_03h_4_padded_checksum
adafruitfeatherpicoprobe.menu.flash.8388608_0=8MB (no FS)
adafruitfeatherpicoprobe.menu.flash.8388608_0.upload.maximum_size=8384512
adafruitfeatherpicoprobe.menu.flash.8388608_0.build.flash_length=8384512
......@@ -482,126 +487,55 @@ generic.build.led=
generic.build.core=rp2040
generic.build.mcu=rp2040
generic.build.ldscript=memmap_default.ld
generic.build.boot2=boot2_generic_03h_4_padded_checksum
generic.menu.flash.2097152_0=2MB (no FS)
generic.menu.flash.2097152_0.upload.maximum_size=2093056
generic.menu.flash.2097152_0.build.flash_length=2093056
generic.menu.flash.2097152_0.build.eeprom_start=270528512
generic.menu.flash.2097152_0.build.fs_start=270528512
generic.menu.flash.2097152_0.build.fs_end=270528512
generic.menu.flash.2097152_1048576=2MB (FS: 1MB)
generic.menu.flash.2097152_1048576.upload.maximum_size=1044480
generic.menu.flash.2097152_1048576.build.flash_length=1044480
generic.menu.flash.2097152_1048576.build.eeprom_start=270528512
generic.menu.flash.2097152_1048576.build.fs_start=269479936
generic.menu.flash.2097152_1048576.build.fs_end=270528512
generic.menu.flash.4194304_0=4MB (no FS)
generic.menu.flash.4194304_0.upload.maximum_size=4190208
generic.menu.flash.4194304_0.build.flash_length=4190208
generic.menu.flash.4194304_0.build.eeprom_start=272625664
generic.menu.flash.4194304_0.build.fs_start=272625664
generic.menu.flash.4194304_0.build.fs_end=272625664
generic.menu.flash.4194304_2097152=4MB (FS: 2MB)
generic.menu.flash.4194304_2097152.upload.maximum_size=2093056
generic.menu.flash.4194304_2097152.build.flash_length=2093056
generic.menu.flash.4194304_2097152.build.eeprom_start=272625664
generic.menu.flash.4194304_2097152.build.fs_start=270528512
generic.menu.flash.4194304_2097152.build.fs_end=272625664
generic.menu.flash.8388608_0=8MB (no FS)
generic.menu.flash.8388608_0.upload.maximum_size=8384512
generic.menu.flash.8388608_0.build.flash_length=8384512
generic.menu.flash.8388608_0.build.eeprom_start=276819968
generic.menu.flash.8388608_0.build.fs_start=276819968
generic.menu.flash.8388608_0.build.fs_end=276819968
generic.menu.flash.8388608_4194304=8MB (FS: 4MB)
generic.menu.flash.8388608_4194304.upload.maximum_size=4190208
generic.menu.flash.8388608_4194304.build.flash_length=4190208
generic.menu.flash.8388608_4194304.build.eeprom_start=276819968
generic.menu.flash.8388608_4194304.build.fs_start=272625664
generic.menu.flash.8388608_4194304.build.fs_end=276819968
generic.menu.flash.16777216_0=16MB (no FS)
generic.menu.flash.16777216_0.upload.maximum_size=16773120
generic.menu.flash.16777216_0.build.flash_length=16773120
generic.menu.flash.16777216_0.build.eeprom_start=285208576
generic.menu.flash.16777216_0.build.fs_start=285208576
generic.menu.flash.16777216_0.build.fs_end=285208576
generic.menu.flash.16777216_65536=16MB (FS: 64KB)
generic.menu.flash.16777216_65536.upload.maximum_size=16707584
generic.menu.flash.16777216_65536.build.flash_length=16707584
generic.menu.flash.16777216_65536.build.eeprom_start=285208576
generic.menu.flash.16777216_65536.build.fs_start=285143040
generic.menu.flash.16777216_65536.build.fs_end=285208576
generic.menu.flash.16777216_131072=16MB (FS: 128KB)
generic.menu.flash.16777216_131072.upload.maximum_size=16642048
generic.menu.flash.16777216_131072.build.flash_length=16642048
generic.menu.flash.16777216_131072.build.eeprom_start=285208576
generic.menu.flash.16777216_131072.build.fs_start=285077504
generic.menu.flash.16777216_131072.build.fs_end=285208576
generic.menu.flash.16777216_262144=16MB (FS: 256KB)
generic.menu.flash.16777216_262144.upload.maximum_size=16510976
generic.menu.flash.16777216_262144.build.flash_length=16510976
generic.menu.flash.16777216_262144.build.eeprom_start=285208576
generic.menu.flash.16777216_262144.build.fs_start=284946432
generic.menu.flash.16777216_262144.build.fs_end=285208576
generic.menu.flash.16777216_524288=16MB (FS: 512KB)
generic.menu.flash.16777216_524288.upload.maximum_size=16248832
generic.menu.flash.16777216_524288.build.flash_length=16248832
generic.menu.flash.16777216_524288.build.eeprom_start=285208576
generic.menu.flash.16777216_524288.build.fs_start=284684288
generic.menu.flash.16777216_524288.build.fs_end=285208576
generic.menu.flash.16777216_1048576=16MB (FS: 1MB)
generic.menu.flash.16777216_1048576.upload.maximum_size=15724544
generic.menu.flash.16777216_1048576.build.flash_length=15724544
generic.menu.flash.16777216_1048576.build.eeprom_start=285208576
generic.menu.flash.16777216_1048576.build.fs_start=284160000
generic.menu.flash.16777216_1048576.build.fs_end=285208576
generic.menu.flash.16777216_2097152=16MB (FS: 2MB)
generic.menu.flash.16777216_2097152.upload.maximum_size=14675968
generic.menu.flash.16777216_2097152.build.flash_length=14675968
generic.menu.flash.16777216_2097152.build.eeprom_start=285208576
generic.menu.flash.16777216_2097152.build.fs_start=283111424
generic.menu.flash.16777216_2097152.build.fs_end=285208576
generic.menu.flash.16777216_3145728=16MB (FS: 3MB)
generic.menu.flash.16777216_3145728.upload.maximum_size=13627392
generic.menu.flash.16777216_3145728.build.flash_length=13627392
generic.menu.flash.16777216_3145728.build.eeprom_start=285208576
generic.menu.flash.16777216_3145728.build.fs_start=282062848
generic.menu.flash.16777216_3145728.build.fs_end=285208576
generic.menu.flash.16777216_4194304=16MB (FS: 4MB)
generic.menu.flash.16777216_4194304.upload.maximum_size=12578816
generic.menu.flash.16777216_4194304.build.flash_length=12578816
generic.menu.flash.16777216_4194304.build.eeprom_start=285208576
generic.menu.flash.16777216_4194304.build.fs_start=281014272
generic.menu.flash.16777216_4194304.build.fs_end=285208576
generic.menu.flash.16777216_5242880=16MB (FS: 5MB)
generic.menu.flash.16777216_5242880.upload.maximum_size=11530240
generic.menu.flash.16777216_5242880.build.flash_length=11530240
generic.menu.flash.16777216_5242880.build.eeprom_start=285208576
generic.menu.flash.16777216_5242880.build.fs_start=279965696
generic.menu.flash.16777216_5242880.build.fs_end=285208576
generic.menu.flash.16777216_6291456=16MB (FS: 6MB)
generic.menu.flash.16777216_6291456.upload.maximum_size=10481664
generic.menu.flash.16777216_6291456.build.flash_length=10481664
generic.menu.flash.16777216_6291456.build.eeprom_start=285208576
generic.menu.flash.16777216_6291456.build.fs_start=278917120
generic.menu.flash.16777216_6291456.build.fs_end=285208576
generic.menu.flash.16777216_7340032=16MB (FS: 7MB)
generic.menu.flash.16777216_7340032.upload.maximum_size=9433088
generic.menu.flash.16777216_7340032.build.flash_length=9433088
generic.menu.flash.16777216_7340032.build.eeprom_start=285208576
generic.menu.flash.16777216_7340032.build.fs_start=277868544
generic.menu.flash.16777216_7340032.build.fs_end=285208576
generic.menu.flash.16777216_8388608=16MB (FS: 8MB)
generic.menu.flash.16777216_8388608.upload.maximum_size=8384512
generic.menu.flash.16777216_8388608.build.flash_length=8384512
generic.menu.flash.16777216_8388608.build.eeprom_start=285208576
generic.menu.flash.16777216_8388608.build.fs_start=276819968
generic.menu.flash.16777216_8388608.build.fs_end=285208576
generic.menu.flash.16777216_9437184=16MB (FS: 9MB)
generic.menu.flash.16777216_9437184.upload.maximum_size=7335936
generic.menu.flash.16777216_9437184.build.flash_length=7335936
generic.menu.flash.16777216_9437184.build.eeprom_start=285208576
generic.menu.flash.16777216_9437184.build.fs_start=275771392
generic.menu.flash.16777216_9437184.build.fs_end=285208576
generic.menu.flash.16777216_10485760=16MB (FS: 10MB)
generic.menu.flash.16777216_10485760.upload.maximum_size=6287360
generic.menu.flash.16777216_10485760.build.flash_length=6287360
generic.menu.flash.16777216_10485760.build.eeprom_start=285208576
generic.menu.flash.16777216_10485760.build.fs_start=274722816
generic.menu.flash.16777216_10485760.build.fs_end=285208576
generic.menu.flash.16777216_11534336=16MB (FS: 11MB)
generic.menu.flash.16777216_11534336.upload.maximum_size=5238784
generic.menu.flash.16777216_11534336.build.flash_length=5238784
generic.menu.flash.16777216_11534336.build.eeprom_start=285208576
generic.menu.flash.16777216_11534336.build.fs_start=273674240
generic.menu.flash.16777216_11534336.build.fs_end=285208576
generic.menu.flash.16777216_12582912=16MB (FS: 12MB)
generic.menu.flash.16777216_12582912.upload.maximum_size=4190208
generic.menu.flash.16777216_12582912.build.flash_length=4190208
generic.menu.flash.16777216_12582912.build.eeprom_start=285208576
generic.menu.flash.16777216_12582912.build.fs_start=272625664
generic.menu.flash.16777216_12582912.build.fs_end=285208576
generic.menu.flash.16777216_13631488=16MB (FS: 13MB)
generic.menu.flash.16777216_13631488.upload.maximum_size=3141632
generic.menu.flash.16777216_13631488.build.flash_length=3141632
generic.menu.flash.16777216_13631488.build.eeprom_start=285208576
generic.menu.flash.16777216_13631488.build.fs_start=271577088
generic.menu.flash.16777216_13631488.build.fs_end=285208576
generic.menu.flash.16777216_14680064=16MB (FS: 14MB)
generic.menu.flash.16777216_14680064.upload.maximum_size=2093056
generic.menu.flash.16777216_14680064.build.flash_length=2093056
generic.menu.flash.16777216_14680064.build.eeprom_start=285208576
generic.menu.flash.16777216_14680064.build.fs_start=270528512
generic.menu.flash.16777216_14680064.build.fs_end=285208576
generic.menu.flash.16777216_15728640=16MB (FS: 15MB)
generic.menu.flash.16777216_15728640.upload.maximum_size=1044480
generic.menu.flash.16777216_15728640.build.flash_length=1044480
generic.menu.flash.16777216_15728640.build.eeprom_start=285208576
generic.menu.flash.16777216_15728640.build.fs_start=269479936
generic.menu.flash.16777216_15728640.build.fs_end=285208576
generic.menu.freq.125=125 MHz
generic.menu.freq.125.build.f_cpu=125000000L
generic.menu.freq.50=50 MHz
......@@ -644,6 +578,22 @@ generic.menu.dbglvl.All=All
generic.menu.dbglvl.All.build.debug_level=-DDEBUG_RP2040_WIRE -DDEBUG_RP2040_SPI -DDEBUG_RP2040_CORE
generic.menu.dbglvl.NDEBUG=NDEBUG
generic.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG
generic.menu.boot2.boot2_generic_03h_2_padded_checksum=Generic SPI /2
generic.menu.boot2.boot2_generic_03h_2_padded_checksum.build.boot2=boot2_generic_03h_2_padded_checksum
generic.menu.boot2.boot2_generic_03h_4_padded_checksum=Generic SPI /4
generic.menu.boot2.boot2_generic_03h_4_padded_checksum.build.boot2=boot2_generic_03h_4_padded_checksum
generic.menu.boot2.boot2_is25lp080_2_padded_checksum=IS25LP080 QSPI /2
generic.menu.boot2.boot2_is25lp080_2_padded_checksum.build.boot2=boot2_is25lp080_2_padded_checksum
generic.menu.boot2.boot2_is25lp080_4_padded_checksum=IS25LP080 QSPI /4
generic.menu.boot2.boot2_is25lp080_4_padded_checksum.build.boot2=boot2_is25lp080_4_padded_checksum
generic.menu.boot2.boot2_w25q080_2_padded_checksum=W25Q080 QSPI /2
generic.menu.boot2.boot2_w25q080_2_padded_checksum.build.boot2=boot2_w25q080_2_padded_checksum
generic.menu.boot2.boot2_w25q080_4_padded_checksum=W25Q080 QSPI /4
generic.menu.boot2.boot2_w25q080_4_padded_checksum.build.boot2=boot2_w25q080_4_padded_checksum
generic.menu.boot2.boot2_w25x10_2_padded_checksum=W25X10CL QSPI /2
generic.menu.boot2.boot2_w25x10_2_padded_checksum.build.boot2=boot2_w25x10_2_padded_checksum
generic.menu.boot2.boot2_w25x10_4_padded_checksum=W25X10CL QSPI /4
generic.menu.boot2.boot2_w25x10_4_padded_checksum.build.boot2=boot2_w25x10_4_padded_checksum
genericpicoprobe.name=Generic RP2040 (Picoprobe)
genericpicoprobe.vid.0=0x2e8a
genericpicoprobe.pid.0=0xf00a
......@@ -663,126 +613,55 @@ genericpicoprobe.build.led=
genericpicoprobe.build.core=rp2040
genericpicoprobe.build.mcu=rp2040
genericpicoprobe.build.ldscript=memmap_default.ld
genericpicoprobe.build.boot2=boot2_generic_03h_4_padded_checksum
genericpicoprobe.menu.flash.2097152_0=2MB (no FS)
genericpicoprobe.menu.flash.2097152_0.upload.maximum_size=2093056
genericpicoprobe.menu.flash.2097152_0.build.flash_length=2093056
genericpicoprobe.menu.flash.2097152_0.build.eeprom_start=270528512
genericpicoprobe.menu.flash.2097152_0.build.fs_start=270528512
genericpicoprobe.menu.flash.2097152_0.build.fs_end=270528512
genericpicoprobe.menu.flash.2097152_1048576=2MB (FS: 1MB)
genericpicoprobe.menu.flash.2097152_1048576.upload.maximum_size=1044480
genericpicoprobe.menu.flash.2097152_1048576.build.flash_length=1044480
genericpicoprobe.menu.flash.2097152_1048576.build.eeprom_start=270528512
genericpicoprobe.menu.flash.2097152_1048576.build.fs_start=269479936
genericpicoprobe.menu.flash.2097152_1048576.build.fs_end=270528512
genericpicoprobe.menu.flash.4194304_0=4MB (no FS)
genericpicoprobe.menu.flash.4194304_0.upload.maximum_size=4190208
genericpicoprobe.menu.flash.4194304_0.build.flash_length=4190208
genericpicoprobe.menu.flash.4194304_0.build.eeprom_start=272625664
genericpicoprobe.menu.flash.4194304_0.build.fs_start=272625664
genericpicoprobe.menu.flash.4194304_0.build.fs_end=272625664
genericpicoprobe.menu.flash.4194304_2097152=4MB (FS: 2MB)
genericpicoprobe.menu.flash.4194304_2097152.upload.maximum_size=2093056
genericpicoprobe.menu.flash.4194304_2097152.build.flash_length=2093056
genericpicoprobe.menu.flash.4194304_2097152.build.eeprom_start=272625664
genericpicoprobe.menu.flash.4194304_2097152.build.fs_start=270528512
genericpicoprobe.menu.flash.4194304_2097152.build.fs_end=272625664
genericpicoprobe.menu.flash.8388608_0=8MB (no FS)
genericpicoprobe.menu.flash.8388608_0.upload.maximum_size=8384512
genericpicoprobe.menu.flash.8388608_0.build.flash_length=8384512
genericpicoprobe.menu.flash.8388608_0.build.eeprom_start=276819968
genericpicoprobe.menu.flash.8388608_0.build.fs_start=276819968
genericpicoprobe.menu.flash.8388608_0.build.fs_end=276819968
genericpicoprobe.menu.flash.8388608_4194304=8MB (FS: 4MB)
genericpicoprobe.menu.flash.8388608_4194304.upload.maximum_size=4190208
genericpicoprobe.menu.flash.8388608_4194304.build.flash_length=4190208
genericpicoprobe.menu.flash.8388608_4194304.build.eeprom_start=276819968
genericpicoprobe.menu.flash.8388608_4194304.build.fs_start=272625664
genericpicoprobe.menu.flash.8388608_4194304.build.fs_end=276819968
genericpicoprobe.menu.flash.16777216_0=16MB (no FS)
genericpicoprobe.menu.flash.16777216_0.upload.maximum_size=16773120
genericpicoprobe.menu.flash.16777216_0.build.flash_length=16773120
genericpicoprobe.menu.flash.16777216_0.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_0.build.fs_start=285208576
genericpicoprobe.menu.flash.16777216_0.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_65536=16MB (FS: 64KB)
genericpicoprobe.menu.flash.16777216_65536.upload.maximum_size=16707584
genericpicoprobe.menu.flash.16777216_65536.build.flash_length=16707584
genericpicoprobe.menu.flash.16777216_65536.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_65536.build.fs_start=285143040
genericpicoprobe.menu.flash.16777216_65536.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_131072=16MB (FS: 128KB)
genericpicoprobe.menu.flash.16777216_131072.upload.maximum_size=16642048
genericpicoprobe.menu.flash.16777216_131072.build.flash_length=16642048
genericpicoprobe.menu.flash.16777216_131072.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_131072.build.fs_start=285077504
genericpicoprobe.menu.flash.16777216_131072.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_262144=16MB (FS: 256KB)
genericpicoprobe.menu.flash.16777216_262144.upload.maximum_size=16510976
genericpicoprobe.menu.flash.16777216_262144.build.flash_length=16510976
genericpicoprobe.menu.flash.16777216_262144.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_262144.build.fs_start=284946432
genericpicoprobe.menu.flash.16777216_262144.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_524288=16MB (FS: 512KB)
genericpicoprobe.menu.flash.16777216_524288.upload.maximum_size=16248832
genericpicoprobe.menu.flash.16777216_524288.build.flash_length=16248832
genericpicoprobe.menu.flash.16777216_524288.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_524288.build.fs_start=284684288
genericpicoprobe.menu.flash.16777216_524288.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_1048576=16MB (FS: 1MB)
genericpicoprobe.menu.flash.16777216_1048576.upload.maximum_size=15724544
genericpicoprobe.menu.flash.16777216_1048576.build.flash_length=15724544
genericpicoprobe.menu.flash.16777216_1048576.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_1048576.build.fs_start=284160000
genericpicoprobe.menu.flash.16777216_1048576.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_2097152=16MB (FS: 2MB)
genericpicoprobe.menu.flash.16777216_2097152.upload.maximum_size=14675968
genericpicoprobe.menu.flash.16777216_2097152.build.flash_length=14675968
genericpicoprobe.menu.flash.16777216_2097152.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_2097152.build.fs_start=283111424
genericpicoprobe.menu.flash.16777216_2097152.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_3145728=16MB (FS: 3MB)
genericpicoprobe.menu.flash.16777216_3145728.upload.maximum_size=13627392
genericpicoprobe.menu.flash.16777216_3145728.build.flash_length=13627392
genericpicoprobe.menu.flash.16777216_3145728.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_3145728.build.fs_start=282062848
genericpicoprobe.menu.flash.16777216_3145728.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_4194304=16MB (FS: 4MB)
genericpicoprobe.menu.flash.16777216_4194304.upload.maximum_size=12578816
genericpicoprobe.menu.flash.16777216_4194304.build.flash_length=12578816
genericpicoprobe.menu.flash.16777216_4194304.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_4194304.build.fs_start=281014272
genericpicoprobe.menu.flash.16777216_4194304.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_5242880=16MB (FS: 5MB)
genericpicoprobe.menu.flash.16777216_5242880.upload.maximum_size=11530240
genericpicoprobe.menu.flash.16777216_5242880.build.flash_length=11530240
genericpicoprobe.menu.flash.16777216_5242880.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_5242880.build.fs_start=279965696
genericpicoprobe.menu.flash.16777216_5242880.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_6291456=16MB (FS: 6MB)
genericpicoprobe.menu.flash.16777216_6291456.upload.maximum_size=10481664
genericpicoprobe.menu.flash.16777216_6291456.build.flash_length=10481664
genericpicoprobe.menu.flash.16777216_6291456.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_6291456.build.fs_start=278917120
genericpicoprobe.menu.flash.16777216_6291456.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_7340032=16MB (FS: 7MB)
genericpicoprobe.menu.flash.16777216_7340032.upload.maximum_size=9433088
genericpicoprobe.menu.flash.16777216_7340032.build.flash_length=9433088
genericpicoprobe.menu.flash.16777216_7340032.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_7340032.build.fs_start=277868544
genericpicoprobe.menu.flash.16777216_7340032.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_8388608=16MB (FS: 8MB)
genericpicoprobe.menu.flash.16777216_8388608.upload.maximum_size=8384512
genericpicoprobe.menu.flash.16777216_8388608.build.flash_length=8384512
genericpicoprobe.menu.flash.16777216_8388608.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_8388608.build.fs_start=276819968
genericpicoprobe.menu.flash.16777216_8388608.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_9437184=16MB (FS: 9MB)
genericpicoprobe.menu.flash.16777216_9437184.upload.maximum_size=7335936
genericpicoprobe.menu.flash.16777216_9437184.build.flash_length=7335936
genericpicoprobe.menu.flash.16777216_9437184.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_9437184.build.fs_start=275771392
genericpicoprobe.menu.flash.16777216_9437184.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_10485760=16MB (FS: 10MB)
genericpicoprobe.menu.flash.16777216_10485760.upload.maximum_size=6287360
genericpicoprobe.menu.flash.16777216_10485760.build.flash_length=6287360
genericpicoprobe.menu.flash.16777216_10485760.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_10485760.build.fs_start=274722816
genericpicoprobe.menu.flash.16777216_10485760.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_11534336=16MB (FS: 11MB)
genericpicoprobe.menu.flash.16777216_11534336.upload.maximum_size=5238784
genericpicoprobe.menu.flash.16777216_11534336.build.flash_length=5238784
genericpicoprobe.menu.flash.16777216_11534336.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_11534336.build.fs_start=273674240
genericpicoprobe.menu.flash.16777216_11534336.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_12582912=16MB (FS: 12MB)
genericpicoprobe.menu.flash.16777216_12582912.upload.maximum_size=4190208
genericpicoprobe.menu.flash.16777216_12582912.build.flash_length=4190208
genericpicoprobe.menu.flash.16777216_12582912.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_12582912.build.fs_start=272625664
genericpicoprobe.menu.flash.16777216_12582912.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_13631488=16MB (FS: 13MB)
genericpicoprobe.menu.flash.16777216_13631488.upload.maximum_size=3141632
genericpicoprobe.menu.flash.16777216_13631488.build.flash_length=3141632
genericpicoprobe.menu.flash.16777216_13631488.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_13631488.build.fs_start=271577088
genericpicoprobe.menu.flash.16777216_13631488.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_14680064=16MB (FS: 14MB)
genericpicoprobe.menu.flash.16777216_14680064.upload.maximum_size=2093056
genericpicoprobe.menu.flash.16777216_14680064.build.flash_length=2093056
genericpicoprobe.menu.flash.16777216_14680064.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_14680064.build.fs_start=270528512
genericpicoprobe.menu.flash.16777216_14680064.build.fs_end=285208576
genericpicoprobe.menu.flash.16777216_15728640=16MB (FS: 15MB)
genericpicoprobe.menu.flash.16777216_15728640.upload.maximum_size=1044480
genericpicoprobe.menu.flash.16777216_15728640.build.flash_length=1044480
genericpicoprobe.menu.flash.16777216_15728640.build.eeprom_start=285208576
genericpicoprobe.menu.flash.16777216_15728640.build.fs_start=269479936
genericpicoprobe.menu.flash.16777216_15728640.build.fs_end=285208576
genericpicoprobe.menu.freq.125=125 MHz
genericpicoprobe.menu.freq.125.build.f_cpu=125000000L
genericpicoprobe.menu.freq.50=50 MHz
......@@ -825,3 +704,19 @@ genericpicoprobe.menu.dbglvl.All=All
genericpicoprobe.menu.dbglvl.All.build.debug_level=-DDEBUG_RP2040_WIRE -DDEBUG_RP2040_SPI -DDEBUG_RP2040_CORE
genericpicoprobe.menu.dbglvl.NDEBUG=NDEBUG
genericpicoprobe.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG
genericpicoprobe.menu.boot2.boot2_generic_03h_2_padded_checksum=Generic SPI /2
genericpicoprobe.menu.boot2.boot2_generic_03h_2_padded_checksum.build.boot2=boot2_generic_03h_2_padded_checksum
genericpicoprobe.menu.boot2.boot2_generic_03h_4_padded_checksum=Generic SPI /4
genericpicoprobe.menu.boot2.boot2_generic_03h_4_padded_checksum.build.boot2=boot2_generic_03h_4_padded_checksum
genericpicoprobe.menu.boot2.boot2_is25lp080_2_padded_checksum=IS25LP080 QSPI /2
genericpicoprobe.menu.boot2.boot2_is25lp080_2_padded_checksum.build.boot2=boot2_is25lp080_2_padded_checksum
genericpicoprobe.menu.boot2.boot2_is25lp080_4_padded_checksum=IS25LP080 QSPI /4
genericpicoprobe.menu.boot2.boot2_is25lp080_4_padded_checksum.build.boot2=boot2_is25lp080_4_padded_checksum
genericpicoprobe.menu.boot2.boot2_w25q080_2_padded_checksum=W25Q080 QSPI /2
genericpicoprobe.menu.boot2.boot2_w25q080_2_padded_checksum.build.boot2=boot2_w25q080_2_padded_checksum
genericpicoprobe.menu.boot2.boot2_w25q080_4_padded_checksum=W25Q080 QSPI /4
genericpicoprobe.menu.boot2.boot2_w25q080_4_padded_checksum.build.boot2=boot2_w25q080_4_padded_checksum
genericpicoprobe.menu.boot2.boot2_w25x10_2_padded_checksum=W25X10CL QSPI /2
genericpicoprobe.menu.boot2.boot2_w25x10_2_padded_checksum.build.boot2=boot2_w25x10_2_padded_checksum
genericpicoprobe.menu.boot2.boot2_w25x10_4_padded_checksum=W25X10CL QSPI /4
genericpicoprobe.menu.boot2.boot2_w25x10_4_padded_checksum.build.boot2=boot2_w25x10_4_padded_checksum
No preview for this file type
......@@ -32,13 +32,14 @@ PROVIDE ( _EEPROM_start = __EEPROM_START__ );
PROVIDE ( _FS_start = __FS_START__ );
PROVIDE ( _FS_end = __FS_END__ );
ENTRY(_entry_point)
SECTIONS
{
/* Second stage bootloader is prepended to the image. It must be 256 bytes big
and checksummed. It is usually built by the boot_stage2 target
in the Pico SDK
in the Raspberry Pi Pico SDK
*/
.flash_begin : {
......@@ -62,12 +63,11 @@ SECTIONS
*/
.text : {
__reset_start = .;
KEEP (*(.reset))
. = ALIGN(256);
__reset_end = .;
ASSERT(__reset_end - __reset_start == 256, "ERROR: reset section should only be 256 bytes");
__logical_binary_start = .;
KEEP (*(.vectors))
KEEP (*(.binary_info_header))
__binary_info_header_end = .;
KEEP (*(.reset))
/* TODO revisit this now memset/memcpy/float in ROM */
/* bit of a hack right now to exclude all floating point and time critical (e.g. memset, memcpy) code from
* FLASH ... we will include any thing excluded here in .data below by default */
......@@ -249,6 +249,8 @@ SECTIONS
/* Check if data + heap + stack exceeds RAM limit */
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed")
ASSERT( __binary_info_header_end - __logical_binary_start <= 256, "Binary info must be in first 256 bytes of the binary")
/* todo assert on extra code */
}
mkdir -p pico
touch pico/config.h
for type in boot2_generic_03h boot2_is25lp080 boot2_w25q080 boot2_w25x10cl; do
for div in 2 4; do
../../system/arm-none-eabi/bin/arm-none-eabi-gcc -march=armv6-m -mcpu=cortex-m0plus -mthumb -O3 -DNDEBUG -DPICO_FLASH_SPI_CLKDIV=$div -c ../../pico-sdk/src/rp2_common/boot_stage2/$type.S -I ../../pico-sdk/src/rp2_common/pico_platform/include/ -I ../../pico-sdk/src/rp2040/hardware_regs/include/ -I../../pico-sdk/src/rp2_common/boot_stage2/asminclude/ -I.
../../system/arm-none-eabi/bin/arm-none-eabi-gcc -march=armv6-m -mcpu=cortex-m0plus -mthumb -O3 -DNDEBUG -Wl,--build-id=none --specs=nosys.specs -nostartfiles -Wl,--script=../../pico-sdk/src/rp2_common/boot_stage2/boot_stage2.ld -Wl,-Map=$type.$div.elf.map $type.o -o $type.$div.elf
../../system/arm-none-eabi/bin/arm-none-eabi-objdump -h $type.$div.elf > $type.$div.dis
../../system/arm-none-eabi/bin/arm-none-eabi-objdump -d $type.$div.elf >> $type.$div.dis
../../system/arm-none-eabi/bin/arm-none-eabi-objcopy -Obinary $type.$div.elf $type.$div.bin
python3 ../../pico-sdk/src/rp2_common/boot_stage2/pad_checksum -s 0xffffffff $type.$div.bin ${type}_${div}_padded_checksum.S
done
done
......@@ -6,3 +6,12 @@ PICO_SDK_PATH=../../pico-sdk/ PATH="$(cd ../../system/arm-none-eabi/bin; pwd):$P
make
cp libpico.a ../../lib/.
cp generated/pico_base/pico/version.h ../../pico_base/pico/.
cd ..
rm -rf boot
mkdir boot
cd boot
../boot.sh
cp *.S ../../assembly/.
cd ..
......@@ -82,7 +82,7 @@ build.eeprom_start=
build.fs_start=
build.fs_end=
build.boot2=boot2_generic_03h_4_padded_checksum
# Allow Pico boards do be auto-discovered by the IDE
discovery.rp2040.pattern="{runtime.tools.pqt-python3.path}/python3" "{runtime.platform.path}/tools/discovery.py"
......@@ -107,7 +107,7 @@ recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compil
## Combine gc-sections, archives, and objects
recipe.hooks.linking.prelink.1.pattern="{runtime.tools.pqt-python3.path}/python3" "{runtime.platform.path}/tools/simplesub.py" --input "{runtime.platform.path}/lib/memmap_default.ld" --out "{build.path}/memmap_default.ld" --sub __FLASH_LENGTH__ {build.flash_length} --sub __EEPROM_START__ {build.eeprom_start} --sub __FS_START__ {build.fs_start} --sub __FS_END__ {build.fs_end}
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-L{build.path}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} "-Wl,--script={build.path}/memmap_default.ld" "-Wl,-Map,{build.path}/{build.project_name}.map" --specs=nosys.specs -Wl,--start-group {compiler.ldflags} -o "{build.path}/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "{runtime.platform.path}/lib/libpico.a" -lm "-I{runtime.platform.path}/pico-sdk/src/rp2040/hardware_regs/include/" "-I{runtime.platform.path}/pico-sdk/src/common/pico_binary_info/include" "{runtime.platform.path}/assembly/bs2_default_padded_checksummed.S" -lc -lstdc++ -Wl,--end-group
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-L{build.path}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} "-Wl,--script={build.path}/memmap_default.ld" "-Wl,-Map,{build.path}/{build.project_name}.map" --specs=nosys.specs -Wl,--start-group {compiler.ldflags} -o "{build.path}/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "{runtime.platform.path}/lib/libpico.a" -lm "-I{runtime.platform.path}/pico-sdk/src/rp2040/hardware_regs/include/" "-I{runtime.platform.path}/pico-sdk/src/common/pico_binary_info/include" "{runtime.platform.path}/assembly/{build.boot2}.S" -lc -lstdc++ -Wl,--end-group
## Create output (UF2 file)
recipe.objcopy.uf2.pattern="{runtime.tools.pqt-elf2uf2.path}/elf2uf2" "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.uf2"
......
......@@ -36,7 +36,15 @@ def BuildFreq(name):
print("%s.menu.freq.%s=%s MHz%s" % (name, f, f, warn))
print("%s.menu.freq.%s.build.f_cpu=%dL" % (name, f, f * 1000000))
def BuildHeader(name, prettyname, pid, boarddefine, variant, uploadtool, flashsize):
def BuildBoot(name):
for l in [ ("Generic SPI /2", "boot2_generic_03h_2_padded_checksum"), ("Generic SPI /4", "boot2_generic_03h_4_padded_checksum"),
("IS25LP080 QSPI /2", "boot2_is25lp080_2_padded_checksum"), ("IS25LP080 QSPI /4", "boot2_is25lp080_4_padded_checksum"),
("W25Q080 QSPI /2", "boot2_w25q080_2_padded_checksum"), ("W25Q080 QSPI /4", "boot2_w25q080_4_padded_checksum"),
("W25X10CL QSPI /2", "boot2_w25x10cl_2_padded_checksum"), ("W25X10CL QSPI /4", "boot2_w25x10cl_4_padded_checksum") ]:
print("%s.menu.boot2.%s=%s" % (name, l[1], l[0]))
print("%s.menu.boot2.%s.build.boot2=%s" % (name, l[1], l[1]))
def BuildHeader(name, prettyname, pid, boarddefine, variant, uploadtool, flashsize, boot2):
print("%s.name=%s" % (name, prettyname))
print("%s.vid.0=0x2e8a" % (name))
print("%s.pid.0=%s" % (name, pid))
......@@ -56,6 +64,7 @@ def BuildHeader(name, prettyname, pid, boarddefine, variant, uploadtool, flashsi
print("%s.build.core=rp2040" % (name))
print("%s.build.mcu=rp2040" % (name))
print("%s.build.ldscript=memmap_default.ld" % (name))
print("%s.build.boot2=%s" % (name, boot2))
def BuildGlobalMenuList():
print("menu.BoardModel=Model")
......@@ -63,23 +72,33 @@ def BuildGlobalMenuList():
print("menu.freq=CPU Speed")
print("menu.dbgport=Debug Port")
print("menu.dbglvl=Debug Level")
print("menu.boot2=Boot Stage 2")
def MakeBoard(name, prettyname, pid, boarddefine, flashsizemb):
def MakeBoard(name, prettyname, pid, boarddefine, flashsizemb, boot2):
for a, b, c in [ ["", "", "uf2conv"], ["picoprobe", " (Picoprobe)", "picoprobe"]]:
n = name + a
p = prettyname + b
fssizelist = [ 0, 64 * 1024, 128 * 1024, 256 * 1024, 512 * 1024 ]
for i in range(1, flashsizemb):
fssizelist.append(i * 1024 * 1024)
BuildHeader(n, p, pid, boarddefine, name, c, flashsizemb * 1024 * 1024)
BuildFlashMenu(n, flashsizemb * 1024 * 1024, fssizelist)
BuildHeader(n, p, pid, boarddefine, name, c, flashsizemb * 1024 * 1024, boot2)
if name == "generic":
BuildFlashMenu(n, 2*1024*1024, [0, 1*1024*1024])
BuildFlashMenu(n, 4*1024*1024, [0, 2*1024*1024])
BuildFlashMenu(n, 8*1024*1024, [0, 4*1024*1024])
BuildFlashMenu(n, 16*1024*1024, [0, 8*1024*1024])
else:
BuildFlashMenu(n, flashsizemb * 1024 * 1024, fssizelist)
BuildFreq(n)
BuildDebugPort(n)
BuildDebugLevel(n)
if name == "generic":
BuildBoot(n)
BuildGlobalMenuList()
MakeBoard("rpipico", "Raspberry Pi Pico", "0x000a", "RASPBERRY_PI_PICO", 2)
MakeBoard("adafruitfeather", "Adafruit Feather RP2040", "0x000b", "ADAFRUIT_FEATHER_RP2040", 8)
MakeBoard("generic", "Generic RP2040", "0xf00a", "GENERIC_RP2040", 16)
MakeBoard("rpipico", "Raspberry Pi Pico", "0x000a", "RASPBERRY_PI_PICO", 2, "boot2_w25q080_2_padded_checksum")
MakeBoard("adafruitfeather", "Adafruit Feather RP2040", "0x000b", "ADAFRUIT_FEATHER_RP2040", 8, "boot2_generic_03h_4_padded_checksum")
MakeBoard("generic", "Generic RP2040", "0xf00a", "GENERIC_RP2040", 16, "boot2_generic_03h_4_padded_checksum")
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment