Commit Graph

13 Commits

Author SHA1 Message Date
Marc Jones
a710941e43 amd/pi: Move AGESA cbfs access function to coreboot
The AGESA.c file in 3rdparty has cbfs access functions
for locating the AGESA binaries. coreboot access functions
need to be within coreboot where they can be updated with
cbfs changes. Move the offending function to coreboot.

Change-Id: Ic414d2c74e270548d5190e8c95e4cd7b8f3b8edd
Signed-off-by: Marc Jones <marc.jones@se-eng.com>
2015-05-06 05:29:12 +02:00
William Wang
6c38b3c7f3 AGESA Version: Update Steppe Eagle to v1.0.0.4.0121
AGESA ENHANCEMENTS and FIXED BUGS after 1.0.0.4:
- Fixed ECC issue
- VRM values compatible with 53081 Rev. 1.03

Known Issues/Limitations:
- Warm boot times may exceed cold boot times
 (affects ADK Fast Boot results)
- fTPM and DASH are not yet fully implemented

TEST:
Boot win7/8,ubuntu OS on Olive Hill+ board successfully
Verify that single ECC DIMM failure is gone

Change-Id: I88b2c4bdeb6b638218a2d2935da6ad35a1f5dc0a
Signed-off-by: William Wang <william.wang@amd.com>
Signed-off-by: William Wang <william20140704@yahoo.com>
2015-03-27 22:00:17 +01:00
Bruce Griffith
5eb7a9cf08 AGESA Version: Upgrade 00630F01 (Bald Eagle) to v1.1.0.7
Agesa ENHANCEMENTS and FIXED BUGS after 1.1.0.5:

  - BUG: Quad limited to Dual, XHCI controllers will disappear after r
  - ENH: FCH - POST API for GPIO definition
  - ENH: Reduce padding size for SMU firmware
  - BUG: Pcie Training Hangs on Broken Line failure
  - BUG: GNB IOAPIC devid in IVRS table should be 0:0:1
  - ENH: Kaveri SMU Firmware 13.52.0
  - BUG: Clear EcPortActive if IMC is disabled
  - BUG: Name string in Core 2 mismatch BSP setting
  - ENH: AGESA FCH USB EHCI Deep Blink Power Saving changes
  - BUG: eDP does not light up
  - BUG: BTS Shows warnings on several registers
  - ENH: KV Gen3 EQ CMOS Default Settings Changes
  - BUG: Wrong Timing parameters passed to PMU Message Block in mixed
  - ENH: Brand String Updates for Server and Embedded
  - ENH: Update NFC reference driver on KV as test result on KV platfo

===========================================================================
Additional changes that are specific to coreboot:
---------------------------------------------------------------------------

KaveriPI: Updates the IMC code to v1.1.2
   Since existing Trinity/Richland and Ontario boards use the v1.1.1
   code stored in southbridge/amd/hudson, move the Hudson v1.1.2 IMC
   binary from this update to KaveriPI under southbridge/amd/bolton.
   This is a potential problem for future KaveriPI updates since the
   path is changed from the AMD conventions used for KaveriPI.
   Technically, all discrete FCH designs (Kaveri, Trinity/Richland,
   Ontario, possibly Orochi) should use the latest Hudson IMC code.

KavariPi: Change licensing on gcc-intrin.h per Palamida scan
   Palamida scan run on behalf of AMD found that the source license
   for gcc-intrin.h should be attributed to hackbunny@reactos.com.
   License was restored to the original KJK:Hyperion text.

===========================================================================

Change-Id: Ie5ef48671ad4adab835ee6cba1dcafc4e12c18ee
Signed-off-by: Bruce Griffith <Bruce.Griffith@se-eng.com>
2014-12-16 03:41:58 -07:00
Bruce Griffith
571952f6d4 AGESA Version: Upgrade 00730F01 (Steppe Eagle) to v1.0.0.4
Agesa ENHANCEMENTS and FIXED BUGS after 1.0.0.3:

