usb-protocols.txt (1685B)
1 2 18d1:db00 - lpcboot / m3boot 3 ---------------------------- 4 - provides a pair of USB bulk endpoints, IN and OUT 5 - write a three word (32b-LE) command sequence ( MAGIC, CMD, ARG) 6 - MAGIC is 0xDB00A5A5 7 - see below for CMD 8 - ARG should be zero if not specified 9 - read a two word (32b-LE) response ( MAGIC, STATUS) 10 - MAGIC is 0xDB00A5A5 11 - nonzero STATUS is failure 12 - read or write payload, as required 13 14 - commands 15 - write to flash: CMD='W', ARG=size 16 - write to RAM (and execute): CMD='X', ARG=size 17 - erase flash: CMD='E' 18 - reboot: CMD='R' 19 - start code in flash: CMD='A' 20 - query device info: CMD='Q' 21 22 struct device_info { 23 char part[16]; /* "LPC1343", "STM32F103", etc */ 24 char board[16]; /* "M3DEBUG", "TESTBOARD123", etc */ 25 uint32_t version; /* protocol version: 0x0001000 -> V1.0 */ 26 uint32_t ram_base; /* start of SRAM */ 27 uint32_t ram_size; /* length of SRAM (minus 1K bootloader workspace) */ 28 uint32_t rom_base; /* start of FLASH (after 4K bootloader) */ 29 uint32_t rom_size; /* length of FLASH (minus 4K bootloader) 30 uint32_t ununsed0; 31 uint32_t ununsed1; 32 uint32_t ununsed2; 33 }; 34 35 36 18d1:db03 - remote swdp 37 ----------------------- 38 - provides a pair of USB bulk endpoints, IN and OUT 39 - see include/protocol/rswdp.h for details 40 41 18d1:db05 - usb console 42 ----------------------- 43 - provides a pair of USB bulk endpoints, IN and OUT 44 - console output (device to host) provided via BULK IN 45 - console input (host to device) provided via BULK OUT (format TBD) 46 47 18d1:db04 - remote swdp + console 48 --------------------------------- 49 - interface 0 provides remote swdp 50 - interface 1 provides usb console 51