aboutsummaryrefslogtreecommitdiffstats
path: root/tools/squashfs4/patches/180-openbsd_compat.patch
blob: 6d7a857a05ab140753c6dc6fd52cadfb9a3f9ef8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/env python
#
# b43 firmware file squasher
# Removes unnecessary firmware files
#
# Copyright (c) 2009 Michael Buesch <mb@bu3sch.de>
#
# Licensed under the GNU/GPL version 2 or (at your option) any later version.
#

import sys
import os

def usage():
	print("Usage: %s PHYTYPES COREREVS /path/to/extracted/firmware" % sys.argv[0])
	print("")
	print("PHYTYPES is a comma separated list of:")
	print("A         => A-PHY")
	print("AG        => Dual A-PHY G-PHY")
	print("G         => G-PHY")
	print("LP        => LP-PHY")
	print("N         => N-PHY")
	print("HT        => HT-PHY")
	print("LCN       => LCN-PHY")
	print("LCN40     => LCN40-PHY")
	print("AC        => AC-PHY")
	print("")
	print("COREREVS is a comma separated list of core revision numbers.")

if len(sys.argv) != 4:
	usage()
	sys.exit(1)

phytypes = sys.argv[1]
corerevs = sys.argv[2]
fwpath = sys.argv[3]

phytypes = phytypes.split(',')
try:
	corerevs = map(lambda r: int(r), corerevs.split(','))
except ValueError:
	print("ERROR: \"%s\" is not a valid COREREVS string\n" % corerevs)
	usage()
	sys.exit(1)


fwfiles = os.listdir(fwpath)
fwfiles = filter(lambda str: str.endswith(".fw"), fwfiles)
if not fwfiles:
	print("ERROR: No firmware files found in %s" % fwpath)
	sys.exit(1)

required_fwfiles = []

def revs_match(revs_a, revs_b):
	for rev in revs_a:
		if rev in revs_b:
			return True
	return False

def phytypes_match(types_a, types_b):
	for type in types_a:
		type = type.strip().upper()
		if type in types_b:
			return True
	return False

revmapping = {
	"ucode2.fw"		: ( (2,3,),		("G",), ),
	"ucode4.fw"		: ( (4,),		("G",), ),
	"ucode5.fw"		: ( (5,6,7,8,9,10,),	("G","A","AG",), ),
	"ucode11.fw"		: ( (11,12,),		("N",), ),
	"ucode13.fw"		: ( (13,),		("LP","G",), ),
	"ucode14.fw"		: ( (14,),		("LP",), ),
	"ucode15.fw"		: ( (15,),		("LP",), ),
	"ucode16_mimo.fw"	: ( (16,17,18,19,23,),	("N",), ),
#	"ucode16_lp.fw"		: ( (16,17,18,19,),	("LP",), ),
	"ucode24_lcn.fw"	: ( (24,),		("LCN",), ),