Kyösti Mälkki has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/34882 )
Change subject: arch/x86: Move stack with CAR_GLOBAL_MIGRATION ......................................................................
Patch Set 2:
(1 comment)
https://review.coreboot.org/c/coreboot/+/34882/2/src/arch/x86/car.ld File src/arch/x86/car.ld:
https://review.coreboot.org/c/coreboot/+/34882/2/src/arch/x86/car.ld@43 PS2, Line 43: #if !CONFIG(CAR_GLOBAL_MIGRATION) : _car_stack_start = .; : . += CONFIG_DCACHE_BSP_STACK_SIZE; : _car_stack_end = .; : #endif
This can definitely goes wrong if platforms were in fact using more than the default CONFIG_DCACHE_B […]
With CAR_GLOBAL_MIGRATION=y, stack will not move. (FSP1_0, binaryPI).
With C_ENVIRONMENT_BOOTBLOCK=y, CAR_GLOBAL_MIGRATION=n, stack will not move.
With C_ENVIRONMENT_BOOTBLOCK=n, CAR_GLOBAL_MIGRATION=n, stack will move:
For intel, these platforms have thrown "Smashed stack detected in romstage!" previously, and I think we fixed those. That was for stack size of 0x2000 which is also the default DCACHE_BSP_STACK_SIZE.
Currently AGESA with C_ENVIRONMENT_BOOTBLOCK=n, POSTCAR_STAGE=y is the question mark. Interestingly enough, I found that production amd/stoneyridge increased DCACHE_BSP_STACK_SIZE to 0x4000, and then I came across CB:34883.