xref: /freebsd/contrib/file/magic/Magdir/rpi (revision a4d6d3b8910f3805eebcd8703e11e066aad2e2a1)
158a0f0d0SEitan Adler
258a0f0d0SEitan Adler#------------------------------------------------------------------------------
3*a4d6d3b8SXin LI# $File: rpi,v 1.3 2022/04/02 14:39:34 christos Exp $
458a0f0d0SEitan Adler# rpi:  file(1) magic for Raspberry Pi images
558a0f0d0SEitan Adler-44		lelong	0
658a0f0d0SEitan Adler>4		lelong	0
758a0f0d0SEitan Adler>>8		lelong	1
858a0f0d0SEitan Adler>>12		lelong	4
958a0f0d0SEitan Adler>>>16		string	283x
1058a0f0d0SEitan Adler>>>>20		lelong	1
1158a0f0d0SEitan Adler>>>>>24		lelong	4
1258a0f0d0SEitan Adler>>>>>>28	string	DTOK
1358a0f0d0SEitan Adler>>>>>>>32	lelong	44
1458a0f0d0SEitan Adler>>>>>>>>36	lelong	4
1558a0f0d0SEitan Adler>>>>>>>>>40	string	RPTL		Raspberry PI kernel image
16d38c30c0SXin LI
17d38c30c0SXin LI-56		lelong	0
18d38c30c0SXin LI>4		lelong	0
19d38c30c0SXin LI>>8		lelong	1
20d38c30c0SXin LI>>12		lelong	4
21d38c30c0SXin LI>>>16		string	283x
22d38c30c0SXin LI>>>>20		lelong	1
23d38c30c0SXin LI>>>>>24		lelong	4
24d38c30c0SXin LI>>>>>>28	string	DTOK
25d38c30c0SXin LI>>>>>>>32	lelong	1
26d38c30c0SXin LI>>>>>>>>36	lelong	4
27d38c30c0SXin LI>>>>>>>>>40	string	DDTK8
28d38c30c0SXin LI>>>>>>>>>>48	lelong	4
29d38c30c0SXin LI>>>>>>>>>>>52	string	RPTL		Raspberry PI kernel image
30*a4d6d3b8SXin LI
31*a4d6d3b8SXin LI# From: 	Joerg Jenderek
32*a4d6d3b8SXin LI# URL:		https://www.raspberrypi.com/documentation/computers/raspberry-pi.html
33*a4d6d3b8SXin LI#		#raspberry-pi-4-boot-eeprom
34*a4d6d3b8SXin LI# Reference:	https://github.com/raspberrypi/rpi-eeprom/blob/master/rpi-eeprom-config
35*a4d6d3b8SXin LI# Note:		start with same magic as for BIOS (ia32) ROM Extension handled by ./intel
36*a4d6d3b8SXin LI# masked with MAGIC_MASK and then compared with MAGIC
37*a4d6d3b8SXin LI0	belong&0xFFffF00F	0x55aaF00F	Raspberry PI EEPROM
38*a4d6d3b8SXin LI#!:mime	application/octet-stream
39*a4d6d3b8SXin LI!:mime	application/x-raspberry-eeprom
40*a4d6d3b8SXin LI# like: pieeprom-2020-09-03.bin
41*a4d6d3b8SXin LI!:ext	bin
42*a4d6d3b8SXin LI# a 32 bit offset to the next section like: 000184d4 000184c8 00018534 ... 0000bb84 0000bbd4 0000bbd4
43*a4d6d3b8SXin LI>4	ubelong			x		\b, offset %8.8x
44*a4d6d3b8SXin LI#>(4.L)	ubelong			x		NEXT=%8.8x
45*a4d6d3b8SXin LI# self.length
46*a4d6d3b8SXin LI>8	ubelong			!0		\b, length %x
47*a4d6d3b8SXin LI# self.filename
48*a4d6d3b8SXin LI>12	string			>0		\b, "%s"
49*a4d6d3b8SXin LI# length is zero
50*a4d6d3b8SXin LI>8	ubelong			=0
51*a4d6d3b8SXin LI# if length is zero then 2nd section magic here can be zero; this means sections parsing done
52*a4d6d3b8SXin LI>>8	ubelong			!0		\b, 2nd MAGIC=%8.8x
53