1#
2# Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#
7# This Makefile generates the image files used in the Trusted Firmware-A
8# document from the dia file.
9#
10# The PNG files in the present directory have been generated using Dia version
11# 0.97.2, which can be obtained from https://wiki.gnome.org/Apps/Dia/Download
12#
13
14# generate_image use the tool dia generate png from dia file
15#    $(1) = layers
16#    $(2) = image file name
17#    $(3) = image file format
18#    $(4) = addition opts
19#    $(5) = dia source file
20define generate_image
21	dia --show-layers=$(1) --filter=$(3) --export=$(2) $(4) $(5)
22endef
23
24RESET_DIA							= reset_code_flow.dia
25RESET_PNGS							=		\
26		default_reset_code.png 				\
27		reset_code_no_cpu_check.png			\
28		reset_code_no_boot_type_check.png 	\
29		reset_code_no_checks.png			\
30
31# The $(RESET_DIA) file is organized in several layers.
32# Each image is generated by combining and exporting the appropriate set of
33# layers.
34default_reset_code_layers			= "Frontground,Background,cpu_type_check,boot_type_check"
35reset_code_no_cpu_check_layers		= "Frontground,Background,no_cpu_type_check,boot_type_check"
36reset_code_no_boot_type_check_layers= "Frontground,Background,cpu_type_check,no_boot_type_check"
37reset_code_no_checks_layers			= "Frontground,Background,no_cpu_type_check,no_boot_type_check"
38
39default_reset_code_opts          	=
40reset_code_no_cpu_check_opts     	=
41reset_code_no_boot_type_check_opts	=
42reset_code_no_checks_opts			=
43
44INT_DIA								= int_handling.dia
45INT_PNGS							=		\
46		sec-int-handling.png				\
47		non-sec-int-handling.png
48
49# The $(INT_DIA) file is organized in several layers.
50# Each image is generated by combining and exporting the appropriate set of
51# layers.
52non-sec-int-handling_layers			= "non_sec_int_bg,legend,non_sec_int_note,non_sec_int_handling"
53sec-int-handling_layers				= "sec_int_bg,legend,sec_int_note,sec_int_handling"
54
55non-sec-int-handling_opts			= --size=1692x
56sec-int-handling_opts				= --size=1570x
57
58XLAT_DIA 							= xlat_align.dia
59XLAT_PNG 							= xlat_align.png
60
61xlat_align_layers					= "bg,translations"
62xlat_align_opts						=
63
64RMM_DIA					= rmm_cold_boot_generic.dia
65RMM_PNG					= rmm_cold_boot_generic.png
66
67rmm_cold_boot_generic_layers		= "background"
68rmm_cold_boot_generic_opts		=
69
70RMM_EL3_MANIFEST_DIA			= rmm_el3_manifest_struct.dia
71RMM_EL3_MANIFEST_PNG			= rmm_el3_manifest_struct.png
72
73rmm_el3_manifest_struct_layers		= "Background"
74rmm_el3_manifest_struct_opts		=
75
76PSA_FWU_DIA				= PSA-FWU.dia
77PSA_FWU_PNG				= PSA-FWU.png
78
79FWU-update_struct_layers		= "background"
80FWU-update_struct_opts			=
81
82MB_DESIGN_DIA				= measured_boot_design.dia
83MB_DESIGN_PNG				= measured_boot_design.png
84
85measured_boot_design_layers		= "background"
86measured_boot_design_opts		=
87
88all:$(RESET_PNGS) $(INT_PNGS) $(XLAT_PNG) $(RMM_PNG) $(RMM_EL3_MANIFEST_PNG) $(PSA_FWU_PNG) $(MB_DESIGN_PNG)
89
90$(RESET_PNGS):$(RESET_DIA)
91	$(call generate_image,$($(patsubst %.png,%_layers,$@)),$@,png,$($(patsubst %.png,%_opts,$@)),$<)
92
93$(INT_PNGS):$(INT_DIA)
94	$(call generate_image,$($(patsubst %.png,%_layers,$@)),$@,png,$($(patsubst %.png,%_opts,$@)),$<)
95
96$(XLAT_PNG):$(XLAT_DIA)
97	$(call generate_image,$($(patsubst %.png,%_layers,$@)),$(patsubst %.png,%.svg,$@),svg,$($(patsubst %.png,%_opts,$@)),$<)
98	inkscape -z $(patsubst %.png,%.svg,$@) -e $@ -d 45
99
100$(RMM_PNG):$(RMM_DIA)
101	$(call generate_image,$($(patsubst %.png,%_layers,$@)),$@,png,$($(patsubst %.png,%_opts,$@)),$<)
102
103$(RMM_EL3_MANIFEST_PNG):$(RMM_EL3_MANIFEST_DIA)
104	$(call generate_image,$($(patsubst %.png,%_layers,$@)),$@,png,$($(patsubst %.png,%_opts,$@)),$<)
105
106$(PSA_FWU_PNG):$(PSA_FWU_DIA)
107	$(call generate_image,$($(patsubst %.png,%_layers,$@)),$@,png,$($(patsubst %.png,%_opts,$@)),$<)
108
109$(MB_DESIGN_PNG):$(MB_DESIGN_DIA)
110	$(call generate_image,$($(patsubst %.png,%_layers,$@)),$@,png,$($(patsubst %.png,%_opts,$@)),$<)
111