| Samuel Mendoza-Jonas | d5d10af | 2016-07-19 15:03:56 +1000 | [diff] [blame] | 1 | #!/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 Stanley | 182a2e0 | 2016-11-14 15:25:41 +1030 | [diff] [blame] | 5 | # A whitelist of entire directories or specific binary files. The trailing | 
|  | 6 | # slash is required. | 
|  | 7 | whitelist=(     'acenic/' | 
|  | 8 | 'bnx2/' | 
| Joel Stanley | 41a7f1e | 2016-10-31 23:15:44 +1030 | [diff] [blame] | 9 | 'bnx2x/bnx2x-e2-7.13.1.0.fw' | 
| Joel Stanley | 182a2e0 | 2016-11-14 15:25:41 +1030 | [diff] [blame] | 10 | 'cxgb4/' | 
|  | 11 | 'cxgb3/' | 
|  | 12 | 'e100/' | 
| Samuel Mendoza-Jonas | d5155dc | 2017-09-27 11:50:02 +1000 | [diff] [blame] | 13 | 'ql2500_fw.bin' | 
| Samuel Mendoza-Jonas | d5d10af | 2016-07-19 15:03:56 +1000 | [diff] [blame] | 14 | 'radeon/CEDAR_rlc.bin' | 
| Samuel Mendoza-Jonas | d5d10af | 2016-07-19 15:03:56 +1000 | [diff] [blame] | 15 | 'radeon/CEDAR_pfp.bin' | 
| Samuel Mendoza-Jonas | d5d10af | 2016-07-19 15:03:56 +1000 | [diff] [blame] | 16 | 'radeon/CEDAR_smc.bin' | 
|  | 17 | 'radeon/CEDAR_me.bin' | 
| Samuel Mendoza-Jonas | 379b91c | 2016-09-13 11:26:16 +1000 | [diff] [blame] | 18 | 'radeon/CYPRESS_uvd.bin') | 
| Samuel Mendoza-Jonas | d5d10af | 2016-07-19 15:03:56 +1000 | [diff] [blame] | 19 |  | 
|  | 20 | if [ -z "${TARGET_DIR}" ] ; then | 
|  | 21 | echo "TARGET_DIR not defined, setting to $1" | 
|  | 22 | TARGET_DIR=$1 | 
|  | 23 | fi | 
|  | 24 |  | 
|  | 25 | files=$(find ${TARGET_DIR}/lib/firmware/*) | 
|  | 26 | for file in ${files}; | 
|  | 27 | do | 
|  | 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 | 
|  | 44 | done |