Lines Matching +full:64 +full:- +full:bit

3  * Module Name: tbfadt   - FADT table utilities
11 * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
28 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
104 * re-exports any such software from a foreign destination, Licensee shall
105 * ensure that the distribution and export/re-export of the software is in
108 * any of its subsidiaries will export/re-export any technical data, process,
130 * 3. Neither the names of the above-listed copyright holders nor the names
303 * PARAMETERS: GenericAddress - GAS struct to be initialized
304 * SpaceId - ACPI Space ID for this register
305 * ByteWidth - Width of this register
306 * Address - Address of the register
307 * RegisterName - ASCII name of the ACPI register
330 * Bit width field in the GAS is only one byte long, 255 max.
344 "%s - 32-bit FADT register is too long (%u bytes, %u bits) "
345 "to convert to GAS struct - 255 bits max, truncating",
353 * The 64-bit Address field is non-aligned in the byte packed
356 ACPI_MOVE_64_TO_64 (&GenericAddress->Address, &Address);
358 /* All other fields are byte-wide */
360 GenericAddress->SpaceId = SpaceId;
361 GenericAddress->BitWidth = BitWidth;
362 GenericAddress->BitOffset = 0;
363 GenericAddress->AccessWidth = 0; /* Access width ANY */
371 * PARAMETERS: RegisterName - ASCII name of the ACPI register
372 * Address32 - 32-bit address of the register
373 * Address64 - 64-bit address of the register
375 * RETURN: The resolved 64-bit address
377 * DESCRIPTION: Select between 32-bit and 64-bit versions of addresses within
383 * the 32-bit and 64-bit address fields (FIRMWARE_CTRL/X_FIRMWARE_CTRL and
388 * By default, as per the ACPICA specification, a valid 64-bit address is
389 * used regardless of the value of the 32-bit address. However, this
403 /* 64-bit address is zero, use 32-bit address */
411 /* Address mismatch between 32-bit and 64-bit versions */
414 "32/64X %s address mismatch in FADT: "
415 "0x%8.8X/0x%8.8X%8.8X, using %u-bit address",
417 AcpiGbl_Use32BitFadtAddresses ? 32 : 64));
419 /* 32-bit address override */
427 /* Default is to use the 64-bit address */
469 Length = FadtDesc->Length;
513 * PARAMETERS: Table - Pointer to BIOS FADT
514 * Length - Length of the table
541 Table->Revision, ACPI_FADT_CONFORMANCE, Length,
576 * PARAMETERS: None - AcpiGbl_FADT is used.
581 * Expand 32-bit addresses to 64-bit as necessary. Also validate
585 * contain a copy of the actual BIOS-provided FADT.
587 * Notes on 64-bit register addresses:
589 * After this FADT conversion, later ACPICA code will only use the 64-bit "X"
592 * The 64-bit X fields are optional extensions to the original 32-bit FADT
595 * 32-bit V1.0 fields to the 64-bit X fields if the 64-bit X field is originally
598 * For ACPI 1.0 FADTs (that contain no 64-bit addresses), all 32-bit address
599 * fields are expanded to the corresponding 64-bit X fields in the internal
602 * For ACPI 2.0+ FADTs, all valid (non-zero) 32-bit address fields are expanded
603 * to the corresponding 64-bit X fields, if the 64-bit field is originally
604 * zero. Adhering to the ACPI specification, we completely ignore the 32-bit
605 * field if the 64-bit field is valid, regardless of whether the host OS is
606 * 32-bit or 64-bit.
655 * Expand the 32-bit DSDT addresses to 64-bit as necessary.
656 * Later ACPICA code will always use the X 64-bit field.
668 /* Examine all of the 64-bit extended address fields (X fields) */
673 * Get the 32-bit and 64-bit addresses, as well as the register
689 * Expand the ACPI 1.0 32-bit addresses to the ACPI 2.0 64-bit "X"
691 * the 64-bit address structures.
694 * Now always use the 64-bit address if it is valid (non-zero), in
695 * accordance with the ACPI specification which states that a 64-bit
696 * address supersedes the 32-bit version. This behavior can be
699 * During 64-bit address construction and verification,
702 * Address32 zero, Address64 [don't care] - Use Address64
705 * Address32 non-zero, Address64 zero - Copy/use Address32
706 * Address32 non-zero == Address64 non-zero - Use Address64
707 * Address32 non-zero != Address64 non-zero - Warning, use Address64
710 * Address32 non-zero, Address64 zero - Copy/use Address32
711 * Address32 non-zero == Address64 non-zero - Copy/use Address32
712 * Address32 non-zero != Address64 non-zero - Warning, copy/use Address32
714 * Note: SpaceId is always I/O for 32-bit legacy address fields
718 if (Address64->Address)
720 if (Address64->Address != (UINT64) Address32)
725 "32/64X address mismatch in FADT/%s: "
726 "0x%8.8X/0x%8.8X%8.8X, using %u-bit address",
728 ACPI_FORMAT_UINT64 (Address64->Address),
729 AcpiGbl_Use32BitFadtAddresses ? 32 : 64));
735 * 64-bit X length field.
738 * 64-bit GAS structure can accommodate, 0xFF bits).
741 (Address64->BitWidth != ACPI_MUL_8 (Length)))
744 "32/64X length mismatch in FADT/%s: %u/%u",
745 Name, ACPI_MUL_8 (Length), Address64->BitWidth));
750 * Hardware register access code always uses the 64-bit fields.
751 * So if the 64-bit field is zero or is to be overridden,
752 * initialize it with the 32-bit fields.
753 * Note that when the 32-bit address favor is specified, the
754 * 64-bit fields are always re-initialized so that
756 * configured to the values to trigger a 32-bit compatible
759 if (!Address64->Address || AcpiGbl_Use32BitFadtAddresses)
771 * Both the address and length must be non-zero.
773 if (!Address64->Address || !Length)
778 Name, ACPI_FORMAT_UINT64 (Address64->Address), Length));
788 if ((Address64->Address && !Length) ||
789 (!Address64->Address && Length))
796 ACPI_FORMAT_UINT64 (Address64->Address), Length));
841 if ((Target64->Address) &&
843 (FadtInfoTable[i].DefaultLength != Target64->BitWidth))
847 FadtInfoTable[i].Name, Target64->BitWidth,
852 Target64->BitWidth = FadtInfoTable[i].DefaultLength;
868 * is useful to pre-calculate them from the PM1 Event Block definitions.
884 if (Source64->Address)
887 Source64->SpaceId, Pm1RegisterByteWidth,
888 Source64->Address +