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