From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=217.140.96.140; helo=cam-smtp0.cambridge.arm.com; envelope-from=evan.lloyd@arm.com; receiver=edk2-devel@lists.01.org Received: from cam-smtp0.cambridge.arm.com (fw-tnat.cambridge.arm.com [217.140.96.140]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 9B0FA208F7A87 for ; Fri, 22 Dec 2017 11:03:39 -0800 (PST) Received: from E111747.Emea.Arm.com (e111747.emea.arm.com [10.1.25.75]) by cam-smtp0.cambridge.arm.com (8.13.8/8.13.8) with ESMTP id vBMJ8Qwx005645; Fri, 22 Dec 2017 19:08:27 GMT From: evan.lloyd@arm.com To: edk2-devel@lists.01.org Cc: Arvind Chauhan , Daniil Egranov , Thomas Panakamattam Abraham , "ard.biesheuvel@linaro.org"@arm.com, "leif.lindholm@linaro.org"@arm.com, "Matteo.Carlini@arm.com"@arm.com, "nd@arm.com"@arm.com Date: Fri, 22 Dec 2017 19:08:09 +0000 Message-Id: <20171222190821.12440-7-evan.lloyd@arm.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20171222190821.12440-1-evan.lloyd@arm.com> References: <20171222190821.12440-1-evan.lloyd@arm.com> Subject: [PATCH edk2-platforms v2 06/18] ARM/VExpressPkg: Add and update debug ASSERTS X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Dec 2017 19:03:41 -0000 From: Girish Pathak This change adds some debug assertions e.g to catch NULL pointer errors missing in PL11Lcd and HdLcd platform libraries. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Girish Pathak Signed-off-by: Evan Lloyd --- Platform/ARM/VExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c | 22 +++++++++++++++++- Platform/ARM/VExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c | 24 +++++++++++++++++++- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/Platform/ARM/VExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c b/Platform/ARM/VExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c index 6afd764897f49c64490ce891682f99bb0f5d993b..a8fe8696da0653017ce9fa6e4a86caf283bc04c9 100644 --- a/Platform/ARM/VExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c +++ b/Platform/ARM/VExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c @@ -153,6 +153,9 @@ LcdPlatformGetVram ( EFI_STATUS Status; EFI_ALLOCATE_TYPE AllocationType; + ASSERT (VramBaseAddress != NULL); + ASSERT (VramSize != NULL); + // Set the vram size *VramSize = LCD_VRAM_SIZE; @@ -171,6 +174,7 @@ LcdPlatformGetVram ( VramBaseAddress ); if (EFI_ERROR (Status)) { + ASSERT (FALSE); return Status; } @@ -181,8 +185,8 @@ LcdPlatformGetVram ( *VramSize, EFI_MEMORY_WC ); - ASSERT_EFI_ERROR (Status); if (EFI_ERROR (Status)) { + ASSERT (FALSE); gBS->FreePages (*VramBaseAddress, EFI_SIZE_TO_PAGES (*VramSize)); return Status; } @@ -221,6 +225,7 @@ LcdPlatformSetMode ( EFI_STATUS Status; if (ModeNumber >= LcdPlatformGetMaxMode ()) { + ASSERT (FALSE); return EFI_INVALID_PARAMETER; } @@ -279,7 +284,10 @@ LcdPlatformQueryMode ( OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION * CONST Info ) { + ASSERT (Info != NULL); + if (ModeNumber >= LcdPlatformGetMaxMode ()) { + ASSERT (FALSE); return EFI_INVALID_PARAMETER; } @@ -343,7 +351,18 @@ LcdPlatformGetTimings ( OUT UINT32 * CONST VFrontPorch ) { + // One of the pointers is NULL + ASSERT (HRes != NULL); + ASSERT (HSync != NULL); + ASSERT (HBackPorch != NULL); + ASSERT (HFrontPorch != NULL); + ASSERT (VRes != NULL); + ASSERT (VSync != NULL); + ASSERT (VBackPorch != NULL); + ASSERT (VFrontPorch != NULL); + if (ModeNumber >= LcdPlatformGetMaxMode ()) { + ASSERT (FALSE); return EFI_INVALID_PARAMETER; } @@ -376,6 +395,7 @@ LcdPlatformGetBpp ( ) { if (ModeNumber >= LcdPlatformGetMaxMode ()) { + ASSERT (FALSE); return EFI_INVALID_PARAMETER; } diff --git a/Platform/ARM/VExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c b/Platform/ARM/VExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c index 799fb3fc781ce04bb64cb1fa0b87f262a670ed78..fd4eea8f8e2397bc7d4ddf4cfe3dcc97a5109edb 100644 --- a/Platform/ARM/VExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c +++ b/Platform/ARM/VExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c @@ -205,6 +205,9 @@ LcdPlatformGetVram ( Status = EFI_SUCCESS; + ASSERT (VramBaseAddress != NULL); + ASSERT (VramSize != NULL); + // Is it on the motherboard or on the daughterboard? switch (PL111_CLCD_SITE) { @@ -225,6 +228,7 @@ LcdPlatformGetVram ( VramBaseAddress ); if (EFI_ERROR (Status)) { + ASSERT (FALSE); return Status; } @@ -235,8 +239,8 @@ LcdPlatformGetVram ( *VramSize, EFI_MEMORY_WC ); - ASSERT_EFI_ERROR (Status); if (EFI_ERROR (Status)) { + ASSERT (FALSE); gBS->FreePages (*VramBaseAddress, EFI_SIZE_TO_PAGES (*VramSize)); return Status; } @@ -294,6 +298,7 @@ LcdPlatformSetMode ( UINT32 SysId; if (ModeNumber >= LcdPlatformGetMaxMode ()) { + ASSERT (FALSE); return EFI_INVALID_PARAMETER; } @@ -369,7 +374,10 @@ LcdPlatformQueryMode ( OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION * CONST Info ) { + ASSERT (Info != NULL); + if (ModeNumber >= LcdPlatformGetMaxMode ()) { + ASSERT (FALSE); return EFI_INVALID_PARAMETER; } @@ -433,7 +441,18 @@ LcdPlatformGetTimings ( OUT UINT32 * CONST VFrontPorch ) { + // One of the pointers is NULL + ASSERT (HRes != NULL); + ASSERT (HSync != NULL); + ASSERT (HBackPorch != NULL); + ASSERT (HFrontPorch != NULL); + ASSERT (VRes != NULL); + ASSERT (VSync != NULL); + ASSERT (VBackPorch != NULL); + ASSERT (VFrontPorch != NULL); + if (ModeNumber >= LcdPlatformGetMaxMode ()) { + ASSERT (FALSE); return EFI_INVALID_PARAMETER; } @@ -465,7 +484,10 @@ LcdPlatformGetBpp ( OUT LCD_BPP * CONST Bpp ) { + ASSERT (Bpp != NULL); + if (ModeNumber >= LcdPlatformGetMaxMode ()) { + ASSERT (FALSE); return EFI_INVALID_PARAMETER; } -- Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")