summaryrefslogtreecommitdiffstats
path: root/src/soc/amd/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/amd/common')
-rw-r--r--src/soc/amd/common/Makefile.inc5
-rw-r--r--src/soc/amd/common/block/include/amdblocks/psp_efs.h2
-rw-r--r--src/soc/amd/common/block/psp/Kconfig68
3 files changed, 71 insertions, 4 deletions
diff --git a/src/soc/amd/common/Makefile.inc b/src/soc/amd/common/Makefile.inc
index c5d952ff2d34..e3883059f7fe 100644
--- a/src/soc/amd/common/Makefile.inc
+++ b/src/soc/amd/common/Makefile.inc
@@ -47,9 +47,8 @@ $(objcbfs)/bootblock.bin: $(obj)/amdfw.rom
add_bootblock = \
$(CBFSTOOL) $(1) add -f $(2) -n apu/amdfw -t amdfw \
-b $(call int-add, \
- $(call int-subtract, 0xffffffff \
- $(call int-shift-left, \
- 0x80000 $(CONFIG_AMD_FWM_POSITION_INDEX))) 0x20000 1)
+ $(call int-subtract, 0xffffffff $(CONFIG_ROM_SIZE)) 1 $(CONFIG_AMD_FWM_POSITION))
+
endif # ifeq ($(CONFIG_RESET_VECTOR_IN_RAM),y)
ifeq ($(CONFIG_VBOOT_GSCVD),y)
diff --git a/src/soc/amd/common/block/include/amdblocks/psp_efs.h b/src/soc/amd/common/block/include/amdblocks/psp_efs.h
index a930bc9a95ce..02f027c8b4ae 100644
--- a/src/soc/amd/common/block/include/amdblocks/psp_efs.h
+++ b/src/soc/amd/common/block/include/amdblocks/psp_efs.h
@@ -6,7 +6,7 @@
#include <types.h>
-#define EFS_OFFSET (CONFIG_ROM_SIZE - (0x80000 << CONFIG_AMD_FWM_POSITION_INDEX) + 0x20000)
+#define EFS_OFFSET CONFIG_AMD_FWM_POSITION
#define EMBEDDED_FW_SIGNATURE 0x55aa55aa
diff --git a/src/soc/amd/common/block/psp/Kconfig b/src/soc/amd/common/block/psp/Kconfig
index d59e6fc4bfbf..68d68615ea21 100644
--- a/src/soc/amd/common/block/psp/Kconfig
+++ b/src/soc/amd/common/block/psp/Kconfig
@@ -55,3 +55,71 @@ config PSP_INCLUDES_HSP
default n
help
Select this config to indicate SoC includes Hardware Security Processor(HSP).
+
+config AMD_FWM_POSITION_20000_DEFAULT
+ bool "0x20000"
+
+config AMD_FWM_POSITION_420000_DEFAULT
+ bool "0x420000"
+
+config AMD_FWM_POSITION_820000_DEFAULT
+ bool "0x820000"
+
+config AMD_FWM_POSITION_C20000_DEFAULT
+ bool "0xC20000"
+
+config AMD_FWM_POSITION_E20000_DEFAULT
+ bool "0xE20000"
+
+config AMD_FWM_POSITION_F20000_DEFAULT
+ bool "0xF20000"
+
+config AMD_FWM_POSITION_FA0000_DEFAULT
+ bool "0xFA0000"
+
+choice AMD_FWM_POSITION_CHOICE
+ prompt "AMD FW position"
+ default AMD_FWM_POSITION_420000 if AMD_FWM_POSITION_420000_DEFAULT
+ default AMD_FWM_POSITION_820000 if AMD_FWM_POSITION_820000_DEFAULT
+ default AMD_FWM_POSITION_C20000 if AMD_FWM_POSITION_C20000_DEFAULT
+ default AMD_FWM_POSITION_E20000 if AMD_FWM_POSITION_E20000_DEFAULT
+ default AMD_FWM_POSITION_F20000 if AMD_FWM_POSITION_F20000_DEFAULT
+ default AMD_FWM_POSITION_FA0000 if AMD_FWM_POSITION_FA0000_DEFAULT
+ default AMD_FWM_POSITION_20000
+ help
+ Set the position on flash offset where the AMD FW needs to be.
+ This position is relative to a 16MB flash window. If the flash
+ size is smaller than 16MB it gets mapped at the top of that window.
+
+config AMD_FWM_POSITION_20000
+ bool "0x20000"
+
+config AMD_FWM_POSITION_420000
+ bool "0x420000"
+
+config AMD_FWM_POSITION_820000
+ bool "0x820000"
+
+config AMD_FWM_POSITION_C20000
+ bool "0xC20000"
+
+config AMD_FWM_POSITION_E20000
+ bool "0xE20000"
+
+config AMD_FWM_POSITION_F20000
+ bool "0xF20000"
+
+config AMD_FWM_POSITION_FA0000
+ bool "0xFA0000"
+
+endchoice
+
+config AMD_FWM_POSITION
+ hex
+ default 0x20000 if AMD_FWM_POSITION_20000
+ default 0x420000 if AMD_FWM_POSITION_420000
+ default 0x820000 if AMD_FWM_POSITION_820000
+ default 0xc20000 if AMD_FWM_POSITION_C20000
+ default 0xe20000 if AMD_FWM_POSITION_E20000
+ default 0xf20000 if AMD_FWM_POSITION_F20000
+ default 0xfa0000 if AMD_FWM_POSITION_FA0000