blob: 0dfbec8cd8f555ebbb8bbffd31f00b75d349f9e4 [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
Joel Stanley182a2e02016-11-14 15:25:41 +10305# A whitelist of entire directories or specific binary files. The trailing
6# slash is required.
7whitelist=( 'acenic/'
8 'bnx2/'
Joel Stanley41a7f1e2016-10-31 23:15:44 +10309 'bnx2x/bnx2x-e2-7.13.1.0.fw'
Joel Stanley182a2e02016-11-14 15:25:41 +103010 'cxgb4/'
11 'cxgb3/'
12 'e100/'
Samuel Mendoza-Jonasd5155dc2017-09-27 11:50:02 +100013 'ql2500_fw.bin'
Samuel Mendoza-Jonasd5d10af2016-07-19 15:03:56 +100014 'radeon/CEDAR_rlc.bin'
Samuel Mendoza-Jonasd5d10af2016-07-19 15:03:56 +100015 'radeon/CEDAR_pfp.bin'
Samuel Mendoza-Jonasd5d10af2016-07-19 15:03:56 +100016 'radeon/CEDAR_smc.bin'
17 'radeon/CEDAR_me.bin'
Samuel Mendoza-Jonas379b91c2016-09-13 11:26:16 +100018 'radeon/CYPRESS_uvd.bin')
Samuel Mendoza-Jonasd5d10af2016-07-19 15:03:56 +100019
20if [ -z "${TARGET_DIR}" ] ; then
21 echo "TARGET_DIR not defined, setting to $1"
22 TARGET_DIR=$1
23fi
24
25files=$(find ${TARGET_DIR}/lib/firmware/*)
26for file in ${files};
27do
28 if [ -d $file ] ; then
29 continue
30 fi
31
32 found=0
33 for item in ${whitelist[@]};
34 do
35 if [ "${file/${item}}" != "${file}" ] ; then
36 found=1
37 break
38 fi
39 done
40
41 if [ "${found}" -ne "1" ] ; then
42 rm -v ${file}
43 fi
44done