Skip to contentSkip to conversation

boot/arm-trusted-firmware: support debug mode

PATCH New Etienne Carriere 2 participants 3 messages Nov 22, 2018 – Nov 30, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 boot/arm-trusted-firmware: support debug mode

When the trusted firmware is built with debug support (DEBUG defined), the generated images are located at a specific path. The non debug images are located in generated directory build/<platform>/release/ while the debug images are located in generated directory build/<platform>/debug/.

This change introduces boolean BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG to define whether the release or debug configuration is used to build trusted firmware. Note that enabling trusted firmware debug support, i.e BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="... DEBUG=1 ..." without enabling BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG will fail since buildroot will get generated files from the wrong path.

---
 boot/arm-trusted-firmware/Config.in               | 7 +++++++
 boot/arm-trusted-firmware/arm-trusted-firmware.mk | 6 ++++++
 2 files changed, 13 insertions(+)
boot/arm-trusted-firmware/Config.in +7 -0
index 885d93e..6991a45 100644
@@ -94,4 +94,11 @@ config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES
 	  Additional parameters for the ATF build
 	  E.G. 'DEBUG=1 LOG_LEVEL=20'
 
+config BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG
+	bool "Debug mode of the trusted firmware"
+	default n
+	help
+	  Enable this directive if trusted firmware is built in debug
+	  mode.
+
 endif
boot/arm-trusted-firmware/arm-trusted-firmware.mk +6 -0
index 23f4936..96e8203 100644
@@ -25,7 +25,13 @@ endif
 ARM_TRUSTED_FIRMWARE_INSTALL_IMAGES = YES
 
 ARM_TRUSTED_FIRMWARE_PLATFORM = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM))
+
+ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG),y)
+ARM_TRUSTED_FIRMWARE_MAKE_OPTS += DEBUG=1
+ARM_TRUSTED_FIRMWARE_IMG_DIR = $(@D)/build/$(ARM_TRUSTED_FIRMWARE_PLATFORM)/debug
+else
 ARM_TRUSTED_FIRMWARE_IMG_DIR = $(@D)/build/$(ARM_TRUSTED_FIRMWARE_PLATFORM)/release
+endif
 
 ARM_TRUSTED_FIRMWARE_MAKE_OPTS += \
 	CROSS_COMPILE="$(TARGET_CROSS)" \
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/1 boot/arm-trusted-firmware: support debug mode

Hello,

Quoted 6 lines · Etienne Carriere

When the trusted firmware is built with debug support (DEBUG defined), the generated images are located at a specific path. The non debug images are located in generated directory build/<platform>/release/ while the debug images are located in generated directory build/<platform>/debug/.

Quoted 8 lines

This change introduces boolean BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG to define whether the release or debug configuration is used to build trusted firmware. Note that enabling trusted firmware debug support, i.e BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="... DEBUG=1 ..." without enabling BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG will fail since buildroot will get generated files from the wrong path.

What is this debug mode doing exactly ?

We already have a global BR2_ENABLE_DEBUG option to enable building with debugging symbols. I am wondering if we should use that option as well, or like you did, introduce a separate option. Perhaps for something like ATF, that is very low-level and HW-specific, a separate debug option is OK.

boot/arm-trusted-firmware/Config.in config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES · line 99

Quoted 3 lines
boot/arm-trusted-firmware/Config.in +3 -0
+config BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG
+	bool "Debug mode of the trusted firmware"
+	default n

"default n" is not needed, since it's the default. Not need to resend just for that, we can fixup when applying.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#2 lore raw

PATCH 1/1 boot/arm-trusted-firmware: support debug mode

Quoted 17 lines · Thomas Petazzoni

Hello,

Quoted 13 lines · Etienne Carriere

When the trusted firmware is built with debug support (DEBUG defined), the generated images are located at a specific path. The non debug images are located in generated directory build/<platform>/release/ while the debug images are located in generated directory build/<platform>/debug/.

This change introduces boolean BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG to define whether the release or debug configuration is used to build trusted firmware. Note that enabling trusted firmware debug support, i.e BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="... DEBUG=1 ..." without enabling BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG will fail since buildroot will get generated files from the wrong path.

Quoted 3 lines
Quoted 1 line

What is this debug mode doing exactly ?

Hello Thomas,

This enable few debug support in ATF: disable compilation optims, generate debug symbols, enable assertions, increase trace level. ... and it also makes the generates boot binary images be located at a specific path (compared to when not in debug mode).

Quoted 5 lines

We already have a global BR2_ENABLE_DEBUG option to enable building with debugging symbols. I am wondering if we should use that option as well, or like you did, introduce a separate option. Perhaps for something like ATF, that is very low-level and HW-specific, a separate debug option is OK.

I think this feature is quite specific to people interested in want happens during the boot stages and/or the ATF specific runtime services.
One may want specific ATF traces without forcing debug mode for the whole system.

Yet I not that used the BR conventions and habits and I let you decide whether such debug should be driven from the BR generic debug directive or not.
I have no strong opinion on this.

Quoted 6 lines

boot/arm-trusted-firmware/Config.in config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES · line 99

Quoted 3 lines
boot/arm-trusted-firmware/Config.in +3 -0
+config BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG
+     bool "Debug mode of the trusted firmware"
+     default n

"default n" is not needed, since it's the default. Not need to resend just for that, we can fixup when applying.

Ok. Feel free to fix straight if you agree with the other changes.

regards,
etienne

Quoted 7 lines

Best regards,

Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com