blob: c28de7558980ae7ac93aa38d90f1d883542c5ca9 [file] [log] [blame]
Samuel Mendoza-Jonasd5d10af2016-07-19 15:03:56 +10001#!/bin/bash
2# Scan the /lib/firmware directory of the target and delete any firmware
3# binaries that are not in our whitelist
4
5# A whitelist of entire directories or specific binary files
6whitelist=( 'acenic'
7 'bnx2'
Joel Stanley903a4a52016-10-28 14:33:29 +10308 'bnx2x/bnx2x-e2-7.12.30.0.fw'
Samuel Mendoza-Jonasd5d10af2016-07-19 15:03:56 +10009 'cxgb4'
10 'cxgb3'
11 'e100'
Samuel Mendoza-Jonasd5d10af2016-07-19 15:03:56 +100012 'radeon/CEDAR_rlc.bin'
Samuel Mendoza-Jonasd5d10af2016-07-19 15:03:56 +100013 'radeon/CEDAR_pfp.bin'
Samuel Mendoza-Jonasd5d10af2016-07-19 15:03:56 +100014 'radeon/CEDAR_smc.bin'
15 'radeon/CEDAR_me.bin'
Samuel Mendoza-Jonas379b91c2016-09-13 11:26:16 +100016 'radeon/CYPRESS_uvd.bin')
Samuel Mendoza-Jonasd5d10af2016-07-19 15:03:56 +100017
18if [ -z "${TARGET_DIR}" ] ; then
19 echo "TARGET_DIR not defined, setting to $1"
20 TARGET_DIR=$1
21fi
22
23files=$(find ${TARGET_DIR}/lib/firmware/*)
24for file in ${files};
25do
26 if [ -d $file ] ; then
27 continue
28 fi
29
30 found=0
31 for item in ${whitelist[@]};
32 do
33 if [ "${file/${item}}" != "${file}" ] ; then
34 found=1
35 break
36 fi
37 done
38
39 if [ "${found}" -ne "1" ] ; then
40 rm -v ${file}
41 fi
42done