summaryrefslogtreecommitdiff
path: root/tests/futility/test_load_fmap.sh
blob: a93b71f5ad9a8cee3baaf2c423bd18a26ab1a600 (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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/bash -eux
# Copyright 2014 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

me=${0##*/}
TMP="$me.tmp"

# Work in scratch directory
cd "$OUTDIR"


IN=${SCRIPT_DIR}/futility/data/bios_link_mp.bin
BIOS=${TMP}.bios.bin

cp ${IN} ${BIOS}

AREAS="RW_SECTION_A VBLOCK_B BOOT_STUB"

# Extract good blobs first
${FUTILITY} dump_fmap -x ${BIOS} ${AREAS}

# Save the good blobs, make same-size random blobs, create command
CMDS=""
for a in ${AREAS}; do
  size=$(stat -c '%s' $a)
  mv $a $a.good
  dd if=/dev/urandom of=$a.rand bs=$size count=1
  CMDS="$CMDS $a:$a.rand"
done

# Poke the new blobs in
${FUTILITY} load_fmap ${BIOS} ${CMDS}

# Pull them back out and see if they match
${FUTILITY} dump_fmap -x ${BIOS} ${AREAS}
for a in ${AREAS}; do
  cmp $a $a.rand
done

# cleanup
rm -f ${TMP}* ${AREAS} *.rand *.good
exit 0