blob: 6d1b83538253893325be5e4ae17694c64b6a7a54 [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 Stanley9b1006d2018-02-16 14:47:59 +103010 'cxgb4/t4fw-1.16.63.0.bin'
11 'cxgb4/t4fw.bin'
Joel Stanley182a2e02016-11-14 15:25:41 +103012 'cxgb3/'
Joel Stanleyf2955fb2018-08-20 16:00:10 +093013 'ql2500_fw.bin')
Samuel Mendoza-Jonasd5d10af2016-07-19 15:03:56 +100014
15if [ -z "${TARGET_DIR}" ] ; then
16 echo "TARGET_DIR not defined, setting to $1"
17 TARGET_DIR=$1
18fi
19
20files=$(find ${TARGET_DIR}/lib/firmware/*)
21for file in ${files};
22do
23 if [ -d $file ] ; then
24 continue
25 fi
26
27 found=0
28 for item in ${whitelist[@]};
29 do
30 if [ "${file/${item}}" != "${file}" ] ; then
31 found=1
32 break
33 fi
34 done
35
36 if [ "${found}" -ne "1" ] ; then
37 rm -v ${file}
38 fi
39done