amd/hudson/pi: 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: Id2ee96ee076293d48ade84fd6e976ca994dcf491
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Reviewed-on: https://review.coreboot.org/17925
Tested-by: build bot (Jenkins)
Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
This commit is contained in:
Ricardo Ribalda Delgado 2016-12-20 10:51:08 +01:00 committed by Martin Roth
parent df1ff231e4
commit baae959a63
2 changed files with 1 additions and 25 deletions

View File

@ -103,29 +103,6 @@ config HUDSON_FWM
default y if HUDSON_XHCI_FWM || HUDSON_IMC_FWM || HUDSON_GEC_FWM || HUDSON_PSP
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 AMD_PUBKEY_FILE
depends on HUDSON_PSP
string "AMD public Key"

View File

@ -67,8 +67,7 @@ ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smi.c smi_util.c
#
# 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=$(shell printf %u $(CONFIG_HUDSON_FWM_POSITION))
HUDSON_FWM_POSITION=$(call int-add, $(call int-subtract, 0xffffffff $(CONFIG_ROM_SIZE)) 0x20000 1)
##
ifeq ($(CONFIG_HUDSON_PSP), y)