- ENH: FCH - POST API for GPIO definition
- BUG: Pcie Training Hangs on Broken Line failure
- ENH: Save Restore FakeSMI related registers for S3
- BUG: AGESA-FCH Can't set SPI Dual_122 mode
- BUG: EHCI driven strength programming is not consistent with BKDG
- BUG: D18F2x9C_x0D0F_0[F,8:0]04[POdtOff] fails to be maintained
- ENH: PSP FW Stack (Mullins-Beema) version D.1.1.22
- ENH: Mullins_Firmware_14_31_0
- ENH: Sensor feature is not working
- BUG: Potential Stack contaminate during TPM memory ready callback
- ENH: ALIB skip training on hot unplug
- ENH: PSP FW Stack (Mullins) version 0.1.1.1E
- ENH: AGESA enhancement to implement workaround for ERRATA 793

Known Issues/Limitations

- Warm boot times may exceed cold boot times (affects ADK Fast Boot results)
- fTPM and DASH are not yet fully implemented

======================================================================
Additional changes that are specific to the AGESA binary for coreboot:
----------------------------------------------------------------------

MullinsPI: Change licensing on gcc-intrin.h per Palamida scan
   Palamida scan run on behalf of AMD found that the source license
   for gcc-intrin.h should be attributed to hackbunny@reactos.com.
   License was restored to the original KJK:Hyperion text.

MullinsPI: Disable quad rank support
   Mullins does not support quad rank DIMMs. Turning this off
   allows both DIMMs to be detected on a olivehillplus.

Mullins: GfxInitSview() needs to preserve GFX PCI config space
   The GfxInitSview() exits with the I/O decode disabled in the
   GFX (BDF=0:1.0) PCI config space. This commit copies the
   algorithm used for Trinity.

MullinsPI: Prevent SPI Quad I/O mode from being used
   The AGESA code for SPI Quad I/O mode has multiple problems.
   These problems were first observed on the amd/DB-FT3b-LC board
   which has a SPI rom that supports quad I/O mode.
   In the function FchPlatformSpiQe() it is not able to correctly
   detect the QeEnabled bit to determine if quad mode should be
   turned on. This results in the function FchSetSpi() erasing
   the sector where the hudson/fwm header is stored and as a
   result the motherboard will not be able to be rebooted.

MullinsPI: Turn on IOMMU
   The IOMMU cannot be turned on from coreboot if the IOMMU flag is
   set "OFF" in binary PI.  This is because turning off IOMMU in
   build options disables compilation of the code that generates
   the IVRS ACPI table.  Turning on the IOMMU flag should have no
   effect in coreboot code unless the IOMMU is explicitly enabled
   before the call to AMD_INIT_ENV.

MullinsPI: Eliminate BOUNDS_CHK errors for HEAP locate objects function
   The HEAP locate objects function is frequently used in AGESA to test
   whether code has already run.  This results in an AGESA BOUNDS_CHK
   error being reported and the subsequent logging of the error.  These
   are not errors and they either cause a lot of work to revisit whether
   they are valid or all BOUNDS_CHK errors get ignored through invalid
   use of the error.  Remove the reporting of BOUNDS_CHK errors within
   the HEAP locate buffer function.

======================================================================

