diff options
-rw-r--r-- | docs/diagrams/Makefile | 74 | ||||
-rwxr-xr-x | docs/diagrams/generate_reset_images.sh | 41 | ||||
-rwxr-xr-x | docs/diagrams/generate_xlat_images.sh | 26 | ||||
-rw-r--r-- | docs/diagrams/int_handling.dia | bin | 0 -> 10623 bytes | |||
-rw-r--r-- | docs/diagrams/non-sec-int-handling.png | bin | 249672 -> 218768 bytes | |||
-rw-r--r-- | docs/diagrams/sec-int-handling.png | bin | 191026 -> 173315 bytes | |||
-rw-r--r-- | include/plat/arm/common/arm_def.h | 20 | ||||
-rw-r--r-- | plat/arm/board/fvp/fvp_common.c | 3 |
8 files changed, 88 insertions, 76 deletions
diff --git a/docs/diagrams/Makefile b/docs/diagrams/Makefile new file mode 100644 index 00000000..de7d8f3f --- /dev/null +++ b/docs/diagrams/Makefile @@ -0,0 +1,74 @@ +# +# Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved. +# +# SPDX-License-Identifier: BSD-3-Clause +# +# +# This Makefile generates the image files used in the ARM Trusted Firmware +# document from the dia file. +# +# The PNG files in the present directory have been generated using Dia version +# 0.97.2, which can be obtained from https://wiki.gnome.org/Apps/Dia/Download +# + +# generate_image use the tool dia generate png from dia file +# $(1) = layers +# $(2) = image file name +# $(3) = image file format +# $(4) = addition opts +# $(5) = dia source file +define generate_image + dia --show-layers=$(1) --filter=$(3) --export=$(2) $(4) $(5) +endef + +RESET_DIA = reset_code_flow.dia +RESET_PNGS = \ + default_reset_code.png \ + reset_code_no_cpu_check.png \ + reset_code_no_boot_type_check.png \ + reset_code_no_checks.png \ + +# The $(RESET_DIA) file is organized in several layers. +# Each image is generated by combining and exporting the appropriate set of +# layers. +default_reset_code_layers = "Frontground,Background,cpu_type_check,boot_type_check" +reset_code_no_cpu_check_layers = "Frontground,Background,no_cpu_type_check,boot_type_check" +reset_code_no_boot_type_check_layers= "Frontground,Background,cpu_type_check,no_boot_type_check" +reset_code_no_checks_layers = "Frontground,Background,no_cpu_type_check,no_boot_type_check" + +default_reset_code_opts = +reset_code_no_cpu_check_opts = +reset_code_no_boot_type_check_opts = +reset_code_no_checks_opts = + +INT_DIA = int_handling.dia +INT_PNGS = \ + sec-int-handling.png \ + non-sec-int-handling.png + +# The $(INT_DIA) file is organized in several layers. +# Each image is generated by combining and exporting the appropriate set of +# layers. +non-sec-int-handling_layers = "non_sec_int_bg,legend,non_sec_int_note,non_sec_int_handling" +sec-int-handling_layers = "sec_int_bg,legend,sec_int_note,sec_int_handling" + +non-sec-int-handling_opts = --size=1692x +sec-int-handling_opts = --size=1570x + +XLAT_DIA = xlat_align.dia +XLAT_PNG = xlat_align.png + +xlat_align_layers = "bg,translations" +xlat_align_opts = + +all:$(RESET_PNGS) $(INT_PNGS) $(XLAT_PNG) + +$(RESET_PNGS):$(RESET_DIA) + $(call generate_image,$($(patsubst %.png,%_layers,$@)),$@,png,$($(patsubst %.png,%_opts,$@)),$<) + +$(INT_PNGS):$(INT_DIA) + $(call generate_image,$($(patsubst %.png,%_layers,$@)),$@,png,$($(patsubst %.png,%_opts,$@)),$<) + +$(XLAT_PNG):$(XLAT_DIA) + $(call generate_image,$($(patsubst %.png,%_layers,$@)),$(patsubst %.png,%.svg,$@),svg,$($(patsubst %.png,%_opts,$@)),$<) + inkscape -z $(patsubst %.png,%.svg,$@) -e $@ -d 45 diff --git a/docs/diagrams/generate_reset_images.sh b/docs/diagrams/generate_reset_images.sh deleted file mode 100755 index eef5648d..00000000 --- a/docs/diagrams/generate_reset_images.sh +++ /dev/null @@ -1,41 +0,0 @@ -#! /bin/bash - -# -# This script generates the image files used in the ARM Trusted Firmware Reset -# Design document from the 'reset_code_flow.dia' file. -# -# The PNG files in the present directory have been generated using Dia version -# 0.97.2, which can be obtained from https://wiki.gnome.org/Apps/Dia/Download -# - -set -e - -# Usage: generate_image <layers> <image_filename> -function generate_image -{ - dia \ - --show-layers=$1 \ - --filter=png \ - --export=$2 \ - reset_code_flow.dia - -} - -# The 'reset_code_flow.dia' file is organized in several layers. -# Each image is generated by combining and exporting the appropriate set of -# layers. -generate_image \ - Frontground,Background,cpu_type_check,boot_type_check \ - default_reset_code.png - -generate_image \ - Frontground,Background,no_cpu_type_check,boot_type_check \ - reset_code_no_cpu_check.png - -generate_image \ - Frontground,Background,cpu_type_check,no_boot_type_check \ - reset_code_no_boot_type_check.png - -generate_image \ - Frontground,Background,no_cpu_type_check,no_boot_type_check \ - reset_code_no_checks.png diff --git a/docs/diagrams/generate_xlat_images.sh b/docs/diagrams/generate_xlat_images.sh deleted file mode 100755 index 9daef5f4..00000000 --- a/docs/diagrams/generate_xlat_images.sh +++ /dev/null @@ -1,26 +0,0 @@ -#! /bin/bash - -# -# This script generates the image file used in the ARM Trusted Firmware -# Translation Tables Library V2 Design document from the 'xlat_align.dia' file. -# - -set -e - -# Usage: generate_image <dia_filename> <layers> <image_filename> -function generate_image -{ - dia \ - --show-layers=$2 \ - --filter=svg \ - --export=$3 \ - $1 - -} - -generate_image \ - xlat_align.dia \ - bg,translations \ - xlat_align.svg - -inkscape -z xlat_align.svg -e xlat_align.png -d 45 diff --git a/docs/diagrams/int_handling.dia b/docs/diagrams/int_handling.dia Binary files differnew file mode 100644 index 00000000..12aa186c --- /dev/null +++ b/docs/diagrams/int_handling.dia diff --git a/docs/diagrams/non-sec-int-handling.png b/docs/diagrams/non-sec-int-handling.png Binary files differindex 1a5f6295..64082c95 100644 --- a/docs/diagrams/non-sec-int-handling.png +++ b/docs/diagrams/non-sec-int-handling.png diff --git a/docs/diagrams/sec-int-handling.png b/docs/diagrams/sec-int-handling.png Binary files differindex 2ebbca44..fa5c340a 100644 --- a/docs/diagrams/sec-int-handling.png +++ b/docs/diagrams/sec-int-handling.png diff --git a/include/plat/arm/common/arm_def.h b/include/plat/arm/common/arm_def.h index 55747bf4..106cd747 100644 --- a/include/plat/arm/common/arm_def.h +++ b/include/plat/arm/common/arm_def.h @@ -97,16 +97,18 @@ #ifdef SPD_opteed /* - * BL2 needs to map 3.5MB from 512KB offset in TZC_DRAM1 in order to - * load/authenticate the trusted os extra image. The first 512KB of TZC_DRAM1 - * are reserved for trusted os (OPTEE). The extra image loading for OPTEE is - * paged image which only include the paging part using virtual memory but - * without "init" data. OPTEE will copy the "init" data (from pager image) to - * the first 512KB of TZC_DRAM, and then copy the extra image behind the "init" - * data. + * BL2 needs to map 4MB at the end of TZC_DRAM1 in order to + * load/authenticate the trusted os extra image. The first 512KB of + * TZC_DRAM1 are reserved for trusted os (OPTEE). The extra image loading + * for OPTEE is paged image which only include the paging part using + * virtual memory but without "init" data. OPTEE will copy the "init" data + * (from pager image) to the first 512KB of TZC_DRAM, and then copy the + * extra image behind the "init" data. */ -#define ARM_OPTEE_PAGEABLE_LOAD_BASE (ARM_AP_TZC_DRAM1_BASE + 0x80000) -#define ARM_OPTEE_PAGEABLE_LOAD_SIZE 0x380000 +#define ARM_OPTEE_PAGEABLE_LOAD_BASE (ARM_AP_TZC_DRAM1_BASE + \ + ARM_AP_TZC_DRAM1_SIZE - \ + ARM_OPTEE_PAGEABLE_LOAD_SIZE) +#define ARM_OPTEE_PAGEABLE_LOAD_SIZE 0x400000 #define ARM_OPTEE_PAGEABLE_LOAD_MEM MAP_REGION_FLAT( \ ARM_OPTEE_PAGEABLE_LOAD_BASE, \ ARM_OPTEE_PAGEABLE_LOAD_SIZE, \ diff --git a/plat/arm/board/fvp/fvp_common.c b/plat/arm/board/fvp/fvp_common.c index d6b9820c..d97a0492 100644 --- a/plat/arm/board/fvp/fvp_common.c +++ b/plat/arm/board/fvp/fvp_common.c @@ -87,6 +87,9 @@ const mmap_region_t plat_arm_mmap[] = { #if ARM_BL31_IN_DRAM ARM_MAP_BL31_SEC_DRAM, #endif +#ifdef SPD_opteed + ARM_OPTEE_PAGEABLE_LOAD_MEM, +#endif {0} }; #endif |