amd/hudson/agesa: Fix position of hudson_fwm

AMDFWTOOL calculates the location of the amdfw based on the
CONFIG_ROM_SIZE. If HUDSON_FWM_POSITION does not match that location the
resulting rom does not boot.

This patch forces the position of HUDSON_FWM_POSITION to be the
position calculated by amdfwrom.

Tested on a Bettong derivative with a 16MiB flash.

Change-Id: I3ce69f77174327c18ff97e551c0665c9f633991e
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Reviewed-on: https://review.coreboot.org/17934
Tested-by: build bot (Jenkins)
Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
This commit is contained in:
Ricardo Ribalda Delgado 2016-12-21 20:57:13 +01:00 committed by Martin Roth
parent baae959a63
commit 8c42424ec1
2 changed files with 1 additions and 25 deletions

View File

@ -101,29 +101,6 @@ config HUDSON_FWM
default y if HUDSON_XHCI_FWM || HUDSON_IMC_FWM || HUDSON_GEC_FWM default y if HUDSON_XHCI_FWM || HUDSON_IMC_FWM || HUDSON_GEC_FWM
default n default n
if HUDSON_FWM
config HUDSON_FWM_POSITION
hex "Hudson Firmware ROM Position"
default 0xFFF20000 if BOARD_ROMSIZE_KB_1024
default 0xFFE20000 if BOARD_ROMSIZE_KB_2048
default 0xFFC20000 if BOARD_ROMSIZE_KB_4096
default 0xFF820000 if BOARD_ROMSIZE_KB_8192
default 0xFF020000 if BOARD_ROMSIZE_KB_16384
help
Hudson requires the firmware MUST be located at
a specific address (ROM start address + 0x20000), otherwise
xhci host Controller can not find or load the xhci firmware.
The firmware start address is dependent on the ROM chip size.
The default offset is 0x20000 from the ROM start address, namely
0xFFF20000 if flash chip size is 1M
0xFFE20000 if flash chip size is 2M
0xFFC20000 if flash chip size is 4M
0xFF820000 if flash chip size is 8M
0xFF020000 if flash chip size is 16M
endif # HUDSON_FWM
config HUDSON_SATA_MODE config HUDSON_SATA_MODE
int "SATA Mode" int "SATA Mode"
default 0 default 0

View File

@ -35,8 +35,7 @@ ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smi.c smi_util.c
# +-----------+---------------+----------------+------------+ # +-----------+---------------+----------------+------------+
# EC ROM should be 64K aligned. # EC ROM should be 64K aligned.
HUDSON_FWM_POS_CALC=$(call int-add, $(call int-subtract, 0xffffffff $(call int-multiply, $(CONFIG_COREBOOT_ROMSIZE_KB) 1024)) 0x20000 1) HUDSON_FWM_POSITION=$(call int-add, $(call int-subtract, 0xffffffff $(CONFIG_ROM_SIZE)) 0x20000 1)
HUDSON_FWM_POSITION=$(shell printf %u $(CONFIG_HUDSON_FWM_POSITION))
ifdef CONFIG_HUDSON_AHCI_ROM ifdef CONFIG_HUDSON_AHCI_ROM
stripped_ahci_rom_id = $(call strip_quotes,$(CONFIG_AHCI_ROM_ID)) stripped_ahci_rom_id = $(call strip_quotes,$(CONFIG_AHCI_ROM_ID))