Change-Id: Id45be29a330089e86a55bdd4571538fe43ea7668
Signed-off-by: Bruce Griffith <Bruce.Griffith@se-eng.com>
2014-12-16 03:41:06 -07:00
Bruce Griffith
a8b0c52850 AMD 3rdparty PI: Make gcc-intrin.h match open-source AGESA
Forward port commit:
   db0e0e2 amd/agesa/*/gcc-intrin.h: Invaild inline asm

Change-Id: I4a08ae9ed234aea671a8e6d83bfc352f3f422e4a
Signed-off-by: Bruce Griffith <Bruce.Griffith@se-eng.com>
2014-12-16 03:32:08 -07:00
Bruce Griffith
1ce6ed6cd6 AGESA binary PI: Add CONST to Azalia fields in callback structs
The Azalia table is a lookup. It is hard to imagine that it should
not be CONST.  The compiler does not complain when the Azalia
related fields in the structs passed into the AGESA OEM callout
are set CONST.  If the compiler does not complain, then the
calling function does not modify the Azalia lookup table.
Therefore, there is no issue with setting the Azalia verb table
pointer fields as CONST. All this does is provide more detail to the
compiler so that it can flag errors at compile-time rather than
runtime.

Change-Id: I269c137f8644e97e095e1e39df1a255223cf07b0
Signed-off-by: Bruce Griffith <Bruce.Griffith@se-eng.com>
2014-11-22 00:37:18 +01:00
Bruce Griffith
d91bc1d4d5 AGESA binary PI: Update the Bald Eagle binary
KavariPi: Change the default Sata6AhciCap to TRUE
	Change an internal AGESA variable to allow SATA AHCI
	mode to grab all six ports

   KaveriPI: Eliminate BOUNDS_CHK errors for HEAP locate objects function
	Internal to AGESA, HEAP locate functions return an
	error code.  The error code shows up in the output from
	AmdReadEventLog().  Sometimes the locate functions are
	only used to determine if processing has already occurred.
	Change AGESA so that no error is generated in the log
	for simple locates.  Memory allocates and deallocates
	still generate an error.

   Kaveri: GfxInitSview() needs to preserve GFX PCI config space
	When GfxInitSview() starts processing, it sets the I/O,
	memory, and busmaster bits in the integrated graphics device
	config space header.  When GfxInitSview() completes the
	I/O bit is cleared.  Change AGESA so that GfxInitSview()
	preserves the config space I/O, memory, and busmaster
	bits through the function.

Change-Id: Ic30afefa9e0da14017642e1242976771908847bc
Signed-off-by: Bruce Griffith <Bruce.Griffith@se-eng.com>
2014-11-21 03:58:51 -07:00
Bruce Griffith
9f68e20e5e AMD KaveriPI: Add PI header files to support binary AGESA release
Add the header files, Makefiles, and Kconfig files to support the
AMD Embedded "Bald Eagle" binary AGESA.  The header files need to
exactly match the files used to build binary AGESA.

Change-Id: I7a245bc4d36faa65838f3f41d2367889531d9aa7
Signed-off-by: Bruce Griffith <Bruce.Griffith@se-eng.com>
2014-11-21 00:16:08 +01:00
Bruce Griffith
c5b5269b11 AMD AGESA: Move Bald Eagle BLOB to highlight only supports FP3 parts
Move the Bald Eagle AGESA.bin file into a socket-specific directory
to highlight that this BLOB is only for soldered down processors in
an FP3 package.

Change-Id: Iabef48c2f64a5d1fd7c1a9b1de65460308165f0c
Signed-off-by: Bruce Griffith <bruce.griffith@se-eng.com>
2014-11-19 18:48:30 +01:00
Bruce Griffith
e5ecd9c649 AMD MullinsPI: Add PI header files to support binary AGESA release
Add the header files, Makefiles, and Kconfig files to support the
AMD Embedded "Steppe Eagle" binary AGESA.  The header files need to
exactly the files used to build binary AGESA.

Change-Id: Ia81caaaa3d90a3c23280a06fcfb50b922c94288a
Signed-off-by: Bruce Griffith <Bruce.Griffith@se-eng.com>
2014-08-28 11:54:02 -06:00
Bruce Griffith
fd65234c52 AMD AGESA: Move Steppe Eagle BLOB to highlight only supports FT3b parts
Move the Steppe Eagle AGESA.bin file into a socket-specific directory
to highlight that this BLOB is only for soldered down processors in
an FT3b package.

Change-Id: I291b6a60be7d8f9d784e75650bc721495d89a4c7
Signed-off-by: Bruce Griffith <Bruce.Griffith@se-eng.com>
2014-08-28 11:54:01 -06:00
Bruce Griffith
23cdbffa01 AMD AGESA: Move Bald Eagle AGESA BLOB from CPU to new PI directory
Move the AGESA BLOB from the CPU directory to the PI directory to match
the organization of the Steppe Eagle directory.  Convert the license
file from RTF to text so that it can be reviewed in Gerrit.

Change-Id: I2b7e499ea458939af3ed5bf4e4e8d59301733ffc
Signed-off-by: Bruce Griffith <bruce.griffith@se-eng.com>
2014-07-28 12:11:33 -06:00
Bruce Griffith
ece4051fc1 AMD AGESA: Add BLOBs to support AMD Embedded "Steppe Eagle" processors
Add AGESA BLOB, VBIOS, and xHCI BLOB into the 3rdparty repo.  These
are explicitly to support AMD Embedded "Steppe Eagle" processors in
an FT3b package.  These BLOBs may also work with other AMD Mullins
based processors but use with other variants is not supported.

Change-Id: I6911e03fc605d38cf8283d34113ae8943ffa2500
Signed-off-by: Bruce Griffith <Bruce.Griffith@se-eng.com>
2014-07-28 12:11:19 -06:00