[PATCH] verdin-am62: fix FASTBOOT_BUF_ADDR and FASTBOOT_BUF_SIZE

From: Hiago De Franco hiago.franco@toradex.com
The current value of CONFIG_FASTBOOT_BUF_ADDR is incorrect for hardware with 512MB and 1GB of RAM. The RAM address ranges for these devices are:
- 512MB: - Start: 0x80000000 - End: 0xA0000000 - 1GB: - Start: 0x80000000 - End: 0xC0000000
The current buffer address makes fastboot downloads work only on hardware with 2GB of RAM.
To fix this issue: 1. Lower CONFIG_FASTBOOT_BUF_ADDR to 0x80080000. This places the buffer near the beginning of RAM with a 512KB offset, as starting at exactly 0x80000000 conflicts with the ATF load address. Following K3_ATF_LOAD_ADDR configuration, ATF is loaded at 0x80000000:
config K3_ATF_LOAD_ADDR hex "Load address of ATF image" default 0x80000000 if (SOC_K3_AM625 || SOC_K3_AM62A7 || SOC_K3_AM62P5 || SOC_K3_J722S) default 0x70000000 help The load address for the ATF image. This value is used to build the FIT image header that places ATF in memory where it will run.
2. Reduce the size of the download buffer to 128MB, avoiding overlaps with RAMDISK_ADDR_R. This is a good enough value for individual downloads.
Theses changes make fastboot downloads work with 512MB and 1GB devices.
Fixes: defe30a78b76 ("verdin-am62: add DFU, USB and UUU fastboot support") Signed-off-by: Hiago De Franco hiago.franco@toradex.com --- configs/verdin-am62_a53_defconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configs/verdin-am62_a53_defconfig b/configs/verdin-am62_a53_defconfig index 49fb9790e295..6fa1a9d2c552 100644 --- a/configs/verdin-am62_a53_defconfig +++ b/configs/verdin-am62_a53_defconfig @@ -122,8 +122,8 @@ CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000 CONFIG_DMA_CHANNELS=y CONFIG_TI_K3_NAVSS_UDMA=y CONFIG_USB_FUNCTION_FASTBOOT=y -CONFIG_FASTBOOT_BUF_ADDR=0xC0000000 -CONFIG_FASTBOOT_BUF_SIZE=0x2F000000 +CONFIG_FASTBOOT_BUF_ADDR=0x80080000 +CONFIG_FASTBOOT_BUF_SIZE=0x8000000 CONFIG_FASTBOOT_UUU_SUPPORT=y CONFIG_TI_SCI_PROTOCOL=y CONFIG_GPIO_HOG=y

On Fri, Nov 29, 2024 at 12:12:57PM -0300, Hiago De Franco wrote:
From: Hiago De Franco hiago.franco@toradex.com
The current value of CONFIG_FASTBOOT_BUF_ADDR is incorrect for hardware with 512MB and 1GB of RAM. The RAM address ranges for these devices are:
- 512MB:
- Start: 0x80000000
- End: 0xA0000000
- 1GB:
- Start: 0x80000000
- End: 0xC0000000
The current buffer address makes fastboot downloads work only on hardware with 2GB of RAM.
To fix this issue:
- Lower CONFIG_FASTBOOT_BUF_ADDR to 0x80080000. This places the buffer near the beginning of RAM with a 512KB offset, as starting at exactly 0x80000000 conflicts with the ATF load address. Following K3_ATF_LOAD_ADDR configuration, ATF is loaded at 0x80000000:
config K3_ATF_LOAD_ADDR hex "Load address of ATF image" default 0x80000000 if (SOC_K3_AM625 || SOC_K3_AM62A7 || SOC_K3_AM62P5 || SOC_K3_J722S) default 0x70000000 help The load address for the ATF image. This value is used to build the FIT image header that places ATF in memory where it will run.
- Reduce the size of the download buffer to 128MB, avoiding overlaps with RAMDISK_ADDR_R. This is a good enough value for individual downloads.
Theses changes make fastboot downloads work with 512MB and 1GB devices.
Fixes: defe30a78b76 ("verdin-am62: add DFU, USB and UUU fastboot support") Signed-off-by: Hiago De Franco hiago.franco@toradex.com
configs/verdin-am62_a53_defconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configs/verdin-am62_a53_defconfig b/configs/verdin-am62_a53_defconfig index 49fb9790e295..6fa1a9d2c552 100644 --- a/configs/verdin-am62_a53_defconfig +++ b/configs/verdin-am62_a53_defconfig @@ -122,8 +122,8 @@ CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000 CONFIG_DMA_CHANNELS=y CONFIG_TI_K3_NAVSS_UDMA=y CONFIG_USB_FUNCTION_FASTBOOT=y -CONFIG_FASTBOOT_BUF_ADDR=0xC0000000 -CONFIG_FASTBOOT_BUF_SIZE=0x2F000000 +CONFIG_FASTBOOT_BUF_ADDR=0x80080000 +CONFIG_FASTBOOT_BUF_SIZE=0x8000000 CONFIG_FASTBOOT_UUU_SUPPORT=y CONFIG_TI_SCI_PROTOCOL=y CONFIG_GPIO_HOG=y
Why not 0x88200000 which is what CONFIG_SYS_LOAD_ADDR is?

