[coreboot-gerrit] New patch to review for coreboot: 6c0ad22 Fam14 DSDT: Fix Warnings introduced by OSC patch

Mike Loptien (mike.loptien@se-eng.com) gerrit at coreboot.org
Tue Apr 9 23:32:15 CEST 2013


Mike Loptien (mike.loptien at se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3052

-gerrit

commit 6c0ad225fb9a5ffbaf3507183396b28f0159f201
Author: Mike Loptien <mike.loptien at se-eng.com>
Date:   Thu Apr 4 16:05:11 2013 -0600

    Fam14 DSDT: Fix Warnings introduced by OSC patch
    
    Fixing warnings introduced by the following patches:
    http://review.coreboot.org/#/c/2684/
    http://review.coreboot.org/#/c/2739/
    http://review.coreboot.org/#/c/2714/
    
    These patches were meant to fix the dmesg warning about
    the OSC method not granting control appropriately.  These
    patches then introduced warnings during the coreboot build
    process which were missed during the patch submission
    process.  These warnings are below:
    
    	Intel ACPI Component Architecture
    	ASL Optimizing Compiler version 20100528 [Oct 15 2010]
    	Copyright (c) 2000 - 2010 Intel Corporation
    	Supports ACPI Specification Revision 4.0a
    
    		dsdt.ramstage.asl  1143:    Method(_OSC,4)
    		Warning  1088 -                       ^ Not all control paths return a value (_OSC)
    
    		dsdt.ramstage.asl  1143:    Method(_OSC,4)
    		Warning  1081 -                       ^ Reserved method must return a value (Buffer required for _OSC)
    
    	ASL Input:  dsdt.ramstage.asl - 1724 lines, 34917 bytes, 889 keywords
    	AML Output: dsdt.ramstage.aml - 10470 bytes, 409 named objects, 480 executable opcodes
    
    	Compilation complete. 0 Errors, 2 Warnings, 0 Remarks, 494 Optimizations
    
    This patch gives the following compilation status:
    
    	Intel ACPI Component Architecture
    	ASL Optimizing Compiler version 20100528 [Oct  1 2012]
    	Copyright (c) 2000 - 2010 Intel Corporation
    	Supports ACPI Specification Revision 4.0a
    
    	ASL Input:  dsdt.ramstage.asl - 1732 lines, 33295 bytes, 941 keywords
    	AML Output: dsdt.ramstage.aml - 10152 bytes, 406 named objects, 535 executable opcodes
    
    	Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 432 Optimizations
    
    The fix is to simply add an Else statement to the If which checks
    for the proper UUID.  This way, all outcomes will return a full
    control package.  This patch has no effect on the dmesg output.
    
    Change-Id: I8fa246400310b26679ffa3aa278069d2e9507160
    Signed-off-by: Mike Loptien <mike.loptien at se-eng.com>
---
 src/southbridge/amd/cimx/sb800/acpi/fch.asl | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/southbridge/amd/cimx/sb800/acpi/fch.asl b/src/southbridge/amd/cimx/sb800/acpi/fch.asl
index 1a7f633..b26f151 100644
--- a/src/southbridge/amd/cimx/sb800/acpi/fch.asl
+++ b/src/southbridge/amd/cimx/sb800/acpi/fch.asl
@@ -22,11 +22,20 @@
 
 /* Operating System Capabilities Method */
 Method(_OSC,4)
-{	/* Check for proper PCI/PCIe UUID */
+{	
+	// Create DWord-addressable fields from the Capabilities Buffer
+	CreateDWordField(Arg3,0,CDW1)
+	CreateDWordField(Arg3,4,CDW2)
+	CreateDWordField(Arg3,8,CDW3)
+
+	/* Check for proper PCI/PCIe UUID */
 	If(LEqual(Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766")))
 	{
 		/* Let OS control everything */
 		Return (Arg3)
+	} Else {
+		Or(CDW1,4,CDW1)	// Unrecognized UUID
+		Return(Arg3)
 	}
 }
 



More information about the coreboot-gerrit mailing list