Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Side by Side Diff: src/scripts/build_gpt.sh

Issue 1520007: Fake the GPT once for ARM to determine parameters for U-Boot script (Closed)
Patch Set: remove blank space Created 10 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 # 2 #
3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 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 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 # 6 #
7
8 # Load common constants. This should be the first executable line. 7 # Load common constants. This should be the first executable line.
9 # The path to common.sh should be relative to your script's location. 8 # The path to common.sh should be relative to your script's location.
10 . "$(dirname "$0")/common.sh" 9 . "$(dirname "$0")/common.sh"
11 10
12 # Load functions and constants for chromeos-install 11 # Load functions and constants for chromeos-install
13 . "$(dirname "$0")/chromeos-common.sh" 12 . "$(dirname "$0")/chromeos-common.sh"
14 13
15 # Script must be run inside the chroot. 14 # Script must be run inside the chroot.
16 assert_inside_chroot 15 assert_inside_chroot
17 16
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 95
97 STATEFUL_IMG="${IMAGEDIR}/stateful_partition.image" 96 STATEFUL_IMG="${IMAGEDIR}/stateful_partition.image"
98 if [[ ! -s ${STATEFUL_IMG} ]]; then 97 if [[ ! -s ${STATEFUL_IMG} ]]; then
99 error "Can't find ${STATEFUL_IMG}" 98 error "Can't find ${STATEFUL_IMG}"
100 exit 1 99 exit 1
101 fi 100 fi
102 101
103 # We'll need some code to put in the PMBR, for booting on legacy BIOS. Some ARM 102 # We'll need some code to put in the PMBR, for booting on legacy BIOS. Some ARM
104 # systems will use a U-Boot script temporarily, but it goes in the same place. 103 # systems will use a U-Boot script temporarily, but it goes in the same place.
105 if [[ "$ARCH" = "arm" ]]; then 104 if [[ "$ARCH" = "arm" ]]; then
106 # U-Boot script copies the kernel into memory, then boots it. 105 # We need to know the location and size of the kernel so we can create the
106 # U-Boot script to point to it. Let's create one fake GPT first which will
107 # set the appropriate environment variables. Then we can create the correct
108 # script and install it for real. A bit awkward, but this is only temporary.
109 echo "Installing fake GPT first, to calculate locations..."
110 install_gpt $OUTDEV $ROOTFS_IMG $KERNEL_IMG $STATEFUL_IMG /dev/zero
111
112 # Create the U-Boot script to copy the kernel into memory and boot it.
107 KERNEL_OFFSET=$(printf "0x%08x" ${START_KERN_A}) 113 KERNEL_OFFSET=$(printf "0x%08x" ${START_KERN_A})
108 KERNEL_SECS_HEX=$(printf "0x%08x" ${NUM_KERN_BLOCKS}) 114 KERNEL_SECS_HEX=$(printf "0x%08x" ${NUM_KERN_SECTORS})
109 MBR_SCRIPT="${IMAGEDIR}/mbr_script" 115 MBR_SCRIPT="${IMAGEDIR}/mbr_script"
110 echo -e "echo\necho ---- ChromeOS Boot ----\necho\n" \ 116 echo -e "echo\necho ---- ChromeOS Boot ----\necho\n" \
111 "mmc read 1 C0008000 $KERNEL_OFFSET $KERNEL_SECS_HEX\n" \ 117 "mmc read 1 C0008000 $KERNEL_OFFSET $KERNEL_SECS_HEX\n" \
112 "bootm C0008000" > ${MBR_SCRIPT} 118 "bootm C0008000" > ${MBR_SCRIPT}
113 MKIMAGE="${FLAGS_board_root}/u-boot/mkimage" 119 MKIMAGE="${FLAGS_board_root}/u-boot/mkimage"
114 if [[ -f "$MKIMAGE".gz ]]; then 120 if [[ -f "$MKIMAGE".gz ]]; then
115 sudo gunzip "$MKIMAGE".gz 121 sudo gunzip "$MKIMAGE".gz
116 fi 122 fi
117 if [[ -x "$MKIMAGE" ]]; then 123 if [[ -x "$MKIMAGE" ]]; then
118 MBR_SCRIPT_UIMG="${MBR_SCRIPT}.uimg" 124 MBR_SCRIPT_UIMG="${MBR_SCRIPT}.uimg"
(...skipping 18 matching lines...) Expand all
137 # Now populate the partitions. 143 # Now populate the partitions.
138 echo "Copying stateful partition..." 144 echo "Copying stateful partition..."
139 dd if=${STATEFUL_IMG} of=${OUTDEV} conv=notrunc bs=512 seek=${START_STATEFUL} 145 dd if=${STATEFUL_IMG} of=${OUTDEV} conv=notrunc bs=512 seek=${START_STATEFUL}
140 146
141 echo "Copying kernel..." 147 echo "Copying kernel..."
142 dd if=${KERNEL_IMG} of=${OUTDEV} conv=notrunc bs=512 seek=${START_KERN_A} 148 dd if=${KERNEL_IMG} of=${OUTDEV} conv=notrunc bs=512 seek=${START_KERN_A}
143 149
144 echo "Copying rootfs..." 150 echo "Copying rootfs..."
145 dd if=${ROOTFS_IMG} of=${OUTDEV} conv=notrunc bs=512 seek=${START_ROOTFS_A} 151 dd if=${ROOTFS_IMG} of=${OUTDEV} conv=notrunc bs=512 seek=${START_ROOTFS_A}
146 152
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698