xref: /dflybsd-src/contrib/file/magic/Magdir/uf2 (revision 7b80531f545c7d3c51c1660130c71d01f6bccbe0)
1*614728caSSascha Wildner
2*614728caSSascha Wildner#------------------------------------------------------------------------------
3*614728caSSascha Wildner# $File: uf2,v 1.3 2021/04/28 01:00:31 christos Exp $
4*614728caSSascha Wildner# uf2:  file(1) magic for UF2 firmware image files
5*614728caSSascha Wildner#
6*614728caSSascha Wildner# https://github.com/microsoft/uf2
7*614728caSSascha Wildner#
8*614728caSSascha Wildner# Created by Blake Ramsdell <blaker@gmail.com>
9*614728caSSascha Wildner
10*614728caSSascha Wildner0	string	UF2\n		UF2 firmware image
11*614728caSSascha Wildner!:ext uf2
12*614728caSSascha Wildner# This is for checking the other magic numbers, do we want to do that?
13*614728caSSascha Wildner#>4	lelong	0x9E5D5157	howdy
14*614728caSSascha Wildner#>>508	lelong	0x0AB16F30	doody
15*614728caSSascha Wildner>8	lelong	&0x0001		\b, not main flash
16*614728caSSascha Wildner>8	lelong	&0x1000		\b, file container
17*614728caSSascha Wildner>8	lelong	&0x2000		\b, family
18*614728caSSascha Wildner
19*614728caSSascha Wildner# To update the UF2 family data, use this fine command
20*614728caSSascha Wildner#
21*614728caSSascha Wildner# families=`curl \
22*614728caSSascha Wildner# https://raw.githubusercontent.com/microsoft/uf2/master/utils/uf2families.json \
23*614728caSSascha Wildner# | jq -r '.[] | ">>28\tlelong\t\(.id)\t\(.description)"' | sort -n -k 3` && \
24*614728caSSascha Wildner# perl -0777 -i -pe \
25*614728caSSascha Wildner# "s/(### BEGIN UF2 FAMILIES\\n).*(\\n### END UF2 FAMILIES)/\$1$families\$2/s" \
26*614728caSSascha Wildner# uf2
27*614728caSSascha Wildner
28*614728caSSascha Wildner### BEGIN UF2 FAMILIES
29*614728caSSascha Wildner>>28	lelong	0x00ff6919	ST STM32L4xx
30*614728caSSascha Wildner>>28	lelong	0x04240bdf	ST STM32L5xx
31*614728caSSascha Wildner>>28	lelong	0x16573617	Microchip (Atmel) ATmega32
32*614728caSSascha Wildner>>28	lelong	0x1851780a	Microchip (Atmel) SAML21
33*614728caSSascha Wildner>>28	lelong	0x1b57745f	Nordic NRF52
34*614728caSSascha Wildner>>28	lelong	0x1c5f21b0	ESP32
35*614728caSSascha Wildner>>28	lelong	0x1e1f432d	ST STM32L1xx
36*614728caSSascha Wildner>>28	lelong	0x202e3a91	ST STM32L0xx
37*614728caSSascha Wildner>>28	lelong	0x21460ff0	ST STM32WLxx
38*614728caSSascha Wildner>>28	lelong	0x2abc77ec	NXP LPC55xx
39*614728caSSascha Wildner>>28	lelong	0x300f5633	ST STM32G0xx
40*614728caSSascha Wildner>>28	lelong	0x31d228c6	GD32F350
41*614728caSSascha Wildner>>28	lelong	0x4c71240a	ST STM32G4xx
42*614728caSSascha Wildner>>28	lelong	0x4fb2d5bd	NXP i.MX RT10XX
43*614728caSSascha Wildner>>28	lelong	0x53b80f00	ST STM32F7xx
44*614728caSSascha Wildner>>28	lelong	0x55114460	Microchip (Atmel) SAMD51
45*614728caSSascha Wildner>>28	lelong	0x57755a57	ST STM32F401
46*614728caSSascha Wildner>>28	lelong	0x5a18069b	Cypress FX2
47*614728caSSascha Wildner>>28	lelong	0x5d1a0a2e	ST STM32F2xx
48*614728caSSascha Wildner>>28	lelong	0x5ee21072	ST STM32F103
49*614728caSSascha Wildner>>28	lelong	0x647824b6	ST STM32F0xx
50*614728caSSascha Wildner>>28	lelong	0x68ed2b88	Microchip (Atmel) SAMD21
51*614728caSSascha Wildner>>28	lelong	0x6b846188	ST STM32F3xx
52*614728caSSascha Wildner>>28	lelong	0x6d0922fa	ST STM32F407
53*614728caSSascha Wildner>>28	lelong	0x6db66082	ST STM32H7xx
54*614728caSSascha Wildner>>28	lelong	0x70d16653	ST STM32WBxx
55*614728caSSascha Wildner>>28	lelong	0x7eab61ed	ESP8266
56*614728caSSascha Wildner>>28	lelong	0x7f83e793	NXP KL32L2x
57*614728caSSascha Wildner>>28	lelong	0x8fb060fe	ST STM32F407VG
58*614728caSSascha Wildner>>28	lelong	0xada52840	Nordic NRF52840
59*614728caSSascha Wildner>>28	lelong	0xbfdd4eee	ESP32-S2
60*614728caSSascha Wildner>>28	lelong	0xc47e5767	ESP32-S3
61*614728caSSascha Wildner>>28	lelong	0xd42ba06c	ESP32-C3
62*614728caSSascha Wildner>>28	lelong	0xe48bff56	Raspberry Pi RP2040
63*614728caSSascha Wildner### END UF2 FAMILIES
64*614728caSSascha Wildner
65*614728caSSascha Wildner>>28	default	x
66*614728caSSascha Wildner>>>28	lelong	x		%#08x
67*614728caSSascha Wildner>8	lelong&0x2000	0	\b, file size
68*614728caSSascha Wildner>>28	lelong	x		%#08x
69*614728caSSascha Wildner>8	lelong	&0x4000		\b, MD5 checksum present
70*614728caSSascha Wildner>8	lelong	&0x8000		\b, extension tags present
71*614728caSSascha Wildner>12	lelong	x 		\b, address %#08x
72*614728caSSascha Wildner>24	lelong	x		\b, %u total blocks
73