Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 1 | ################################################################################ |
| 2 | # Following variables defines how the NS_USER (Non Secure User - Client |
| 3 | # Application), NS_KERNEL (Non Secure Kernel), S_KERNEL (Secure Kernel) and |
| 4 | # S_USER (Secure User - TA) are compiled |
| 5 | ################################################################################ |
| 6 | override COMPILE_NS_USER := 64 |
| 7 | override COMPILE_NS_KERNEL := 64 |
| 8 | override COMPILE_S_USER := 64 |
| 9 | override COMPILE_S_KERNEL := 64 |
| 10 | |
| 11 | # Firmware package to download, for convenience later on when unpacking etc, |
| 12 | # we split it up in three different variables. Note that this should be updated |
| 13 | # when newer firmware packages will be used. |
| 14 | RPI3_FIRMWARE_URL = https://github.com/raspberrypi/firmware/archive |
Igor Opaniuk | 3aaa1f1 | 2017-01-04 16:54:51 +0200 | [diff] [blame] | 15 | RPI3_FIRMWARE_FILE = da504fcd4c673ecf85841ea80c28a8bb8b94e612 |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 16 | RPI3_FIRMWARE_FILE_EXT = zip |
| 17 | |
| 18 | -include common.mk |
| 19 | |
| 20 | ################################################################################ |
| 21 | # Mandatory definition to use common.mk |
| 22 | ################################################################################ |
| 23 | ifeq ($(COMPILE_NS_USER),64) |
| 24 | MULTIARCH := aarch64-linux-gnu |
| 25 | else |
| 26 | MULTIARCH := arm-linux-gnueabihf |
| 27 | endif |
| 28 | |
| 29 | ################################################################################ |
| 30 | # Paths to git projects and various binaries |
| 31 | ################################################################################ |
| 32 | ARM_TF_PATH ?= $(ROOT)/arm-trusted-firmware |
| 33 | ARM_TF_OUT ?= $(ARM_TF_PATH)/build/rpi3/debug |
| 34 | ARM_TF_BIN ?= $(ARM_TF_OUT)/bl31.bin |
| 35 | ARM_TF_TMP ?= $(ARM_TF_OUT)/bl31.tmp |
| 36 | ARM_TF_HEAD ?= $(ARM_TF_OUT)/bl31.head |
| 37 | ARM_TF_BOOT ?= $(ARM_TF_OUT)/optee.bin |
| 38 | |
| 39 | U-BOOT_PATH ?= $(ROOT)/u-boot |
| 40 | U-BOOT_BIN ?= $(U-BOOT_PATH)/u-boot.bin |
Igor Opaniuk | accde81 | 2017-07-14 17:36:56 +0300 | [diff] [blame] | 41 | U-BOOT_RPI_BIN ?= $(U-BOOT_PATH)/u-boot-rpi.bin |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 42 | |
Igor Opaniuk | 67959e1 | 2016-12-21 15:19:27 +0200 | [diff] [blame] | 43 | RPI3_FIRMWARE_PATH ?= $(BUILD_PATH)/rpi3/firmware |
| 44 | RPI3_HEAD_BIN ?= $(ROOT)/out/head.bin |
| 45 | RPI3_BOOT_CONFIG ?= $(RPI3_FIRMWARE_PATH)/config.txt |
| 46 | RPI3_UBOOT_ENV ?= $(ROOT)/out/uboot.env |
| 47 | RPI3_UBOOT_ENV_TXT ?= $(RPI3_FIRMWARE_PATH)/uboot.env.txt |
| 48 | RPI3_STOCK_FW_PATH ?= $(ROOT)/rpi3_firmware |
| 49 | RPI3_STOCK_FW_PATH_BOOT ?= $(RPI3_STOCK_FW_PATH)/boot |
| 50 | RPI3_STOCK_ZIP_BOOT ?= firmware-$(RPI3_FIRMWARE_FILE)/boot |
| 51 | OPTEE_OS_PAGER ?= $(OPTEE_OS_PATH)/out/arm/core/tee-pager.bin |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 52 | |
| 53 | LINUX_IMAGE ?= $(LINUX_PATH)/arch/arm64/boot/Image |
| 54 | LINUX_DTB ?= $(LINUX_PATH)/arch/arm64/boot/dts/broadcom/bcm2710-rpi-3-b.dtb |
| 55 | MODULE_OUTPUT ?= $(ROOT)/module_output |
| 56 | |
| 57 | ################################################################################ |
| 58 | # Targets |
| 59 | ################################################################################ |
Igor Opaniuk | d522638 | 2017-07-14 18:11:07 +0300 | [diff] [blame] | 60 | ifeq ($(CFG_TEE_BENCHMARK),y) |
| 61 | all: benchmark-app |
| 62 | clean: benchmark-app-clean |
| 63 | endif |
Igor Opaniuk | d503411 | 2017-09-04 23:46:42 +0300 | [diff] [blame^] | 64 | all: rpi3-firmware arm-tf optee-os optee-client xtest u-boot u-boot-rpi-bin\ |
Igor Opaniuk | 584efe5 | 2017-08-07 01:41:48 +0300 | [diff] [blame] | 65 | linux update_rootfs optee-examples |
Igor Opaniuk | d503411 | 2017-09-04 23:46:42 +0300 | [diff] [blame^] | 66 | clean: arm-tf-clean busybox-clean u-boot-clean u-boot-rpi-bin-clean \ |
Igor Opaniuk | 584efe5 | 2017-08-07 01:41:48 +0300 | [diff] [blame] | 67 | optee-os-clean optee-client-clean rpi3-firmware-clean head-bin-clean \ |
| 68 | optee-examples-clean |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 69 | |
| 70 | -include toolchain.mk |
| 71 | |
| 72 | ################################################################################ |
| 73 | # ARM Trusted Firmware |
| 74 | ################################################################################ |
| 75 | ARM_TF_EXPORTS ?= \ |
| 76 | CFLAGS="-O0 -gdwarf-2" \ |
| 77 | CROSS_COMPILE="$(CCACHE)$(AARCH64_CROSS_COMPILE)" |
| 78 | |
| 79 | ARM_TF_FLAGS ?= \ |
| 80 | BL32=$(OPTEE_OS_BIN) \ |
| 81 | DEBUG=1 \ |
| 82 | V=0 \ |
| 83 | CRASH_REPORTING=1 \ |
| 84 | LOG_LEVEL=40 \ |
| 85 | PLAT=rpi3 \ |
| 86 | SPD=opteed |
| 87 | |
| 88 | arm-tf: optee-os |
| 89 | $(ARM_TF_EXPORTS) $(MAKE) -C $(ARM_TF_PATH) $(ARM_TF_FLAGS) all |
| 90 | cd $(ARM_TF_OUT) && \ |
| 91 | dd if=/dev/zero of=scratch bs=1c count=131072 && \ |
| 92 | cat $(ARM_TF_BIN) scratch > $(ARM_TF_TMP) && \ |
| 93 | dd if=$(ARM_TF_TMP) of=$(ARM_TF_HEAD) bs=1c count=131072 && \ |
| 94 | cat $(ARM_TF_HEAD) $(OPTEE_OS_PAGER) > $(ARM_TF_BOOT) && \ |
| 95 | rm scratch $(ARM_TF_TMP) $(ARM_TF_HEAD) |
| 96 | |
| 97 | arm-tf-clean: |
| 98 | $(ARM_TF_EXPORTS) $(MAKE) -C $(ARM_TF_PATH) $(ARM_TF_FLAGS) clean |
| 99 | |
| 100 | ################################################################################ |
| 101 | # Das U-Boot |
| 102 | ################################################################################ |
| 103 | |
| 104 | U-BOOT_EXPORTS ?= CROSS_COMPILE=$(LEGACY_AARCH64_CROSS_COMPILE) ARCH=arm64 |
| 105 | |
| 106 | .PHONY: u-boot |
Jerome Forissier | e8caec7 | 2016-12-15 17:07:07 +0100 | [diff] [blame] | 107 | u-boot: $(RPI3_HEAD_BIN) |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 108 | $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) rpi_3_defconfig |
| 109 | $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) all |
Igor Opaniuk | c176f57 | 2016-12-19 22:47:09 +0200 | [diff] [blame] | 110 | $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) tools |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 111 | |
| 112 | u-boot-clean: |
| 113 | $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) clean |
| 114 | |
Igor Opaniuk | accde81 | 2017-07-14 17:36:56 +0300 | [diff] [blame] | 115 | u-boot-rpi-bin: $(RPI3_UBOOT_ENV) u-boot |
| 116 | cd $(U-BOOT_PATH) && cat $(RPI3_HEAD_BIN) $(U-BOOT_BIN) > $(U-BOOT_RPI_BIN) |
Igor Opaniuk | c176f57 | 2016-12-19 22:47:09 +0200 | [diff] [blame] | 117 | |
Igor Opaniuk | accde81 | 2017-07-14 17:36:56 +0300 | [diff] [blame] | 118 | u-boot-rpi-bin-clean: |
| 119 | rm -f $(U-BOOT_RPI_BIN) |
Igor Opaniuk | c176f57 | 2016-12-19 22:47:09 +0200 | [diff] [blame] | 120 | |
Jerome Forissier | e8caec7 | 2016-12-15 17:07:07 +0100 | [diff] [blame] | 121 | $(RPI3_HEAD_BIN): $(RPI3_FIRMWARE_PATH)/head.S |
| 122 | mkdir -p $(ROOT)/out/ |
| 123 | $(AARCH64_CROSS_COMPILE)as $< -o $(ROOT)/out/head.o |
| 124 | $(AARCH64_CROSS_COMPILE)objcopy -O binary $(ROOT)/out/head.o $@ |
| 125 | |
| 126 | head-bin-clean: |
| 127 | rm -f $(RPI3_HEAD_BIN) $(ROOT)/out/head.o |
| 128 | |
Igor Opaniuk | c176f57 | 2016-12-19 22:47:09 +0200 | [diff] [blame] | 129 | $(RPI3_UBOOT_ENV): $(RPI3_UBOOT_ENV_TXT) u-boot |
| 130 | mkdir -p $(ROOT)/out |
| 131 | $(U-BOOT_PATH)/tools/mkenvimage -s 0x4000 -o $(ROOT)/out/uboot.env $(RPI3_UBOOT_ENV_TXT) |
| 132 | |
| 133 | u-boot-env-clean: |
| 134 | rm -f $(RPI3_UBOOT_ENV) |
| 135 | |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 136 | ################################################################################ |
| 137 | # Busybox |
| 138 | ################################################################################ |
| 139 | BUSYBOX_COMMON_TARGET = rpi3 |
| 140 | BUSYBOX_CLEAN_COMMON_TARGET = rpi3 clean |
| 141 | |
| 142 | busybox: busybox-common |
| 143 | |
| 144 | busybox-clean: busybox-clean-common |
| 145 | |
| 146 | busybox-cleaner: busybox-cleaner-common |
| 147 | ################################################################################ |
| 148 | # Linux kernel |
| 149 | ################################################################################ |
| 150 | LINUX_DEFCONFIG_COMMON_ARCH := arm64 |
| 151 | LINUX_DEFCONFIG_COMMON_FILES := \ |
| 152 | $(LINUX_PATH)/arch/arm64/configs/bcmrpi3_defconfig \ |
| 153 | $(CURDIR)/kconfigs/rpi3.conf |
| 154 | |
| 155 | linux-defconfig: $(LINUX_PATH)/.config |
| 156 | |
| 157 | LINUX_COMMON_FLAGS += ARCH=arm64 |
| 158 | |
| 159 | linux: linux-common |
| 160 | $(MAKE) -C $(LINUX_PATH) $(LINUX_COMMON_FLAGS) INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=$(MODULE_OUTPUT) modules_install |
| 161 | |
| 162 | linux-defconfig-clean: linux-defconfig-clean-common |
| 163 | |
| 164 | LINUX_CLEAN_COMMON_FLAGS += ARCH=arm64 |
| 165 | |
| 166 | linux-clean: linux-clean-common |
| 167 | |
| 168 | LINUX_CLEANER_COMMON_FLAGS += ARCH=arm64 |
| 169 | |
| 170 | linux-cleaner: linux-cleaner-common |
| 171 | |
| 172 | ################################################################################ |
| 173 | # OP-TEE |
| 174 | ################################################################################ |
| 175 | OPTEE_OS_COMMON_FLAGS += PLATFORM=rpi3 |
| 176 | optee-os: optee-os-common |
| 177 | |
| 178 | OPTEE_OS_CLEAN_COMMON_FLAGS += PLATFORM=rpi3 |
| 179 | optee-os-clean: optee-os-clean-common |
| 180 | |
| 181 | optee-client: optee-client-common |
| 182 | |
| 183 | optee-client-clean: optee-client-clean-common |
| 184 | |
| 185 | ################################################################################ |
| 186 | # Raspberry Pi 3 firmware |
| 187 | ################################################################################ |
| 188 | .PHONY: rpi3-firmware |
| 189 | rpi3-firmware: |
| 190 | ifeq ("$(wildcard $(ROOT)/out/$(RPI3_FIRMWARE_FILE).$(RPI3_FIRMWARE_FILE_EXT))","") |
| 191 | echo "Downloading Raspberry Pi 3 firmware ..." |
| 192 | mkdir -p $(ROOT)/out |
Igor Opaniuk | 67959e1 | 2016-12-21 15:19:27 +0200 | [diff] [blame] | 193 | mkdir -p $(RPI3_STOCK_FW_PATH)/boot |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 194 | wget $(RPI3_FIRMWARE_URL)/$(RPI3_FIRMWARE_FILE).$(RPI3_FIRMWARE_FILE_EXT) -O $(ROOT)/out/$(RPI3_FIRMWARE_FILE).$(RPI3_FIRMWARE_FILE_EXT) |
Igor Opaniuk | 67959e1 | 2016-12-21 15:19:27 +0200 | [diff] [blame] | 195 | unzip -aj $(ROOT)/out/$(RPI3_FIRMWARE_FILE).$(RPI3_FIRMWARE_FILE_EXT) \ |
| 196 | '$(RPI3_STOCK_ZIP_BOOT)/bootcode.bin' \ |
| 197 | '$(RPI3_STOCK_ZIP_BOOT)/COPYING.linux' \ |
| 198 | '$(RPI3_STOCK_ZIP_BOOT)/fixup_cd.dat' \ |
| 199 | '$(RPI3_STOCK_ZIP_BOOT)/fixup.dat' \ |
| 200 | '$(RPI3_STOCK_ZIP_BOOT)/fixup_db.dat' \ |
| 201 | '$(RPI3_STOCK_ZIP_BOOT)/fixup_x.dat' \ |
| 202 | '$(RPI3_STOCK_ZIP_BOOT)/LICENCE.broadcom' \ |
| 203 | '$(RPI3_STOCK_ZIP_BOOT)/start_cd.elf' \ |
| 204 | '$(RPI3_STOCK_ZIP_BOOT)/start_db.elf' \ |
| 205 | '$(RPI3_STOCK_ZIP_BOOT)/start.elf' \ |
| 206 | '$(RPI3_STOCK_ZIP_BOOT)/start_x.elf' -d $(RPI3_STOCK_FW_PATH)/boot |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 207 | endif |
| 208 | |
| 209 | .PHONY: rpi3-firmware-clean |
| 210 | rpi3-firmware-clean: |
| 211 | rm -f $(ROOT)/out/$(RPI3_FIRMWARE_FILE).$(RPI3_FIRMWARE_FILE_EXT) |
Igor Opaniuk | 67959e1 | 2016-12-21 15:19:27 +0200 | [diff] [blame] | 212 | if [ -d "$(RPI3_STOCK_FW_PATH_BOOT)" ]; then \ |
| 213 | rm -f '$(RPI3_STOCK_FW_PATH_BOOT)/bootcode.bin' \ |
| 214 | '$(RPI3_STOCK_FW_PATH_BOOT)/COPYING.linux' \ |
| 215 | '$(RPI3_STOCK_FW_PATH_BOOT)/fixup_cd.dat' \ |
| 216 | '$(RPI3_STOCK_FW_PATH_BOOT)/fixup.dat' \ |
| 217 | '$(RPI3_STOCK_FW_PATH_BOOT)/fixup_db.dat' \ |
| 218 | '$(RPI3_STOCK_FW_PATH_BOOT)/fixup_x.dat' \ |
| 219 | '$(RPI3_STOCK_FW_PATH_BOOT)/LICENCE.broadcom' \ |
| 220 | '$(RPI3_STOCK_FW_PATH_BOOT)/start_cd.elf' \ |
| 221 | '$(RPI3_STOCK_FW_PATH_BOOT)/start_db.elf' \ |
| 222 | '$(RPI3_STOCK_FW_PATH_BOOT)/start.elf' \ |
| 223 | '$(RPI3_STOCK_FW_PATH_BOOT)/start_x.elf'; \ |
| 224 | rmdir $(RPI3_STOCK_FW_PATH_BOOT); \ |
| 225 | rmdir $(RPI3_STOCK_FW_PATH); \ |
| 226 | fi |
| 227 | |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 228 | |
| 229 | ################################################################################ |
| 230 | # xtest / optee_test |
| 231 | ################################################################################ |
| 232 | xtest: xtest-common |
| 233 | |
| 234 | xtest-clean: xtest-clean-common |
| 235 | |
| 236 | xtest-patch: xtest-patch-common |
| 237 | |
| 238 | ################################################################################ |
Igor Opaniuk | 584efe5 | 2017-08-07 01:41:48 +0300 | [diff] [blame] | 239 | # Sample applications / optee_examples |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 240 | ################################################################################ |
Igor Opaniuk | 584efe5 | 2017-08-07 01:41:48 +0300 | [diff] [blame] | 241 | optee-examples: optee-examples-common |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 242 | |
Igor Opaniuk | 584efe5 | 2017-08-07 01:41:48 +0300 | [diff] [blame] | 243 | optee-examples-clean: optee-examples-clean-common |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 244 | |
| 245 | ################################################################################ |
Igor Opaniuk | d522638 | 2017-07-14 18:11:07 +0300 | [diff] [blame] | 246 | # benchmark |
| 247 | ################################################################################ |
| 248 | benchmark-app: benchmark-app-common |
| 249 | |
| 250 | benchmark-app-clean: benchmark-app-clean-common |
| 251 | |
| 252 | ################################################################################ |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 253 | # Root FS |
| 254 | ################################################################################ |
| 255 | .PHONY: filelist-tee |
Igor Opaniuk | 67959e1 | 2016-12-21 15:19:27 +0200 | [diff] [blame] | 256 | filelist-tee: linux rpi3-firmware |
Etienne Carriere | 5e11351 | 2016-10-21 10:13:57 +0200 | [diff] [blame] | 257 | filelist-tee: filelist-tee-common |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 258 | @echo "dir /usr/bin 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 259 | @echo "dir /boot 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
| 260 | @echo "file /boot/bcm2710-rpi-3-b.dtb $(LINUX_DTB) 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
| 261 | @echo "file /boot/config.txt $(RPI3_BOOT_CONFIG) 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
| 262 | @echo "file /boot/Image $(LINUX_IMAGE) 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
| 263 | @echo "file /boot/optee.bin $(ARM_TF_BOOT) 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
| 264 | @echo "file /boot/uboot.env $(RPI3_UBOOT_ENV) 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
Igor Opaniuk | accde81 | 2017-07-14 17:36:56 +0300 | [diff] [blame] | 265 | @echo "file /boot/u-boot-rpi.bin $(U-BOOT_RPI_BIN) 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 266 | @cd $(MODULE_OUTPUT) && find ! -path . -type d | sed 's/\.\(.*\)/dir \1 755 0 0/g' >> $(GEN_ROOTFS_FILELIST) |
| 267 | @cd $(MODULE_OUTPUT) && find -type f | sed "s|\.\(.*\)|file \1 $(MODULE_OUTPUT)\1 755 0 0|g" >> $(GEN_ROOTFS_FILELIST) |
| 268 | @echo "file /boot/bootcode.bin $(RPI3_STOCK_FW_PATH)/boot/bootcode.bin 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
| 269 | @echo "file /boot/COPYING.linux $(RPI3_STOCK_FW_PATH)/boot/COPYING.linux 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
| 270 | @echo "file /boot/fixup_cd.dat $(RPI3_STOCK_FW_PATH)/boot/fixup_cd.dat 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
| 271 | @echo "file /boot/fixup.dat $(RPI3_STOCK_FW_PATH)/boot/fixup.dat 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
| 272 | @echo "file /boot/fixup_db.dat $(RPI3_STOCK_FW_PATH)/boot/fixup_db.dat 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
| 273 | @echo "file /boot/fixup_x.dat $(RPI3_STOCK_FW_PATH)/boot/fixup_x.dat 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
| 274 | @echo "file /boot/LICENCE.broadcom $(RPI3_STOCK_FW_PATH)/boot/LICENCE.broadcom 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
| 275 | @echo "file /boot/start_cd.elf $(RPI3_STOCK_FW_PATH)/boot/start_cd.elf 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
| 276 | @echo "file /boot/start_db.elf $(RPI3_STOCK_FW_PATH)/boot/start_db.elf 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
| 277 | @echo "file /boot/start.elf $(RPI3_STOCK_FW_PATH)/boot/start.elf 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
| 278 | @echo "file /boot/start_x.elf $(RPI3_STOCK_FW_PATH)/boot/start_x.elf 755 0 0" >> $(GEN_ROOTFS_FILELIST) |
| 279 | |
| 280 | .PHONY: update_rootfs |
Igor Opaniuk | 67959e1 | 2016-12-21 15:19:27 +0200 | [diff] [blame] | 281 | update_rootfs: arm-tf u-boot rpi3-firmware |
Etienne Carriere | 5e11351 | 2016-10-21 10:13:57 +0200 | [diff] [blame] | 282 | update_rootfs: update_rootfs-common |
Philip Attfield | 3f9250f | 2016-09-14 07:43:32 +0200 | [diff] [blame] | 283 | |
| 284 | # Creating images etc, could wipe out a drive on the system, therefore we don't |
| 285 | # want to automate that in script or make target. Instead we just simply provide |
| 286 | # the steps here. |
| 287 | .PHONY: img-help |
| 288 | img-help: |
| 289 | @echo "$$ fdisk /dev/sdx # where sdx is the name of your sd-card" |
| 290 | @echo " > p # prints partition table" |
| 291 | @echo " > d # repeat until all partitions are deleted" |
| 292 | @echo " > n # create a new partition" |
| 293 | @echo " > p # create primary" |
| 294 | @echo " > 1 # make it the first partition" |
| 295 | @echo " > <enter> # use the default sector" |
| 296 | @echo " > +32M # create a boot partition with 32MB of space" |
| 297 | @echo " > n # create rootfs partition" |
| 298 | @echo " > p" |
| 299 | @echo " > 2" |
| 300 | @echo " > <enter>" |
| 301 | @echo " > <enter> # fill the remaining disk, adjust size to fit your needs" |
| 302 | @echo " > t # change partition type" |
| 303 | @echo " > 1 # select first partition" |
| 304 | @echo " > e # use type 'e' (FAT16)" |
| 305 | @echo " > a # make partition bootable" |
| 306 | @echo " > 1 # select first partition" |
| 307 | @echo " > p # double check everything looks right" |
| 308 | @echo " > w # write partition table to disk." |
| 309 | @echo "" |
| 310 | @echo "run the following as root" |
| 311 | @echo " $$ mkfs.vfat -F16 -n BOOT /dev/sdx1" |
| 312 | @echo " $$ mkdir -p /media/boot" |
| 313 | @echo " $$ mount /dev/sdx1 /media/boot" |
| 314 | @echo " $$ cd /media" |
| 315 | @echo " $$ gunzip -cd $(GEN_ROOTFS_PATH)/filesystem.cpio.gz | sudo cpio -idmv \"boot/*\"" |
| 316 | @echo " $$ umount boot" |
| 317 | @echo "" |
| 318 | @echo "run the following as root" |
| 319 | @echo " $$ mkfs.ext4 -L rootfs /dev/sdx2" |
| 320 | @echo " $$ mkdir -p /media/rootfs" |
| 321 | @echo " $$ mount /dev/sdx2 /media/rootfs" |
| 322 | @echo " $$ cd rootfs" |
| 323 | @echo " $$ gunzip -cd $(GEN_ROOTFS_PATH)/filesystem.cpio.gz | sudo cpio -idmv" |
| 324 | @echo " $$ rm -rf /media/rootfs/boot/*" |
| 325 | @echo " $$ cd .. && umount rootfs" |