Date: Fri, 27 May 2016 22:16:46 +0000 (UTC) From: Jung-uk Kim <jkim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r300879 - in head/sys/contrib/dev/acpica: . compiler components/debugger components/disassembler components/dispatcher components/executer components/hardware components/namespace include Message-ID: <201605272216.u4RMGkMa080244@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jkim Date: Fri May 27 22:16:46 2016 New Revision: 300879 URL: https://svnweb.freebsd.org/changeset/base/300879 Log: Merge ACPICA 20160527. Relnotes: yes Modified: head/sys/contrib/dev/acpica/changes.txt head/sys/contrib/dev/acpica/compiler/asloptions.c head/sys/contrib/dev/acpica/components/debugger/dbobject.c head/sys/contrib/dev/acpica/components/disassembler/dmopcode.c head/sys/contrib/dev/acpica/components/disassembler/dmwalk.c head/sys/contrib/dev/acpica/components/dispatcher/dsutils.c head/sys/contrib/dev/acpica/components/executer/exfldio.c head/sys/contrib/dev/acpica/components/hardware/hwregs.c head/sys/contrib/dev/acpica/components/namespace/nsdump.c head/sys/contrib/dev/acpica/include/acglobal.h head/sys/contrib/dev/acpica/include/acmacros.h head/sys/contrib/dev/acpica/include/acpixf.h head/sys/contrib/dev/acpica/include/acutils.h Directory Properties: head/sys/contrib/dev/acpica/ (props changed) Modified: head/sys/contrib/dev/acpica/changes.txt ============================================================================== --- head/sys/contrib/dev/acpica/changes.txt Fri May 27 22:14:39 2016 (r300878) +++ head/sys/contrib/dev/acpica/changes.txt Fri May 27 22:16:46 2016 (r300879) @@ -1,4 +1,37 @@ ---------------------------------------- +27 May 2016. Summary of changes for version 20160527: + +This release is available at https://acpica.org/downloads + + +1) ACPICA kernel-resident subsystem: + +Temporarily reverted the new arbitrary bit length/alignment support in +AcpiHwRead/AcpiHwWrite for the Generic Address Structure. There have been +a number of regressions with the new code that need to be fully resolved +and tested before this support can be finally integrated into ACPICA. +Apologies for any inconveniences these issues may have caused. + +The ACPI message macros are not configurable (ACPI_MSG_ERROR, +ACPI_MSG_EXCEPTION, ACPI_MSG_WARNING, ACPI_MSG_INFO, ACPI_MSG_BIOS_ERROR, +and ACPI_MSG_BIOS_WARNING). Lv Zheng. + +Fixed a couple of GCC warnings associated with the use of the -Wcast-qual +option. Adds a new return macro, return_STR. Junk-uk Kim. + +Example Code and Data Size: These are the sizes for the OS-independent +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The +debug version of the code includes the debug output trace mechanism and +has a much larger code and data size. + + Current Release: + Non-Debug Version: 136.8K Code, 51.6K Data, 188.4K Total + Debug Version: 201.5K Code, 82.2K Data, 283.7K Total + Previous Release: + Non-Debug Version: 137.4K Code, 52.6K Data, 190.0K Total + Debug Version: 200.9K Code, 82.2K Data, 283.1K Total + +---------------------------------------- 22 April 2016. Summary of changes for version 20160422: 1) ACPICA kernel-resident subsystem: Modified: head/sys/contrib/dev/acpica/compiler/asloptions.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/asloptions.c Fri May 27 22:14:39 2016 (r300878) +++ head/sys/contrib/dev/acpica/compiler/asloptions.c Fri May 27 22:16:46 2016 (r300879) @@ -541,9 +541,13 @@ AslDoOptions ( case 'e': - /* Disable External opcode generation */ + /* iASL: Disable External opcode generation */ Gbl_DoExternals = FALSE; + + /* Disassembler: Emit embedded external operators */ + + AcpiGbl_DmEmitExternalOpcodes = TRUE; break; case 'f': Modified: head/sys/contrib/dev/acpica/components/debugger/dbobject.c ============================================================================== --- head/sys/contrib/dev/acpica/components/debugger/dbobject.c Fri May 27 22:14:39 2016 (r300878) +++ head/sys/contrib/dev/acpica/components/debugger/dbobject.c Fri May 27 22:16:46 2016 (r300879) @@ -161,10 +161,10 @@ AcpiDbDecodeInternalObject ( case ACPI_TYPE_STRING: - AcpiOsPrintf ("(%u) \"%.24s", + AcpiOsPrintf ("(%u) \"%.60s", ObjDesc->String.Length, ObjDesc->String.Pointer); - if (ObjDesc->String.Length > 24) + if (ObjDesc->String.Length > 60) { AcpiOsPrintf ("..."); } Modified: head/sys/contrib/dev/acpica/components/disassembler/dmopcode.c ============================================================================== --- head/sys/contrib/dev/acpica/components/disassembler/dmopcode.c Fri May 27 22:14:39 2016 (r300878) +++ head/sys/contrib/dev/acpica/components/disassembler/dmopcode.c Fri May 27 22:16:46 2016 (r300879) @@ -971,7 +971,16 @@ AcpiDmDisassembleOneOp ( case AML_EXTERNAL_OP: - break; + if (AcpiGbl_DmEmitExternalOpcodes) + { + AcpiOsPrintf ("/* Opcode 0x15 */ "); + + /* Fallthrough */ + } + else + { + break; + } default: Modified: head/sys/contrib/dev/acpica/components/disassembler/dmwalk.c ============================================================================== --- head/sys/contrib/dev/acpica/components/disassembler/dmwalk.c Fri May 27 22:14:39 2016 (r300878) +++ head/sys/contrib/dev/acpica/components/disassembler/dmwalk.c Fri May 27 22:16:46 2016 (r300879) @@ -462,21 +462,26 @@ AcpiDmDescendingOp ( { NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMETER_LIST; - /* - * A Zero predicate indicates the possibility of one or more - * External() opcodes within the If() block. - */ - if (NextOp->Common.AmlOpcode == AML_ZERO_OP) - { - NextOp2 = NextOp->Common.Next; + /* Don't emit the actual embedded externals unless asked */ - if (NextOp2 && - (NextOp2->Common.AmlOpcode == AML_EXTERNAL_OP)) + if (!AcpiGbl_DmEmitExternalOpcodes) + { + /* + * A Zero predicate indicates the possibility of one or more + * External() opcodes within the If() block. + */ + if (NextOp->Common.AmlOpcode == AML_ZERO_OP) { - /* Ignore the If 0 block and all children */ + NextOp2 = NextOp->Common.Next; + + if (NextOp2 && + (NextOp2->Common.AmlOpcode == AML_EXTERNAL_OP)) + { + /* Ignore the If 0 block and all children */ - Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE; - return (AE_CTRL_DEPTH); + Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE; + return (AE_CTRL_DEPTH); + } } } } Modified: head/sys/contrib/dev/acpica/components/dispatcher/dsutils.c ============================================================================== --- head/sys/contrib/dev/acpica/components/dispatcher/dsutils.c Fri May 27 22:14:39 2016 (r300878) +++ head/sys/contrib/dev/acpica/components/dispatcher/dsutils.c Fri May 27 22:16:46 2016 (r300879) @@ -603,12 +603,14 @@ AcpiDsCreateOperand ( } else if (ParentOp->Common.AmlOpcode == AML_EXTERNAL_OP) { - /* TBD: May only be temporary */ - - ObjDesc = AcpiUtCreateStringObject ((ACPI_SIZE) NameLength); - - strncpy (ObjDesc->String.Pointer, NameString, NameLength); - Status = AE_OK; + /* + * This opcode should never appear here. It is used only + * by AML disassemblers and is surrounded by an If(0) + * by the ASL compiler. + * + * Therefore, if we see it here, it is a serious error. + */ + Status = AE_AML_BAD_OPCODE; } else { Modified: head/sys/contrib/dev/acpica/components/executer/exfldio.c ============================================================================== --- head/sys/contrib/dev/acpica/components/executer/exfldio.c Fri May 27 22:14:39 2016 (r300878) +++ head/sys/contrib/dev/acpica/components/executer/exfldio.c Fri May 27 22:16:46 2016 (r300879) @@ -946,9 +946,20 @@ AcpiExInsertIntoField ( AccessBitWidth = ACPI_MUL_8 (ObjDesc->CommonField.AccessByteWidth); - /* Create the bitmasks used for bit insertion */ + /* + * Create the bitmasks used for bit insertion. + * Note: This if/else is used to bypass compiler differences with the + * shift operator + */ + if (AccessBitWidth == ACPI_INTEGER_BIT_SIZE) + { + WidthMask = ACPI_UINT64_MAX; + } + else + { + WidthMask = ACPI_MASK_BITS_ABOVE (AccessBitWidth); + } - WidthMask = ACPI_MASK_BITS_ABOVE_64 (AccessBitWidth); Mask = WidthMask & ACPI_MASK_BITS_BELOW (ObjDesc->CommonField.StartFieldBitOffset); Modified: head/sys/contrib/dev/acpica/components/hardware/hwregs.c ============================================================================== --- head/sys/contrib/dev/acpica/components/hardware/hwregs.c Fri May 27 22:14:39 2016 (r300878) +++ head/sys/contrib/dev/acpica/components/hardware/hwregs.c Fri May 27 22:16:46 2016 (r300879) @@ -91,10 +91,6 @@ AcpiHwValidateRegister ( UINT8 MaxBitWidth, UINT64 *Address) { - UINT8 BitWidth; - UINT8 BitEnd; - UINT8 AccessWidth; - /* Must have a valid pointer to a GAS structure */ @@ -124,28 +120,24 @@ AcpiHwValidateRegister ( return (AE_SUPPORT); } - /* Validate the AccessWidth */ + /* Validate the BitWidth */ - if (Reg->AccessWidth > 4) + if ((Reg->BitWidth != 8) && + (Reg->BitWidth != 16) && + (Reg->BitWidth != 32) && + (Reg->BitWidth != MaxBitWidth)) { ACPI_ERROR ((AE_INFO, - "Unsupported register access width: 0x%X", Reg->AccessWidth)); + "Unsupported register bit width: 0x%X", Reg->BitWidth)); return (AE_SUPPORT); } - /* Validate the BitWidth, convert AccessWidth into number of bits */ + /* Validate the BitOffset. Just a warning for now. */ - BitEnd = Reg->BitOffset + Reg->BitWidth; - AccessWidth = Reg->AccessWidth ? Reg->AccessWidth : 1; - AccessWidth = 1 << (AccessWidth + 2); - BitWidth = ACPI_ROUND_UP (BitEnd, AccessWidth) - - ACPI_ROUND_DOWN (Reg->BitOffset, AccessWidth); - if (MaxBitWidth < BitWidth) + if (Reg->BitOffset != 0) { ACPI_WARNING ((AE_INFO, - "Requested bit width 0x%X is smaller than register bit width 0x%X", - MaxBitWidth, BitWidth)); - return (AE_SUPPORT); + "Unsupported register bit offset: 0x%X", Reg->BitOffset)); } return (AE_OK); Modified: head/sys/contrib/dev/acpica/components/namespace/nsdump.c ============================================================================== --- head/sys/contrib/dev/acpica/components/namespace/nsdump.c Fri May 27 22:14:39 2016 (r300878) +++ head/sys/contrib/dev/acpica/components/namespace/nsdump.c Fri May 27 22:16:46 2016 (r300879) @@ -381,7 +381,7 @@ AcpiNsDumpOneObject ( case ACPI_TYPE_STRING: AcpiOsPrintf ("Len %.2X ", ObjDesc->String.Length); - AcpiUtPrintString (ObjDesc->String.Pointer, 32); + AcpiUtPrintString (ObjDesc->String.Pointer, 80); AcpiOsPrintf ("\n"); break; Modified: head/sys/contrib/dev/acpica/include/acglobal.h ============================================================================== --- head/sys/contrib/dev/acpica/include/acglobal.h Fri May 27 22:14:39 2016 (r300878) +++ head/sys/contrib/dev/acpica/include/acglobal.h Fri May 27 22:16:46 2016 (r300879) @@ -321,6 +321,7 @@ ACPI_INIT_GLOBAL (BOOLEAN, ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_CstyleDisassembly, TRUE); ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_ForceAmlDisassembly, FALSE); ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_DmOpt_Verbose, TRUE); +ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_DmEmitExternalOpcodes, FALSE); ACPI_GLOBAL (BOOLEAN, AcpiGbl_DmOpt_Disasm); ACPI_GLOBAL (BOOLEAN, AcpiGbl_DmOpt_Listing); Modified: head/sys/contrib/dev/acpica/include/acmacros.h ============================================================================== --- head/sys/contrib/dev/acpica/include/acmacros.h Fri May 27 22:14:39 2016 (r300878) +++ head/sys/contrib/dev/acpica/include/acmacros.h Fri May 27 22:16:46 2016 (r300879) @@ -264,30 +264,14 @@ #define ACPI_IS_MISALIGNED(value) (((ACPI_SIZE) value) & (sizeof(ACPI_SIZE)-1)) -/* Generic (power-of-two) rounding */ - -#define ACPI_IS_POWER_OF_TWO(a) (((a) & ((a) - 1)) == 0) - /* * Bitmask creation * Bit positions start at zero. * MASK_BITS_ABOVE creates a mask starting AT the position and above * MASK_BITS_BELOW creates a mask starting one bit BELOW the position - * MASK_BITS_ABOVE/BELOW accpets a bit offset to create a mask - * MASK_BITS_ABOVE/BELOW_32/64 accpets a bit width to create a mask - * Note: The ACPI_INTEGER_BIT_SIZE check is used to bypass compiler - * differences with the shift operator */ #define ACPI_MASK_BITS_ABOVE(position) (~((ACPI_UINT64_MAX) << ((UINT32) (position)))) #define ACPI_MASK_BITS_BELOW(position) ((ACPI_UINT64_MAX) << ((UINT32) (position))) -#define ACPI_MASK_BITS_ABOVE_32(width) ((UINT32) ACPI_MASK_BITS_ABOVE(width)) -#define ACPI_MASK_BITS_BELOW_32(width) ((UINT32) ACPI_MASK_BITS_BELOW(width)) -#define ACPI_MASK_BITS_ABOVE_64(width) ((width) == ACPI_INTEGER_BIT_SIZE ? \ - ACPI_UINT64_MAX : \ - ACPI_MASK_BITS_ABOVE(width)) -#define ACPI_MASK_BITS_BELOW_64(width) ((width) == ACPI_INTEGER_BIT_SIZE ? \ - (UINT64) 0 : \ - ACPI_MASK_BITS_BELOW(width)) /* Bitfields within ACPI registers */ Modified: head/sys/contrib/dev/acpica/include/acpixf.h ============================================================================== --- head/sys/contrib/dev/acpica/include/acpixf.h Fri May 27 22:14:39 2016 (r300878) +++ head/sys/contrib/dev/acpica/include/acpixf.h Fri May 27 22:16:46 2016 (r300879) @@ -46,7 +46,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20160422 +#define ACPI_CA_VERSION 0x20160527 #include <contrib/dev/acpica/include/acconfig.h> #include <contrib/dev/acpica/include/actypes.h> Modified: head/sys/contrib/dev/acpica/include/acutils.h ============================================================================== --- head/sys/contrib/dev/acpica/include/acutils.h Fri May 27 22:14:39 2016 (r300878) +++ head/sys/contrib/dev/acpica/include/acutils.h Fri May 27 22:16:46 2016 (r300879) @@ -115,13 +115,25 @@ extern const char /* * Common error message prefixes */ +#ifndef ACPI_MSG_ERROR #define ACPI_MSG_ERROR "ACPI Error: " +#endif +#ifndef ACPI_MSG_EXCEPTION #define ACPI_MSG_EXCEPTION "ACPI Exception: " +#endif +#ifndef ACPI_MSG_WARNING #define ACPI_MSG_WARNING "ACPI Warning: " +#endif +#ifndef ACPI_MSG_INFO #define ACPI_MSG_INFO "ACPI: " +#endif +#ifndef ACPI_MSG_BIOS_ERROR #define ACPI_MSG_BIOS_ERROR "ACPI BIOS Error (bug): " +#endif +#ifndef ACPI_MSG_BIOS_WARNING #define ACPI_MSG_BIOS_WARNING "ACPI BIOS Warning (bug): " +#endif /* * Common message suffix
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201605272216.u4RMGkMa080244>