Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [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 | |
Fathi Boudra | a026497 | 2024-03-18 15:25:23 +0100 | [diff] [blame] | 11 | TFA_PLATFORM ?= imx8mq |
Fathi Boudra | f8cad7f | 2024-03-18 15:22:53 +0100 | [diff] [blame] | 12 | OPTEE_OS_PLATFORM ?= imx-mx8mqevk |
Fathi Boudra | 4b750a8 | 2024-03-18 23:13:14 +0100 | [diff] [blame] | 13 | U_BOOT_DEFCONFIG ?= imx8mq_evk_defconfig |
| 14 | U_BOOT_DT ?= imx8mq-evk.dtb |
| 15 | LINUX_DT ?= imx8mq-evk.dtb |
Fathi Boudra | 950763f | 2024-03-28 12:54:11 +0100 | [diff] [blame] | 16 | MKIMAGE_DT ?= fsl-imx8mq-evk.dtb |
Fathi Boudra | e22c16e | 2024-03-19 00:55:05 +0100 | [diff] [blame] | 17 | MKIMAGE_SOC ?= iMX8MQ |
Fathi Boudra | f279165 | 2024-03-18 15:27:08 +0100 | [diff] [blame] | 18 | |
| 19 | BR2_TARGET_GENERIC_GETTY_PORT ?= ttymxc0 |
| 20 | BR2_TARGET_ROOTFS_EXT2 ?= y |
| 21 | BR2_TARGET_ROOTFS_EXT2_4 ?= y |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 22 | |
| 23 | include common.mk |
| 24 | |
| 25 | ################################################################################ |
| 26 | # Paths to git projects and various binaries |
| 27 | ################################################################################ |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 28 | FIRMWARE_PATH ?= $(ROOT)/out-firmware |
Fathi Boudra | 078bfb6 | 2024-03-18 15:34:53 +0100 | [diff] [blame] | 29 | MKIMAGE_PATH ?= $(ROOT)/imx-mkimage |
Fathi Boudra | e22c16e | 2024-03-19 00:55:05 +0100 | [diff] [blame] | 30 | MKIMAGE_SOC_PATH ?= $(MKIMAGE_PATH)/iMX8M |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 31 | TF_A_PATH ?= $(ROOT)/trusted-firmware-a |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 32 | |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 33 | FIRMWARE_VERSION ?= firmware-imx-8.0 |
Fathi Boudra | dd144c3 | 2024-03-18 15:33:42 +0100 | [diff] [blame] | 34 | FIRMWARE_BIN_SHA256_SUM ?= 63ec62f5d229cbed00918c8449173933f1c9d594c59396b8dd217e94f47138b0 |
| 35 | FIRMWARE_BIN ?= $(FIRMWARE_VERSION).bin |
| 36 | FIRMWARE_BIN_URL ?= https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/$(FIRMWARE_BIN) |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 37 | |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 38 | BOOT_IMG ?= $(ROOT)/out/boot.img |
| 39 | |
| 40 | ################################################################################ |
| 41 | # Targets |
| 42 | ################################################################################ |
| 43 | all: tfa u-boot linux optee-os buildroot flash-image |
Fathi Boudra | e628ce2 | 2024-03-18 23:51:54 +0100 | [diff] [blame] | 44 | clean: ddr-firmware-clean optee-os-clean tfa-clean u-boot-clean buildroot-clean |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 45 | |
| 46 | include toolchain.mk |
| 47 | |
| 48 | ################################################################################ |
| 49 | # ARM Trusted Firmware |
| 50 | ################################################################################ |
| 51 | TF_A_EXPORTS = CROSS_COMPILE="$(CCACHE)$(AARCH64_CROSS_COMPILE)" |
| 52 | |
| 53 | # BL32=$(OPTEE_OS_HEADER_V2_BIN) \ |
| 54 | # BL32_EXTRA1=$(OPTEE_OS_PAGER_V2_BIN) \ |
| 55 | # BL32_EXTRA2=$(OPTEE_OS_PAGEABLE_V2_BIN) \ |
| 56 | |
Fathi Boudra | 75a6896 | 2024-03-28 12:58:17 +0100 | [diff] [blame^] | 57 | TF_A_FLAGS += PLAT=$(TFA_PLATFORM) SPD=opteed DEBUG_CONSOLE=1 DEBUG=0 V=1 |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 58 | TF_A_FLAGS += BL32=$(OPTEE_OS_PATH)/out/arm/core/tee-raw.bin |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 59 | |
Fathi Boudra | 56a167a | 2024-03-18 15:36:04 +0100 | [diff] [blame] | 60 | tfa: optee-os |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 61 | $(TF_A_EXPORTS) $(MAKE) -C $(TF_A_PATH) $(TF_A_FLAGS) all fip |
| 62 | |
| 63 | tfa-clean: |
| 64 | $(TF_A_EXPORTS) $(MAKE) -C $(TF_A_PATH) $(TF_A_FLAGS) clean |
| 65 | |
| 66 | ################################################################################ |
| 67 | # U-Boot |
| 68 | ################################################################################ |
| 69 | |
| 70 | U-BOOT_EXPORTS = CROSS_COMPILE="$(CCACHE)$(AARCH64_CROSS_COMPILE)" |
| 71 | |
Fathi Boudra | 4b750a8 | 2024-03-18 23:13:14 +0100 | [diff] [blame] | 72 | U-BOOT_DEFCONFIG_FILES := $(UBOOT_PATH)/configs/$(U_BOOT_DEFCONFIG) \ |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 73 | $(BUILD_PATH)/kconfigs/uboot_imx8.conf |
| 74 | |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 75 | $(UBOOT_PATH)/.config: $(U-BOOT_DEFCONFIG_FILES) |
Fathi Boudra | 4b750a8 | 2024-03-18 23:13:14 +0100 | [diff] [blame] | 76 | $(U-BOOT_EXPORTS) $(MAKE) -C $(UBOOT_PATH) $(U_BOOT_DEFCONFIG) |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 77 | (cd $(UBOOT_PATH) && ARCH=arm64 scripts/kconfig/merge_config.sh \ |
Fathi Boudra | 3db3088 | 2024-03-18 15:39:22 +0100 | [diff] [blame] | 78 | $(U-BOOT_DEFCONFIG_FILES)) |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 79 | |
| 80 | .PHONY: u-boot-defconfig |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 81 | u-boot-defconfig: $(UBOOT_PATH)/.config |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 82 | |
| 83 | .PHONY: u-boot |
Fathi Boudra | c043c1a | 2024-03-18 16:01:59 +0100 | [diff] [blame] | 84 | u-boot: u-boot-defconfig tfa ddr-firmware |
| 85 | cp $(FIRMWARE_PATH)/$(FIRMWARE_VERSION)/firmware/ddr/synopsys/lpddr4_pmu_train_*.bin \ |
| 86 | $(TF_A_PATH)/build/$(TFA_PLATFORM)/release/bl31.bin \ |
| 87 | $(UBOOT_PATH) |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 88 | $(U-BOOT_EXPORTS) $(MAKE) -C $(UBOOT_PATH) |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 89 | |
| 90 | .PHONY: u-boot-clean |
| 91 | u-boot-clean: |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 92 | cd $(UBOOT_PATH) && git clean -xdf |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 93 | |
| 94 | .PHONY: u-boot-cscope |
| 95 | u-boot-cscope: |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 96 | $(U-BOOT_EXPORTS) $(MAKE) -C $(UBOOT_PATH) cscope |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 97 | |
| 98 | |
| 99 | ################################################################################ |
| 100 | # Linux kernel |
| 101 | ################################################################################ |
| 102 | LINUX_DEFCONFIG_COMMON_ARCH := arm64 |
| 103 | LINUX_DEFCONFIG_COMMON_FILES := \ |
| 104 | $(LINUX_PATH)/arch/arm64/configs/defconfig \ |
| 105 | $(CURDIR)/kconfigs/imx.conf |
| 106 | |
| 107 | linux-defconfig: $(LINUX_PATH)/.config |
| 108 | |
| 109 | LINUX_COMMON_FLAGS += ARCH=arm64 |
| 110 | |
| 111 | linux: linux-common |
| 112 | |
| 113 | linux-defconfig-clean: linux-defconfig-clean-common |
| 114 | |
| 115 | LINUX_CLEAN_COMMON_FLAGS += ARCH=arm64 |
| 116 | |
| 117 | linux-clean: linux-clean-common |
| 118 | |
| 119 | LINUX_CLEANER_COMMON_FLAGS += ARCH=arm64 |
| 120 | |
| 121 | linux-cleaner: linux-cleaner-common |
| 122 | |
| 123 | ################################################################################ |
| 124 | # OP-TEE |
| 125 | ################################################################################ |
| 126 | optee-os: optee-os-common |
| 127 | optee-os-clean: optee-os-clean-common |
| 128 | |
| 129 | ################################################################################ |
| 130 | # DDR firmware |
| 131 | ################################################################################ |
| 132 | # This is prebuilt binaries by NXP, download them and use them. Update path if |
| 133 | # it changes in the future. |
| 134 | |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 135 | $(FIRMWARE_PATH)/$(FIRMWARE_BIN): |
| 136 | mkdir -p $(FIRMWARE_PATH) |
| 137 | (cd $(FIRMWARE_PATH) && wget $(FIRMWARE_BIN_URL)) |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 138 | |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 139 | $(FIRMWARE_PATH)/.unpacked: $(FIRMWARE_PATH)/$(FIRMWARE_BIN) |
| 140 | (cd $(FIRMWARE_PATH) && \ |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 141 | echo $(FIRMWARE_BIN_SHA256_SUM) $(FIRMWARE_BIN) | sha256sum -c) |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 142 | (cd $(FIRMWARE_PATH) && \ |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 143 | chmod 711 $(FIRMWARE_BIN) && ./$(FIRMWARE_BIN) --auto-accept) |
| 144 | touch $(FIRMWARE_PATH)/.unpacked |
Fathi Boudra | c043c1a | 2024-03-18 16:01:59 +0100 | [diff] [blame] | 145 | |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 146 | .PHONY: ddr-firmware |
| 147 | ddr-firmware: $(FIRMWARE_PATH)/.unpacked |
| 148 | |
| 149 | ddr-firmware-clean: |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 150 | rm -rf $(FIRMWARE_PATH) |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 151 | |
| 152 | ################################################################################ |
| 153 | # imx-mkimage |
| 154 | ################################################################################ |
Fathi Boudra | c043c1a | 2024-03-18 16:01:59 +0100 | [diff] [blame] | 155 | mkimage: u-boot |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 156 | ln -sf $(OPTEE_OS_PATH)/out/arm/core/tee-raw.bin \ |
Fathi Boudra | e22c16e | 2024-03-19 00:55:05 +0100 | [diff] [blame] | 157 | $(MKIMAGE_SOC_PATH)/tee.bin |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 158 | ln -sf $(TF_A_PATH)/build/$(TFA_PLATFORM)/release/bl31.bin \ |
Fathi Boudra | e22c16e | 2024-03-19 00:55:05 +0100 | [diff] [blame] | 159 | $(MKIMAGE_SOC_PATH)/ |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 160 | ln -sf $(FIRMWARE_PATH)/$(FIRMWARE_VERSION)/firmware/ddr/synopsys/lpddr4_pmu_train_*.bin \ |
Fathi Boudra | e22c16e | 2024-03-19 00:55:05 +0100 | [diff] [blame] | 161 | $(MKIMAGE_SOC_PATH)/ |
| 162 | ln -sf $(UBOOT_PATH)/u-boot-nodtb.bin $(MKIMAGE_SOC_PATH)/ |
| 163 | ln -sf $(UBOOT_PATH)/spl/u-boot-spl.bin $(MKIMAGE_SOC_PATH)/ |
Fathi Boudra | 4b750a8 | 2024-03-18 23:13:14 +0100 | [diff] [blame] | 164 | ln -sf $(UBOOT_PATH)/arch/arm/dts/$(U_BOOT_DT) \ |
Fathi Boudra | 950763f | 2024-03-28 12:54:11 +0100 | [diff] [blame] | 165 | $(MKIMAGE_SOC_PATH)/$(MKIMAGE_DT) |
Fathi Boudra | e22c16e | 2024-03-19 00:55:05 +0100 | [diff] [blame] | 166 | ln -sf $(UBOOT_PATH)/tools/mkimage $(MKIMAGE_SOC_PATH)/mkimage_uboot |
| 167 | $(MAKE) -C $(MKIMAGE_PATH) SOC=$(MKIMAGE_SOC) flash_spl_uboot |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 168 | #> +If you want to run with HDMI, copy signed_hdmi_imx8m.bin to imx-mkimage/iMX8M |
| 169 | #> +make SOC=iMX8M flash_spl_uboot or make SOC=iMX8M flash_hdmi_spl_uboot to |
| 170 | #> +generate flash.bin. |
| 171 | mkimage-clean: |
| 172 | cd $(MKIMAGE_PATH) && git clean -xdf |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 173 | rm -f $(BUILD_PATH)/mkimage_imx8 |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 174 | |
| 175 | $(ROOT)/out-br/images/ramdisk.img: $(ROOT)/out-br/images/rootfs.cpio.gz |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 176 | $(UBOOT_PATH)/tools/mkimage -A arm64 -O linux -T ramdisk -C gzip \ |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 177 | -d $< $@ |
| 178 | |
| 179 | $(ROOT)/out: |
| 180 | mkdir -p $@ |
| 181 | |
Fathi Boudra | 7f988ae | 2024-03-18 15:57:29 +0100 | [diff] [blame] | 182 | $(ROOT)/out/boot.scr: $(BUILD_PATH)/imx/u-boot_boot_script | $(ROOT)/out |
| 183 | $(UBOOT_PATH)/tools/mkimage -T script -C none -n 'Boot script' \ |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 184 | -d $< $@ |
| 185 | |
James Menetrey | 7223f45 | 2021-04-29 17:01:09 +0000 | [diff] [blame] | 186 | ################################################################################ |
| 187 | # Flash images |
| 188 | ################################################################################ |
| 189 | USE_PERSISTENT_ROOTFS ?= 0 |
| 190 | |
| 191 | # Configuration of the BOOT partition |
| 192 | FLASH_PARTITIONS_BLOCK_SIZE = 512 |
| 193 | FLASH_PARTITION_BOOT_START_BLOCK = 16384 |
| 194 | FLASH_PARTITION_BOOT_SIZE_IN_BYTES = \ |
| 195 | $(shell echo $$(( 64 * 1024 * 1024 ))) |
| 196 | FLASH_PARTITION_BOOT_SIZE_IN_BLOCKS = \ |
| 197 | $(shell echo $$(( $(FLASH_PARTITION_BOOT_SIZE_IN_BYTES) / $(FLASH_PARTITIONS_BLOCK_SIZE) ))) |
| 198 | FLASH_PARTITIONS_TABLE = "\ |
| 199 | start=$(FLASH_PARTITION_BOOT_START_BLOCK) \ |
| 200 | size=$(FLASH_PARTITION_BOOT_SIZE_IN_BLOCKS) \ |
| 201 | type=7\n" |
| 202 | FLASH_IMAGE_SIZE = \ |
| 203 | $(shell echo $$(( $(FLASH_PARTITION_BOOT_START_BLOCK) * $(FLASH_PARTITIONS_BLOCK_SIZE) \ |
| 204 | + $(FLASH_PARTITION_BOOT_SIZE_IN_BYTES) ))) |
| 205 | |
| 206 | # Configuration of the ROOTFS partition if enabled |
| 207 | ifeq ($(USE_PERSISTENT_ROOTFS),1) |
| 208 | FLASH_PARTITION_ROOTFS_IMAGE_PATH = $(ROOT)/out-br/images/rootfs.ext4 |
| 209 | FLASH_PARTITION_ROOTFS_START_BLOCK = \ |
| 210 | $(shell echo $$(( $(FLASH_PARTITION_BOOT_START_BLOCK) + $(FLASH_PARTITION_BOOT_SIZE_IN_BLOCKS) ))) |
| 211 | FLASH_PARTITION_ROOTFS_SIZE_IN_BYTES = \ |
| 212 | $(shell stat -L --printf="%s" $(FLASH_PARTITION_ROOTFS_IMAGE_PATH)) |
| 213 | FLASH_PARTITION_ROOTFS_SIZE_IN_BLOCKS = \ |
| 214 | $(shell echo $$(( $(FLASH_PARTITION_ROOTFS_SIZE_IN_BYTES) / $(FLASH_PARTITIONS_BLOCK_SIZE) ))) |
| 215 | FLASH_PARTITIONS_TABLE += "\ |
| 216 | start=$(FLASH_PARTITION_ROOTFS_START_BLOCK) \ |
| 217 | size=$(FLASH_PARTITION_ROOTFS_SIZE_IN_BLOCKS) \ |
| 218 | type=83\n" |
| 219 | FLASH_IMAGE_SIZE := $(shell echo $$(( $(FLASH_IMAGE_SIZE) + $(FLASH_PARTITION_ROOTFS_SIZE_IN_BYTES) ))) |
| 220 | endif |
| 221 | |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 222 | .PHONY: flash-image |
Jens Wiklander | 426d74a | 2022-04-11 08:51:43 +0200 | [diff] [blame] | 223 | flash-image: buildroot mkimage linux |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 224 | $(MAKE) flash-image-only |
| 225 | |
| 226 | .PHONY: flash-image-only |
| 227 | flash-image-only: $(ROOT)/out-br/images/ramdisk.img $(ROOT)/out/boot.scr |
| 228 | rm -f $(BOOT_IMG) |
James Menetrey | 7223f45 | 2021-04-29 17:01:09 +0000 | [diff] [blame] | 229 | truncate -s $(FLASH_IMAGE_SIZE) $(BOOT_IMG) |
| 230 | echo -ne $(FLASH_PARTITIONS_TABLE) | sfdisk $(BOOT_IMG) |
| 231 | mformat -i $(BOOT_IMG).fat -n 64 -h 255 -T 131072 -v "BOOT IMG" -C :: |
| 232 | mcopy -i $(BOOT_IMG).fat $(LINUX_PATH)/arch/arm64/boot/Image :: |
| 233 | mcopy -i $(BOOT_IMG).fat \ |
Fathi Boudra | 4b750a8 | 2024-03-18 23:13:14 +0100 | [diff] [blame] | 234 | $(LINUX_PATH)/arch/arm64/boot/dts/freescale/$(LINUX_DT) :: |
James Menetrey | 7223f45 | 2021-04-29 17:01:09 +0000 | [diff] [blame] | 235 | mcopy -i $(BOOT_IMG).fat $(ROOT)/out/boot.scr :: |
| 236 | |
| 237 | ifeq ($(USE_PERSISTENT_ROOTFS),1) |
| 238 | dd if=$(FLASH_PARTITION_ROOTFS_IMAGE_PATH) of=$(BOOT_IMG) bs=$(FLASH_PARTITIONS_BLOCK_SIZE) \ |
| 239 | seek=$(FLASH_PARTITION_ROOTFS_START_BLOCK) conv=fsync,notrunc |
| 240 | else |
| 241 | mcopy -i $(BOOT_IMG).fat $(ROOT)/out-br/images/ramdisk.img :: |
| 242 | endif |
| 243 | |
| 244 | dd if=$(BOOT_IMG).fat of=$(BOOT_IMG) bs=$(FLASH_PARTITIONS_BLOCK_SIZE) \ |
| 245 | seek=$(FLASH_PARTITION_BOOT_START_BLOCK) conv=fsync,notrunc |
Fathi Boudra | e22c16e | 2024-03-19 00:55:05 +0100 | [diff] [blame] | 246 | dd if=$(MKIMAGE_SOC_PATH)/flash.bin of=$(BOOT_IMG) bs=1k seek=33 \ |
Jens Wiklander | 1632806 | 2021-02-17 10:22:25 +0100 | [diff] [blame] | 247 | conv=fsync,notrunc |