On 5/22/25 11:16, Steven Lee wrote:
> The unimplemented memory region overlaps with the VBootROM address
> range, causing incorrect memory layout.
>
> This patch adjusts the size and start address of the unimplemented
> region to avoid collision. The IO memory region (ASPEED_DEV_IOMEM) is
> now moved to 0x20000 to reserve space for VBootROM at 0x0.
>
> Although the memory range 0x20000 - 0x10000000 is undefined in the
> datasheet and should not be required, further testing shows OP-TEE
> or U-Boot may access 0x400000 during early boot.
> Removing the unimplemented region causes firmware hangs.
> > To prevent unexpected accesses, retain the region as a safeguard.
>
> Signed-off-by: Steven Lee <steven_lee@aspeedtech.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> hw/arm/aspeed_ast27x0.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/hw/arm/aspeed_ast27x0.c b/hw/arm/aspeed_ast27x0.c
> index 1974a25766..bb61c30cf4 100644
> --- a/hw/arm/aspeed_ast27x0.c
> +++ b/hw/arm/aspeed_ast27x0.c
> @@ -23,14 +23,14 @@
> #include "qobject/qlist.h"
> #include "qemu/log.h"
>
> -#define AST2700_SOC_IO_SIZE 0x01000000
> +#define AST2700_SOC_IO_SIZE 0x00FE0000
> #define AST2700_SOC_IOMEM_SIZE 0x01000000
> #define AST2700_SOC_DPMCU_SIZE 0x00040000
> #define AST2700_SOC_LTPI_SIZE 0x01000000
>
> static const hwaddr aspeed_soc_ast2700_memmap[] = {
> - [ASPEED_DEV_IOMEM] = 0x00000000,
> [ASPEED_DEV_VBOOTROM] = 0x00000000,
> + [ASPEED_DEV_IOMEM] = 0x00020000,
> [ASPEED_DEV_SRAM] = 0x10000000,
> [ASPEED_DEV_DPMCU] = 0x11000000,
> [ASPEED_DEV_IOMEM0] = 0x12000000,