Will Drewry | d3c938b | 2010-07-03 13:32:26 -0500 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| 4 | # Use of this source code is governed by a BSD-style license that can be |
| 5 | # found in the LICENSE file. |
| 6 | |
| 7 | # Creates an empty ESP image. |
| 8 | |
Greg Spencer | 798d75f | 2011-02-01 22:04:49 -0800 | [diff] [blame] | 9 | # --- BEGIN COMMON.SH BOILERPLATE --- |
| 10 | # Load common CrOS utilities. Inside the chroot this file is installed in |
| 11 | # /usr/lib/crosutils. Outside the chroot we find it relative to the script's |
| 12 | # location. |
| 13 | find_common_sh() { |
| 14 | local common_paths=(/usr/lib/crosutils $(dirname "$(readlink -f "$0")")) |
| 15 | local path |
| 16 | |
| 17 | SCRIPT_ROOT= |
| 18 | for path in "${common_paths[@]}"; do |
| 19 | if [ -r "${path}/common.sh" ]; then |
| 20 | SCRIPT_ROOT=${path} |
| 21 | break |
| 22 | fi |
| 23 | done |
| 24 | } |
| 25 | |
| 26 | find_common_sh |
| 27 | . "${SCRIPT_ROOT}/common.sh" || (echo "Unable to load common.sh" && exit 1) |
| 28 | # --- END COMMON.SH BOILERPLATE --- |
Will Drewry | d3c938b | 2010-07-03 13:32:26 -0500 | [diff] [blame] | 29 | |
| 30 | get_default_board |
| 31 | |
| 32 | # Flags. |
| 33 | DEFINE_string to "/tmp/esp.img" \ |
| 34 | "Path to esp image (Default: /tmp/esp.img)" |
| 35 | |
| 36 | # Parse flags |
| 37 | FLAGS "$@" || exit 1 |
| 38 | eval set -- "${FLAGS_ARGV}" |
| 39 | set -e |
| 40 | |
| 41 | if [[ -e "${FLAGS_to}" ]]; then |
| 42 | info "ESP already exists: ${FLAGS_to}" |
| 43 | exit 0 |
| 44 | fi |
| 45 | |
| 46 | info "Creating a new esp image at ${FLAGS_to}" anyway. |
| 47 | # Create EFI System Partition to boot stock EFI BIOS (but not ChromeOS EFI |
Kenneth Waters | e3049de | 2010-09-30 14:20:34 -0700 | [diff] [blame] | 48 | # BIOS). ARM uses this space to determine which partition is bootable. |
Will Drewry | d3c938b | 2010-07-03 13:32:26 -0500 | [diff] [blame] | 49 | # NOTE: The size argument for mkfs.vfat is in 1024-byte blocks. |
| 50 | # We'll hard-code it to 16M for now. |
| 51 | ESP_BLOCKS=16384 |
| 52 | /usr/sbin/mkfs.vfat -C "${FLAGS_to}" ${ESP_BLOCKS} |