On Fri, Nov 29, 2024 at 10:09:25AM -0600, Tom Rini wrote:
On Fri, Nov 29, 2024 at 12:12:57PM -0300, Hiago De Franco wrote:
From: Hiago De Franco hiago.franco@toradex.com
The current value of CONFIG_FASTBOOT_BUF_ADDR is incorrect for hardware with 512MB and 1GB of RAM. The RAM address ranges for these devices are:
- 512MB:
- Start: 0x80000000
- End: 0xA0000000
- 1GB:
- Start: 0x80000000
- End: 0xC0000000
The current buffer address makes fastboot downloads work only on hardware with 2GB of RAM.
To fix this issue:
- Lower CONFIG_FASTBOOT_BUF_ADDR to 0x80080000. This places the buffer near the beginning of RAM with a 512KB offset, as starting at exactly 0x80000000 conflicts with the ATF load address. Following K3_ATF_LOAD_ADDR configuration, ATF is loaded at 0x80000000:
config K3_ATF_LOAD_ADDR hex "Load address of ATF image" default 0x80000000 if (SOC_K3_AM625 || SOC_K3_AM62A7 || SOC_K3_AM62P5 || SOC_K3_J722S) default 0x70000000 help The load address for the ATF image. This value is used to build the FIT image header that places ATF in memory where it will run.
- Reduce the size of the download buffer to 128MB, avoiding overlaps with RAMDISK_ADDR_R. This is a good enough value for individual downloads.
Theses changes make fastboot downloads work with 512MB and 1GB devices.
Fixes: defe30a78b76 ("verdin-am62: add DFU, USB and UUU fastboot support") Signed-off-by: Hiago De Franco hiago.franco@toradex.com
configs/verdin-am62_a53_defconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configs/verdin-am62_a53_defconfig b/configs/verdin-am62_a53_defconfig index 49fb9790e295..6fa1a9d2c552 100644 --- a/configs/verdin-am62_a53_defconfig +++ b/configs/verdin-am62_a53_defconfig @@ -122,8 +122,8 @@ CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000 CONFIG_DMA_CHANNELS=y CONFIG_TI_K3_NAVSS_UDMA=y CONFIG_USB_FUNCTION_FASTBOOT=y -CONFIG_FASTBOOT_BUF_ADDR=0xC0000000 -CONFIG_FASTBOOT_BUF_SIZE=0x2F000000 +CONFIG_FASTBOOT_BUF_ADDR=0x80080000 +CONFIG_FASTBOOT_BUF_SIZE=0x8000000 CONFIG_FASTBOOT_UUU_SUPPORT=y CONFIG_TI_SCI_PROTOCOL=y CONFIG_GPIO_HOG=y
Why not 0x88200000 which is what CONFIG_SYS_LOAD_ADDR is?
We were downloading a file at this address, that is why we decided to not use it. However it is better to use SYS_LOAD_ADDR and then download this file to a different value.
Thanks Tom, I will send a v2.
-- Tom
Cheers,
Hiago.
participants (2)
-
Hiago De Franco
-
Tom Rini