[PATCH 0/2] powerpc: mpc85xx: Add support for generating QorIQ pre-PBL eSDHC boot sector

With this patch series, U-Boot binary u-boot.bin (or u-boot-with-spl.bin when SPL is used) for QorIQ pre-PBL platforms can be directly copied to SD card without need to process binary via external formatting tools.
Tested on P2020 based board with SPL booting and also direct U-Boot booting without SPL.
Depends on other powerpc mpc85xx patches: http://patchwork.ozlabs.org/project/uboot/list/?series=293592&state=*
When using SPL, also following mmc fsl_esdhc_spl patches are required: http://patchwork.ozlabs.org/project/uboot/list/?series=293276&state=*
And when using SPL and u-boot-with-spl.bin is stored on non-zero sector then also following patch is required: http://patchwork.ozlabs.org/project/uboot/patch/20220404163311.5853-1-pali@k...
Pali Rohár (2): powerpc: mpc85xx: Add support for generating QorIQ pre-PBL eSDHC boot sector board: freescale: p1_p2_rdb_pc: Calculate offsets for eSDHC boot sector
arch/powerpc/cpu/mpc85xx/Kconfig | 53 +++++++++++++++ arch/powerpc/cpu/mpc85xx/start.S | 86 +++++++++++++++++++++++++ arch/powerpc/cpu/mpc85xx/u-boot-spl.lds | 5 ++ arch/powerpc/cpu/mpc85xx/u-boot.lds | 5 ++ include/configs/p1_p2_rdb_pc.h | 7 +- 5 files changed, 155 insertions(+), 1 deletion(-)

QorIQ U-Boot binary for SD card booting compiled during build process (either u-boot.bin or u-boot-with-spl.bin) cannot be directly loaded by QorIQ pre-PBL BootROM. Compiled U-Boot binary first needs to be processed by Freescale boot_format tool as described in doc/README.mpc85xx-sd-spi-boot
BootROM requires that image on SD card must contain special boot sector. Implement support for generating this special boot sector directly in U-Boot start code. Boot sector needs to be at the beginning of the image, so when compiling only proper U-Boot without SPL then it needs to be in proper U-Boot. When compiling SPL with proper U-Boot then it needs to be only in SPL.
Support can be enabled by a new config option FSL_PREPBL_ESDHC_BOOT_SECTOR. Via other two additional options FSL_PREPBL_ESDHC_BOOT_SECTOR_START and FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA it is possible to tune how final U-Boot image could be stored on the SD card.
Signed-off-by: Pali Rohár pali@kernel.org --- arch/powerpc/cpu/mpc85xx/Kconfig | 53 +++++++++++++++ arch/powerpc/cpu/mpc85xx/start.S | 86 +++++++++++++++++++++++++ arch/powerpc/cpu/mpc85xx/u-boot-spl.lds | 5 ++ arch/powerpc/cpu/mpc85xx/u-boot.lds | 5 ++ 4 files changed, 149 insertions(+)
diff --git a/arch/powerpc/cpu/mpc85xx/Kconfig b/arch/powerpc/cpu/mpc85xx/Kconfig index c308447d493a..6f8b7593d250 100644 --- a/arch/powerpc/cpu/mpc85xx/Kconfig +++ b/arch/powerpc/cpu/mpc85xx/Kconfig @@ -12,6 +12,59 @@ config CMD_ERRATA This enables the 'errata' command which displays a list of errata work-arounds which are enabled for the current board.
+config FSL_PREPBL_ESDHC_BOOT_SECTOR + bool "Generate QorIQ pre-PBL eSDHC boot sector" + depends on MPC85xx + depends on SYS_EXTRA_OPTIONS = SDCARD + help + With this option final image would have prepended QorIQ pre-PBL eSDHC + boot sector suitable for SD card images. This boot sector instruct + BootROM to configure L2 SRAM and eSDHC then load image from SD card + into L2 SRAM and finally jump to image entry point. + + This is alternative to Freescale boot_format tool, but works only for + SD card images and only for L2 SRAM booting. U-Boot images generated + with this option should not passed to boot_format tool. + + For other configuration like booting from eSPI or configuring SDRAM + please use Freescale boot_format tool without this option. See file + doc/README.mpc85xx-sd-spi-boot + +config FSL_PREPBL_ESDHC_BOOT_SECTOR_START + int "QorIQ pre-PBL eSDHC boot sector start offset" + depends on FSL_PREPBL_ESDHC_BOOT_SECTOR + range 0 23 + default 0 + help + QorIQ pre-PBL eSDHC boot sector may be located on one of the first + 24 SD card sectors. Select SD card sector on which final U-Boot + image (with this boot sector) would be installed. + + By default first SD card sector (0) is used. But this may be changed + to allow installing U-Boot image on some partition (with fixed start + sector). + + Please note that any sector on SD card prior this boot sector must + not contain ASCII "BOOT" bytes at sector offset 0x40. + +config FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA + int "Relative data sector for QorIQ pre-PBL eSDHC boot sector" + depends on FSL_PREPBL_ESDHC_BOOT_SECTOR + default 1 + range 1 8388607 + help + Select data sector from the beginning of QorIQ pre-PBL eSDHC boot + sector on which would be stored raw U-Boot image. + + By default is it second sector (1) which is the first available free + sector (on the first sector is stored boot sector). It can be any + sector number which offset in bytes can be expressed by 32-bit number. + + In case this final U-Boot image (with this boot sector) is put on + the FAT32 partition into reserved boot area, this data sector needs + to be at least 2 (third sector) because FAT32 use second sector for + its data. + choice prompt "Target select" optional diff --git a/arch/powerpc/cpu/mpc85xx/start.S b/arch/powerpc/cpu/mpc85xx/start.S index 796a58b929ec..50b23a97662c 100644 --- a/arch/powerpc/cpu/mpc85xx/start.S +++ b/arch/powerpc/cpu/mpc85xx/start.S @@ -56,6 +56,92 @@ GOT_ENTRY(__bss_start) END_GOT
+#ifdef CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR +#if !defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD) + +/* Maximal size of the image */ +#ifdef CONFIG_SPL_BUILD +#define MAX_IMAGE_SIZE (CONFIG_SPL_MAX_SIZE - (CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA * 512)) +#else +#define MAX_IMAGE_SIZE CONFIG_SYS_L2_SIZE +#endif + +#if defined(CONFIG_SPL_BUILD) && CONFIG_SPL_MAX_SIZE < CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA * 512 +#error "CONFIG_SPL_MAX_SIZE is too small for CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA" +#endif + +#if MAX_IMAGE_SIZE > CONFIG_SYS_L2_SIZE +#error "Image is too big" +#endif + +#define DIV_ROUND_UP(a, b) (((a) + (b) - 1) / (b)) +#define ALIGN(x, a) (DIV_ROUND_UP(x, a) * (a)) + +/* Definitions from C header file asm/immap_85xx.h */ +#define MPC85xx_L2CTL_L2E 0x80000000 +#define MPC85xx_L2CTL_L2SRAM_ENTIRE 0x00010000 +#define MPC85xx_L2ERRDIS_MBECC 0x00000008 +#define MPC85xx_L2ERRDIS_SBECC 0x00000004 + +/* Definitions from C header file fsl_esdhc.h */ +#define ESDHCCTL_SNOOP 0x00000040 + +/* + * QorIQ pre-PBL eSDHC boot sector: + * Instruct BootROM to configure L2 SRAM and eSDHC then load image + * from SD card into L2 SRAM and finally jump to image entry point. + */ + .section .bootsect, "a" + .globl bootsect + +bootsect: + b _start /* Make boot sector bootable, jump to entry point, but this is not needed at all */ + + .org 0x40 /* BOOT signature */ + .ascii "BOOT" + + .org 0x48 /* Number of bytes to be copied, must be multiple of block size (512) */ + .long ALIGN(MAX_IMAGE_SIZE, 512) + + .org 0x50 /* Source address from the beginning of boot sector in byte address format, must be multiple of block size (512) */ + .long (CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_START + CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA) * 512 + + .org 0x58 /* Target address in the system's local memory address space */ + .long CONFIG_SYS_MONITOR_BASE + CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA * 512 + + .org 0x60 /* Execution starting address */ + .long _start + + .org 0x68 /* Number of configuration data pairs */ + .long DIV_ROUND_UP(.Lconf_pair_end - .Lconf_pair_start, 8) + + .org 0x80 /* Start of configuration */ + .Lconf_pair_start: + + .long 0xff720100 /* Address: L2 memory-mapped SRAM base addr 0 */ + .long CONFIG_SYS_INIT_L2_ADDR + + .long 0xff720e44 /* Address: L2 cache error disable */ + .long MPC85xx_L2ERRDIS_MBECC | MPC85xx_L2ERRDIS_SBECC + + .long 0xff720000 /* Address: L2 configuration 0 */ + .long MPC85xx_L2CTL_L2E | MPC85xx_L2CTL_L2SRAM_ENTIRE + + .long 0xff72e40c /* Address: eSDHC DMA control */ + .long ESDHCCTL_SNOOP + + .long 0x40000001 /* Command: Delay in 8 CCB clocks */ + .long 256 + + .long 0x80000001 /* End of configuration */ + .Lconf_pair_end: + + .org 0x1b8 /* Reserved for MBR/DBR */ + .org 0x200 /* End of boot sector */ + +#endif +#endif + /* * e500 Startup -- after reset only the last 4KB of the effective * address space is mapped in the MMU L2 TLB1 Entry0. The .bootpg diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds b/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds index 6fd0da9f39b1..272e94a1f169 100644 --- a/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds +++ b/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds @@ -14,6 +14,11 @@ SECTIONS { . = IMAGE_TEXT_BASE; .text : { +/* Optional boot sector */ +#if defined(CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR) + KEEP(*(.bootsect)) + . = CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA * 512; +#endif /* For ifc, elbc, esdhc, espi, all need the SPL without section .resetvec */ #ifdef CONFIG_SYS_MPC85XX_NO_RESETVEC KEEP(*(.bootpg)) diff --git a/arch/powerpc/cpu/mpc85xx/u-boot.lds b/arch/powerpc/cpu/mpc85xx/u-boot.lds index 9f422810bb5d..4754aa1cf8e8 100644 --- a/arch/powerpc/cpu/mpc85xx/u-boot.lds +++ b/arch/powerpc/cpu/mpc85xx/u-boot.lds @@ -19,6 +19,11 @@ SECTIONS /* Read-only sections, merged into text segment: */ .text : { +#if defined(CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR) && !defined(CONFIG_SPL) + /* Optional boot sector */ + KEEP(arch/powerpc/cpu/mpc85xx/start.o (.bootsect)) + . = CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA * 512; +#endif #ifdef CONFIG_SYS_MPC85XX_NO_RESETVEC KEEP(arch/powerpc/cpu/mpc85xx/start.o (.bootpg)) #endif

-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Pali Rohár Sent: Tuesday, April 5, 2022 7:11 PM To: Priyanka Jain priyanka.jain@nxp.com; Qiang Zhao qiang.zhao@nxp.com; Shengzhou Liu shengzhou.liu@nxp.com; Alexander Graf agraf@csgraf.de; Bin Meng bmeng.cn@gmail.com; Wolfgang Denk wd@denx.de; Sinan Akman sinan@writeme.com Cc: u-boot@lists.denx.de Subject: [PATCH 1/2] powerpc: mpc85xx: Add support for generating QorIQ pre- PBL eSDHC boot sector
QorIQ U-Boot binary for SD card booting compiled during build process (either u- boot.bin or u-boot-with-spl.bin) cannot be directly loaded by QorIQ pre-PBL BootROM. Compiled U-Boot binary first needs to be processed by Freescale boot_format tool as described in doc/README.mpc85xx-sd-spi-boot
BootROM requires that image on SD card must contain special boot sector. Implement support for generating this special boot sector directly in U-Boot start code. Boot sector needs to be at the beginning of the image, so when compiling only proper U-Boot without SPL then it needs to be in proper U-Boot. When compiling SPL with proper U-Boot then it needs to be only in SPL.
Support can be enabled by a new config option FSL_PREPBL_ESDHC_BOOT_SECTOR. Via other two additional options FSL_PREPBL_ESDHC_BOOT_SECTOR_START and FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA it is possible to tune how final U-Boot image could be stored on the SD card.
Signed-off-by: Pali Rohár pali@kernel.org
Kindly rebase the series to master.
Regards Priyanka

On Monday 25 April 2022 05:25:34 Priyanka Jain (OSS) wrote:
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Pali Rohár Sent: Tuesday, April 5, 2022 7:11 PM To: Priyanka Jain priyanka.jain@nxp.com; Qiang Zhao qiang.zhao@nxp.com; Shengzhou Liu shengzhou.liu@nxp.com; Alexander Graf agraf@csgraf.de; Bin Meng bmeng.cn@gmail.com; Wolfgang Denk wd@denx.de; Sinan Akman sinan@writeme.com Cc: u-boot@lists.denx.de Subject: [PATCH 1/2] powerpc: mpc85xx: Add support for generating QorIQ pre- PBL eSDHC boot sector
QorIQ U-Boot binary for SD card booting compiled during build process (either u- boot.bin or u-boot-with-spl.bin) cannot be directly loaded by QorIQ pre-PBL BootROM. Compiled U-Boot binary first needs to be processed by Freescale boot_format tool as described in doc/README.mpc85xx-sd-spi-boot
BootROM requires that image on SD card must contain special boot sector. Implement support for generating this special boot sector directly in U-Boot start code. Boot sector needs to be at the beginning of the image, so when compiling only proper U-Boot without SPL then it needs to be in proper U-Boot. When compiling SPL with proper U-Boot then it needs to be only in SPL.
Support can be enabled by a new config option FSL_PREPBL_ESDHC_BOOT_SECTOR. Via other two additional options FSL_PREPBL_ESDHC_BOOT_SECTOR_START and FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA it is possible to tune how final U-Boot image could be stored on the SD card.
Signed-off-by: Pali Rohár pali@kernel.org
Kindly rebase the series to master.
Regards Priyanka
Hello! Both patches still applies cleanly on master, just they depend on another patch series (powerpc: mpc85xx: Fix and cleanup mpc85xx code) which I mentioned in cover letter and therefore needs V2 patch of "powerpc: mpc85xx: Set TEXT_BASE addresses to real base values" which I sent recently.

On Monday 25 April 2022 14:36:14 Pali Rohár wrote:
On Monday 25 April 2022 05:25:34 Priyanka Jain (OSS) wrote:
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Pali Rohár Sent: Tuesday, April 5, 2022 7:11 PM To: Priyanka Jain priyanka.jain@nxp.com; Qiang Zhao qiang.zhao@nxp.com; Shengzhou Liu shengzhou.liu@nxp.com; Alexander Graf agraf@csgraf.de; Bin Meng bmeng.cn@gmail.com; Wolfgang Denk wd@denx.de; Sinan Akman sinan@writeme.com Cc: u-boot@lists.denx.de Subject: [PATCH 1/2] powerpc: mpc85xx: Add support for generating QorIQ pre- PBL eSDHC boot sector
QorIQ U-Boot binary for SD card booting compiled during build process (either u- boot.bin or u-boot-with-spl.bin) cannot be directly loaded by QorIQ pre-PBL BootROM. Compiled U-Boot binary first needs to be processed by Freescale boot_format tool as described in doc/README.mpc85xx-sd-spi-boot
BootROM requires that image on SD card must contain special boot sector. Implement support for generating this special boot sector directly in U-Boot start code. Boot sector needs to be at the beginning of the image, so when compiling only proper U-Boot without SPL then it needs to be in proper U-Boot. When compiling SPL with proper U-Boot then it needs to be only in SPL.
Support can be enabled by a new config option FSL_PREPBL_ESDHC_BOOT_SECTOR. Via other two additional options FSL_PREPBL_ESDHC_BOOT_SECTOR_START and FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA it is possible to tune how final U-Boot image could be stored on the SD card.
Signed-off-by: Pali Rohár pali@kernel.org
Kindly rebase the series to master.
Regards Priyanka
Hello! Both patches still applies cleanly on master, just they depend on another patch series (powerpc: mpc85xx: Fix and cleanup mpc85xx code) which I mentioned in cover letter and therefore needs V2 patch of "powerpc: mpc85xx: Set TEXT_BASE addresses to real base values" which I sent recently.
I sent a new version v2 of this patch, see email: [PATCH v2] powerpc: mpc85xx: Add support for generating QorIQ pre-PBL eSDHC boot sector

On Wednesday 11 May 2022 22:59:28 Pali Rohár wrote:
On Monday 25 April 2022 14:36:14 Pali Rohár wrote:
On Monday 25 April 2022 05:25:34 Priyanka Jain (OSS) wrote:
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Pali Rohár Sent: Tuesday, April 5, 2022 7:11 PM To: Priyanka Jain priyanka.jain@nxp.com; Qiang Zhao qiang.zhao@nxp.com; Shengzhou Liu shengzhou.liu@nxp.com; Alexander Graf agraf@csgraf.de; Bin Meng bmeng.cn@gmail.com; Wolfgang Denk wd@denx.de; Sinan Akman sinan@writeme.com Cc: u-boot@lists.denx.de Subject: [PATCH 1/2] powerpc: mpc85xx: Add support for generating QorIQ pre- PBL eSDHC boot sector
QorIQ U-Boot binary for SD card booting compiled during build process (either u- boot.bin or u-boot-with-spl.bin) cannot be directly loaded by QorIQ pre-PBL BootROM. Compiled U-Boot binary first needs to be processed by Freescale boot_format tool as described in doc/README.mpc85xx-sd-spi-boot
BootROM requires that image on SD card must contain special boot sector. Implement support for generating this special boot sector directly in U-Boot start code. Boot sector needs to be at the beginning of the image, so when compiling only proper U-Boot without SPL then it needs to be in proper U-Boot. When compiling SPL with proper U-Boot then it needs to be only in SPL.
Support can be enabled by a new config option FSL_PREPBL_ESDHC_BOOT_SECTOR. Via other two additional options FSL_PREPBL_ESDHC_BOOT_SECTOR_START and FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA it is possible to tune how final U-Boot image could be stored on the SD card.
Signed-off-by: Pali Rohár pali@kernel.org
Kindly rebase the series to master.
Regards Priyanka
Hello! Both patches still applies cleanly on master, just they depend on another patch series (powerpc: mpc85xx: Fix and cleanup mpc85xx code) which I mentioned in cover letter and therefore needs V2 patch of "powerpc: mpc85xx: Set TEXT_BASE addresses to real base values" which I sent recently.
I sent a new version v2 of this patch, see email: [PATCH v2] powerpc: mpc85xx: Add support for generating QorIQ pre-PBL eSDHC boot sector
Priyanka: PING

On Wednesday 18 May 2022 12:53:20 Pali Rohár wrote:
On Wednesday 11 May 2022 22:59:28 Pali Rohár wrote:
On Monday 25 April 2022 14:36:14 Pali Rohár wrote:
On Monday 25 April 2022 05:25:34 Priyanka Jain (OSS) wrote:
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Pali Rohár Sent: Tuesday, April 5, 2022 7:11 PM To: Priyanka Jain priyanka.jain@nxp.com; Qiang Zhao qiang.zhao@nxp.com; Shengzhou Liu shengzhou.liu@nxp.com; Alexander Graf agraf@csgraf.de; Bin Meng bmeng.cn@gmail.com; Wolfgang Denk wd@denx.de; Sinan Akman sinan@writeme.com Cc: u-boot@lists.denx.de Subject: [PATCH 1/2] powerpc: mpc85xx: Add support for generating QorIQ pre- PBL eSDHC boot sector
QorIQ U-Boot binary for SD card booting compiled during build process (either u- boot.bin or u-boot-with-spl.bin) cannot be directly loaded by QorIQ pre-PBL BootROM. Compiled U-Boot binary first needs to be processed by Freescale boot_format tool as described in doc/README.mpc85xx-sd-spi-boot
BootROM requires that image on SD card must contain special boot sector. Implement support for generating this special boot sector directly in U-Boot start code. Boot sector needs to be at the beginning of the image, so when compiling only proper U-Boot without SPL then it needs to be in proper U-Boot. When compiling SPL with proper U-Boot then it needs to be only in SPL.
Support can be enabled by a new config option FSL_PREPBL_ESDHC_BOOT_SECTOR. Via other two additional options FSL_PREPBL_ESDHC_BOOT_SECTOR_START and FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA it is possible to tune how final U-Boot image could be stored on the SD card.
Signed-off-by: Pali Rohár pali@kernel.org
Kindly rebase the series to master.
Regards Priyanka
Hello! Both patches still applies cleanly on master, just they depend on another patch series (powerpc: mpc85xx: Fix and cleanup mpc85xx code) which I mentioned in cover letter and therefore needs V2 patch of "powerpc: mpc85xx: Set TEXT_BASE addresses to real base values" which I sent recently.
I sent a new version v2 of this patch, see email: [PATCH v2] powerpc: mpc85xx: Add support for generating QorIQ pre-PBL eSDHC boot sector
Priyanka: PING
PING?

On Saturday 04 June 2022 15:02:38 Pali Rohár wrote:
On Wednesday 18 May 2022 12:53:20 Pali Rohár wrote:
On Wednesday 11 May 2022 22:59:28 Pali Rohár wrote:
On Monday 25 April 2022 14:36:14 Pali Rohár wrote:
On Monday 25 April 2022 05:25:34 Priyanka Jain (OSS) wrote:
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Pali Rohár Sent: Tuesday, April 5, 2022 7:11 PM To: Priyanka Jain priyanka.jain@nxp.com; Qiang Zhao qiang.zhao@nxp.com; Shengzhou Liu shengzhou.liu@nxp.com; Alexander Graf agraf@csgraf.de; Bin Meng bmeng.cn@gmail.com; Wolfgang Denk wd@denx.de; Sinan Akman sinan@writeme.com Cc: u-boot@lists.denx.de Subject: [PATCH 1/2] powerpc: mpc85xx: Add support for generating QorIQ pre- PBL eSDHC boot sector
QorIQ U-Boot binary for SD card booting compiled during build process (either u- boot.bin or u-boot-with-spl.bin) cannot be directly loaded by QorIQ pre-PBL BootROM. Compiled U-Boot binary first needs to be processed by Freescale boot_format tool as described in doc/README.mpc85xx-sd-spi-boot
BootROM requires that image on SD card must contain special boot sector. Implement support for generating this special boot sector directly in U-Boot start code. Boot sector needs to be at the beginning of the image, so when compiling only proper U-Boot without SPL then it needs to be in proper U-Boot. When compiling SPL with proper U-Boot then it needs to be only in SPL.
Support can be enabled by a new config option FSL_PREPBL_ESDHC_BOOT_SECTOR. Via other two additional options FSL_PREPBL_ESDHC_BOOT_SECTOR_START and FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA it is possible to tune how final U-Boot image could be stored on the SD card.
Signed-off-by: Pali Rohár pali@kernel.org
Kindly rebase the series to master.
Regards Priyanka
Hello! Both patches still applies cleanly on master, just they depend on another patch series (powerpc: mpc85xx: Fix and cleanup mpc85xx code) which I mentioned in cover letter and therefore needs V2 patch of "powerpc: mpc85xx: Set TEXT_BASE addresses to real base values" which I sent recently.
I sent a new version v2 of this patch, see email: [PATCH v2] powerpc: mpc85xx: Add support for generating QorIQ pre-PBL eSDHC boot sector
Priyanka: PING
PING?
PING?

On Thursday 23 June 2022 19:17:55 Pali Rohár wrote:
On Saturday 04 June 2022 15:02:38 Pali Rohár wrote:
On Wednesday 18 May 2022 12:53:20 Pali Rohár wrote:
On Wednesday 11 May 2022 22:59:28 Pali Rohár wrote:
On Monday 25 April 2022 14:36:14 Pali Rohár wrote:
On Monday 25 April 2022 05:25:34 Priyanka Jain (OSS) wrote:
>-----Original Message----- >From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Pali Rohár >Sent: Tuesday, April 5, 2022 7:11 PM >To: Priyanka Jain priyanka.jain@nxp.com; Qiang Zhao qiang.zhao@nxp.com; >Shengzhou Liu shengzhou.liu@nxp.com; Alexander Graf agraf@csgraf.de; >Bin Meng bmeng.cn@gmail.com; Wolfgang Denk wd@denx.de; Sinan >Akman sinan@writeme.com >Cc: u-boot@lists.denx.de >Subject: [PATCH 1/2] powerpc: mpc85xx: Add support for generating QorIQ pre- >PBL eSDHC boot sector > >QorIQ U-Boot binary for SD card booting compiled during build process (either u- >boot.bin or u-boot-with-spl.bin) cannot be directly loaded by QorIQ pre-PBL >BootROM. Compiled U-Boot binary first needs to be processed by Freescale >boot_format tool as described in doc/README.mpc85xx-sd-spi-boot > >BootROM requires that image on SD card must contain special boot sector. >Implement support for generating this special boot sector directly in U-Boot start >code. Boot sector needs to be at the beginning of the image, so when compiling >only proper U-Boot without SPL then it needs to be in proper U-Boot. When >compiling SPL with proper U-Boot then it needs to be only in SPL. > >Support can be enabled by a new config option >FSL_PREPBL_ESDHC_BOOT_SECTOR. >Via other two additional options FSL_PREPBL_ESDHC_BOOT_SECTOR_START and >FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA it is possible to tune how final U-Boot >image could be stored on the SD card. > >Signed-off-by: Pali Rohár pali@kernel.org >---
Kindly rebase the series to master.
Regards Priyanka
Hello! Both patches still applies cleanly on master, just they depend on another patch series (powerpc: mpc85xx: Fix and cleanup mpc85xx code) which I mentioned in cover letter and therefore needs V2 patch of "powerpc: mpc85xx: Set TEXT_BASE addresses to real base values" which I sent recently.
I sent a new version v2 of this patch, see email: [PATCH v2] powerpc: mpc85xx: Add support for generating QorIQ pre-PBL eSDHC boot sector
Priyanka: PING
PING?
PING?
PING?
V2 now and still applies cleanly on top of next branch https://patchwork.ozlabs.org/project/uboot/patch/20220511185731.3000-1-pali@...
And why v2 has "Changes Requested" state in above patchwork?
I do not see any comment for v2 on mailing list nor on patchwork. So what is requested from me?

On Tue, Jun 28, 2022 at 08:07:48PM +0200, Pali Rohár wrote:
On Thursday 23 June 2022 19:17:55 Pali Rohár wrote:
On Saturday 04 June 2022 15:02:38 Pali Rohár wrote:
On Wednesday 18 May 2022 12:53:20 Pali Rohár wrote:
On Wednesday 11 May 2022 22:59:28 Pali Rohár wrote:
On Monday 25 April 2022 14:36:14 Pali Rohár wrote:
On Monday 25 April 2022 05:25:34 Priyanka Jain (OSS) wrote: > >-----Original Message----- > >From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Pali Rohár > >Sent: Tuesday, April 5, 2022 7:11 PM > >To: Priyanka Jain priyanka.jain@nxp.com; Qiang Zhao qiang.zhao@nxp.com; > >Shengzhou Liu shengzhou.liu@nxp.com; Alexander Graf agraf@csgraf.de; > >Bin Meng bmeng.cn@gmail.com; Wolfgang Denk wd@denx.de; Sinan > >Akman sinan@writeme.com > >Cc: u-boot@lists.denx.de > >Subject: [PATCH 1/2] powerpc: mpc85xx: Add support for generating QorIQ pre- > >PBL eSDHC boot sector > > > >QorIQ U-Boot binary for SD card booting compiled during build process (either u- > >boot.bin or u-boot-with-spl.bin) cannot be directly loaded by QorIQ pre-PBL > >BootROM. Compiled U-Boot binary first needs to be processed by Freescale > >boot_format tool as described in doc/README.mpc85xx-sd-spi-boot > > > >BootROM requires that image on SD card must contain special boot sector. > >Implement support for generating this special boot sector directly in U-Boot start > >code. Boot sector needs to be at the beginning of the image, so when compiling > >only proper U-Boot without SPL then it needs to be in proper U-Boot. When > >compiling SPL with proper U-Boot then it needs to be only in SPL. > > > >Support can be enabled by a new config option > >FSL_PREPBL_ESDHC_BOOT_SECTOR. > >Via other two additional options FSL_PREPBL_ESDHC_BOOT_SECTOR_START and > >FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA it is possible to tune how final U-Boot > >image could be stored on the SD card. > > > >Signed-off-by: Pali Rohár pali@kernel.org > >--- > > Kindly rebase the series to master. > > Regards > Priyanka
Hello! Both patches still applies cleanly on master, just they depend on another patch series (powerpc: mpc85xx: Fix and cleanup mpc85xx code) which I mentioned in cover letter and therefore needs V2 patch of "powerpc: mpc85xx: Set TEXT_BASE addresses to real base values" which I sent recently.
I sent a new version v2 of this patch, see email: [PATCH v2] powerpc: mpc85xx: Add support for generating QorIQ pre-PBL eSDHC boot sector
Priyanka: PING
PING?
PING?
PING?
V2 now and still applies cleanly on top of next branch https://patchwork.ozlabs.org/project/uboot/patch/20220511185731.3000-1-pali@...
And why v2 has "Changes Requested" state in above patchwork?
Probably my mistake, put it back to new.

On Tuesday 28 June 2022 20:07:48 Pali Rohár wrote:
On Thursday 23 June 2022 19:17:55 Pali Rohár wrote:
On Saturday 04 June 2022 15:02:38 Pali Rohár wrote:
On Wednesday 18 May 2022 12:53:20 Pali Rohár wrote:
On Wednesday 11 May 2022 22:59:28 Pali Rohár wrote:
On Monday 25 April 2022 14:36:14 Pali Rohár wrote:
On Monday 25 April 2022 05:25:34 Priyanka Jain (OSS) wrote: > >-----Original Message----- > >From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Pali Rohár > >Sent: Tuesday, April 5, 2022 7:11 PM > >To: Priyanka Jain priyanka.jain@nxp.com; Qiang Zhao qiang.zhao@nxp.com; > >Shengzhou Liu shengzhou.liu@nxp.com; Alexander Graf agraf@csgraf.de; > >Bin Meng bmeng.cn@gmail.com; Wolfgang Denk wd@denx.de; Sinan > >Akman sinan@writeme.com > >Cc: u-boot@lists.denx.de > >Subject: [PATCH 1/2] powerpc: mpc85xx: Add support for generating QorIQ pre- > >PBL eSDHC boot sector > > > >QorIQ U-Boot binary for SD card booting compiled during build process (either u- > >boot.bin or u-boot-with-spl.bin) cannot be directly loaded by QorIQ pre-PBL > >BootROM. Compiled U-Boot binary first needs to be processed by Freescale > >boot_format tool as described in doc/README.mpc85xx-sd-spi-boot > > > >BootROM requires that image on SD card must contain special boot sector. > >Implement support for generating this special boot sector directly in U-Boot start > >code. Boot sector needs to be at the beginning of the image, so when compiling > >only proper U-Boot without SPL then it needs to be in proper U-Boot. When > >compiling SPL with proper U-Boot then it needs to be only in SPL. > > > >Support can be enabled by a new config option > >FSL_PREPBL_ESDHC_BOOT_SECTOR. > >Via other two additional options FSL_PREPBL_ESDHC_BOOT_SECTOR_START and > >FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA it is possible to tune how final U-Boot > >image could be stored on the SD card. > > > >Signed-off-by: Pali Rohár pali@kernel.org > >--- > > Kindly rebase the series to master. > > Regards > Priyanka
Hello! Both patches still applies cleanly on master, just they depend on another patch series (powerpc: mpc85xx: Fix and cleanup mpc85xx code) which I mentioned in cover letter and therefore needs V2 patch of "powerpc: mpc85xx: Set TEXT_BASE addresses to real base values" which I sent recently.
I sent a new version v2 of this patch, see email: [PATCH v2] powerpc: mpc85xx: Add support for generating QorIQ pre-PBL eSDHC boot sector
Priyanka: PING
PING?
PING?
PING?
V2 now and still applies cleanly on top of next branch https://patchwork.ozlabs.org/project/uboot/patch/20220511185731.3000-1-pali@...
PING?
And why v2 has "Changes Requested" state in above patchwork?
I do not see any comment for v2 on mailing list nor on patchwork. So what is requested from me?

On Thursday 14 July 2022 01:49:59 Pali Rohár wrote:
On Tuesday 28 June 2022 20:07:48 Pali Rohár wrote:
On Thursday 23 June 2022 19:17:55 Pali Rohár wrote:
On Saturday 04 June 2022 15:02:38 Pali Rohár wrote:
On Wednesday 18 May 2022 12:53:20 Pali Rohár wrote:
On Wednesday 11 May 2022 22:59:28 Pali Rohár wrote:
On Monday 25 April 2022 14:36:14 Pali Rohár wrote: > On Monday 25 April 2022 05:25:34 Priyanka Jain (OSS) wrote: > > >-----Original Message----- > > >From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Pali Rohár > > >Sent: Tuesday, April 5, 2022 7:11 PM > > >To: Priyanka Jain priyanka.jain@nxp.com; Qiang Zhao qiang.zhao@nxp.com; > > >Shengzhou Liu shengzhou.liu@nxp.com; Alexander Graf agraf@csgraf.de; > > >Bin Meng bmeng.cn@gmail.com; Wolfgang Denk wd@denx.de; Sinan > > >Akman sinan@writeme.com > > >Cc: u-boot@lists.denx.de > > >Subject: [PATCH 1/2] powerpc: mpc85xx: Add support for generating QorIQ pre- > > >PBL eSDHC boot sector > > > > > >QorIQ U-Boot binary for SD card booting compiled during build process (either u- > > >boot.bin or u-boot-with-spl.bin) cannot be directly loaded by QorIQ pre-PBL > > >BootROM. Compiled U-Boot binary first needs to be processed by Freescale > > >boot_format tool as described in doc/README.mpc85xx-sd-spi-boot > > > > > >BootROM requires that image on SD card must contain special boot sector. > > >Implement support for generating this special boot sector directly in U-Boot start > > >code. Boot sector needs to be at the beginning of the image, so when compiling > > >only proper U-Boot without SPL then it needs to be in proper U-Boot. When > > >compiling SPL with proper U-Boot then it needs to be only in SPL. > > > > > >Support can be enabled by a new config option > > >FSL_PREPBL_ESDHC_BOOT_SECTOR. > > >Via other two additional options FSL_PREPBL_ESDHC_BOOT_SECTOR_START and > > >FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA it is possible to tune how final U-Boot > > >image could be stored on the SD card. > > > > > >Signed-off-by: Pali Rohár pali@kernel.org > > >--- > > > > Kindly rebase the series to master. > > > > Regards > > Priyanka > > Hello! Both patches still applies cleanly on master, just they depend > on another patch series (powerpc: mpc85xx: Fix and cleanup mpc85xx code) > which I mentioned in cover letter and therefore needs V2 patch of > "powerpc: mpc85xx: Set TEXT_BASE addresses to real base values" which I > sent recently.
I sent a new version v2 of this patch, see email: [PATCH v2] powerpc: mpc85xx: Add support for generating QorIQ pre-PBL eSDHC boot sector
Priyanka: PING
PING?
PING?
PING?
V2 now and still applies cleanly on top of next branch https://patchwork.ozlabs.org/project/uboot/patch/20220511185731.3000-1-pali@...
PING?
PING?
And why v2 has "Changes Requested" state in above patchwork?
I do not see any comment for v2 on mailing list nor on patchwork. So what is requested from me?

QorIQ U-Boot binary for SD card booting compiled during build process (either u-boot.bin or u-boot-with-spl.bin) cannot be directly loaded by QorIQ pre-PBL BootROM. Compiled U-Boot binary first needs to be processed by Freescale boot_format tool as described in doc/README.mpc85xx-sd-spi-boot
BootROM requires that image on SD card must contain special boot sector. Implement support for generating this special boot sector directly in U-Boot start code. Boot sector needs to be at the beginning of the image, so when compiling only proper U-Boot without SPL then it needs to be in proper U-Boot. When compiling SPL with proper U-Boot then it needs to be only in SPL.
Support can be enabled by a new config option FSL_PREPBL_ESDHC_BOOT_SECTOR. Via other two additional options FSL_PREPBL_ESDHC_BOOT_SECTOR_START and FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA it is possible to tune how final U-Boot image could be stored on the SD card.
Signed-off-by: Pali Rohár pali@kernel.org
--- Changes in v2: * Replace addresses in start.S by named constants * Move bootsect from .text section to separate data section .bootsect which would be before TEXT_BASE. This boot sector is not used by the U-Boot nor SPL and it even is not loaded by BootROM into larget area, so it does not have to occupe data in TEXT_BASE. With this change U-Boot and SPL stay on the same addresses as before this change. --- arch/powerpc/cpu/mpc85xx/Kconfig | 53 ++++++++++++++ arch/powerpc/cpu/mpc85xx/start.S | 94 +++++++++++++++++++++++++ arch/powerpc/cpu/mpc85xx/u-boot-spl.lds | 8 +++ arch/powerpc/cpu/mpc85xx/u-boot.lds | 8 +++ 4 files changed, 163 insertions(+)
diff --git a/arch/powerpc/cpu/mpc85xx/Kconfig b/arch/powerpc/cpu/mpc85xx/Kconfig index c308447d493a..6f8b7593d250 100644 --- a/arch/powerpc/cpu/mpc85xx/Kconfig +++ b/arch/powerpc/cpu/mpc85xx/Kconfig @@ -12,6 +12,59 @@ config CMD_ERRATA This enables the 'errata' command which displays a list of errata work-arounds which are enabled for the current board.
+config FSL_PREPBL_ESDHC_BOOT_SECTOR + bool "Generate QorIQ pre-PBL eSDHC boot sector" + depends on MPC85xx + depends on SYS_EXTRA_OPTIONS = SDCARD + help + With this option final image would have prepended QorIQ pre-PBL eSDHC + boot sector suitable for SD card images. This boot sector instruct + BootROM to configure L2 SRAM and eSDHC then load image from SD card + into L2 SRAM and finally jump to image entry point. + + This is alternative to Freescale boot_format tool, but works only for + SD card images and only for L2 SRAM booting. U-Boot images generated + with this option should not passed to boot_format tool. + + For other configuration like booting from eSPI or configuring SDRAM + please use Freescale boot_format tool without this option. See file + doc/README.mpc85xx-sd-spi-boot + +config FSL_PREPBL_ESDHC_BOOT_SECTOR_START + int "QorIQ pre-PBL eSDHC boot sector start offset" + depends on FSL_PREPBL_ESDHC_BOOT_SECTOR + range 0 23 + default 0 + help + QorIQ pre-PBL eSDHC boot sector may be located on one of the first + 24 SD card sectors. Select SD card sector on which final U-Boot + image (with this boot sector) would be installed. + + By default first SD card sector (0) is used. But this may be changed + to allow installing U-Boot image on some partition (with fixed start + sector). + + Please note that any sector on SD card prior this boot sector must + not contain ASCII "BOOT" bytes at sector offset 0x40. + +config FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA + int "Relative data sector for QorIQ pre-PBL eSDHC boot sector" + depends on FSL_PREPBL_ESDHC_BOOT_SECTOR + default 1 + range 1 8388607 + help + Select data sector from the beginning of QorIQ pre-PBL eSDHC boot + sector on which would be stored raw U-Boot image. + + By default is it second sector (1) which is the first available free + sector (on the first sector is stored boot sector). It can be any + sector number which offset in bytes can be expressed by 32-bit number. + + In case this final U-Boot image (with this boot sector) is put on + the FAT32 partition into reserved boot area, this data sector needs + to be at least 2 (third sector) because FAT32 use second sector for + its data. + choice prompt "Target select" optional diff --git a/arch/powerpc/cpu/mpc85xx/start.S b/arch/powerpc/cpu/mpc85xx/start.S index 796a58b929ec..3006d569b387 100644 --- a/arch/powerpc/cpu/mpc85xx/start.S +++ b/arch/powerpc/cpu/mpc85xx/start.S @@ -56,6 +56,100 @@ GOT_ENTRY(__bss_start) END_GOT
+#ifdef CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR +#if !defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD) + +/* Maximal size of the image */ +#ifdef CONFIG_SPL_BUILD +#define MAX_IMAGE_SIZE (CONFIG_SPL_MAX_SIZE - (CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA * 512)) +#else +#define MAX_IMAGE_SIZE CONFIG_SYS_L2_SIZE +#endif + +#if defined(CONFIG_SPL_BUILD) && CONFIG_SPL_MAX_SIZE < CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA * 512 +#error "CONFIG_SPL_MAX_SIZE is too small for CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA" +#endif + +#if MAX_IMAGE_SIZE > CONFIG_SYS_L2_SIZE +#error "Image is too big" +#endif + +#define DIV_ROUND_UP(a, b) (((a) + (b) - 1) / (b)) +#define ALIGN(x, a) (DIV_ROUND_UP(x, a) * (a)) + +/* Definitions from C header file asm/immap_85xx.h */ + +#define CONFIG_SYS_MPC85xx_L2_OFFSET 0x20000 + +#define MPC85xx_L2CTL 0x000 +#define MPC85xx_L2CTL_L2E 0x80000000 +#define MPC85xx_L2CTL_L2SRAM_ENTIRE 0x00010000 + +#define MPC85xx_L2SRBAR0 0x100 + +#define MPC85xx_L2ERRDIS 0xe44 +#define MPC85xx_L2ERRDIS_MBECC 0x00000008 +#define MPC85xx_L2ERRDIS_SBECC 0x00000004 + +/* Definitions from C header file fsl_esdhc.h */ + +#define ESDHCCTL 0x0002e40c +#define ESDHCCTL_SNOOP 0x00000040 + +/* + * QorIQ pre-PBL eSDHC boot sector: + * Instruct BootROM to configure L2 SRAM and eSDHC then load image + * from SD card into L2 SRAM and finally jump to image entry point. + */ + .section .bootsect, "a" + .globl bootsect + +bootsect: + .org 0x40 /* BOOT signature */ + .ascii "BOOT" + + .org 0x48 /* Number of bytes to be copied, must be multiple of block size (512) */ + .long ALIGN(MAX_IMAGE_SIZE, 512) + + .org 0x50 /* Source address from the beginning of boot sector in byte address format, must be multiple of block size (512) */ + .long (CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_START + CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA) * 512 + + .org 0x58 /* Target address in the system's local memory address space */ + .long CONFIG_SYS_MONITOR_BASE + + .org 0x60 /* Execution starting address */ + .long _start + + .org 0x68 /* Number of configuration data pairs */ + .long DIV_ROUND_UP(.Lconf_pair_end - .Lconf_pair_start, 8) + + .org 0x80 /* Start of configuration */ + .Lconf_pair_start: + + .long CONFIG_SYS_CCSRBAR_DEFAULT + CONFIG_SYS_MPC85xx_L2_OFFSET + MPC85xx_L2SRBAR0 /* Address: L2 memory-mapped SRAM base addr 0 */ + .long CONFIG_SYS_INIT_L2_ADDR + + .long CONFIG_SYS_CCSRBAR_DEFAULT + CONFIG_SYS_MPC85xx_L2_OFFSET + MPC85xx_L2ERRDIS /* Address: L2 cache error disable */ + .long MPC85xx_L2ERRDIS_MBECC | MPC85xx_L2ERRDIS_SBECC + + .long CONFIG_SYS_CCSRBAR_DEFAULT + CONFIG_SYS_MPC85xx_L2_OFFSET + MPC85xx_L2CTL /* Address: L2 configuration 0 */ + .long MPC85xx_L2CTL_L2E | MPC85xx_L2CTL_L2SRAM_ENTIRE + + .long CONFIG_SYS_CCSRBAR_DEFAULT + ESDHCCTL /* Address: eSDHC DMA control */ + .long ESDHCCTL_SNOOP + + .long 0x40000001 /* Command: Delay in 8 CCB clocks */ + .long 256 + + .long 0x80000001 /* End of configuration */ + .Lconf_pair_end: + + .org 0x1b8 /* Reserved for MBR/DBR */ + .org 0x200 /* End of boot sector */ + +#endif +#endif + /* * e500 Startup -- after reset only the last 4KB of the effective * address space is mapped in the MMU L2 TLB1 Entry0. The .bootpg diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds b/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds index 6fd0da9f39b1..6b3c84a8d5c4 100644 --- a/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds +++ b/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds @@ -12,6 +12,14 @@ OUTPUT_ARCH(powerpc)
SECTIONS { +/* Optional boot sector */ +#if defined(CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR) + .bootsect IMAGE_TEXT_BASE - CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA * 512 : { + KEEP(*(.bootsect)) + . = CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA * 512; + } +#endif + . = IMAGE_TEXT_BASE; .text : { /* For ifc, elbc, esdhc, espi, all need the SPL without section .resetvec */ diff --git a/arch/powerpc/cpu/mpc85xx/u-boot.lds b/arch/powerpc/cpu/mpc85xx/u-boot.lds index 9f422810bb5d..cb32aeefdc79 100644 --- a/arch/powerpc/cpu/mpc85xx/u-boot.lds +++ b/arch/powerpc/cpu/mpc85xx/u-boot.lds @@ -16,6 +16,14 @@ ENTRY(_start)
SECTIONS { + /* Optional boot sector */ +#if defined(CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR) && !defined(CONFIG_SPL) + .bootsect CONFIG_SYS_TEXT_BASE - CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA * 512 : { + KEEP(arch/powerpc/cpu/mpc85xx/start.o (.bootsect)) + . = CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA * 512; + } +#endif + /* Read-only sections, merged into text segment: */ .text : {

Correctly calculate offsets between SPL and proper U-Boot when new config option CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR for generating eSDHC boot sector is enabled. Otherwise SPL would not be able to boot proper U-Boot.
Signed-off-by: Pali Rohár pali@kernel.org --- include/configs/p1_p2_rdb_pc.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/include/configs/p1_p2_rdb_pc.h b/include/configs/p1_p2_rdb_pc.h index 0d1cc218fac0..370772053e63 100644 --- a/include/configs/p1_p2_rdb_pc.h +++ b/include/configs/p1_p2_rdb_pc.h @@ -73,11 +73,16 @@ #define CONFIG_SPL_FLUSH_IMAGE #define CONFIG_SPL_TARGET "u-boot-with-spl.bin" #define CONFIG_SPL_PAD_TO 0x20000 +#ifdef CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR +#define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_PAD_TO - CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA*512) +#define CONFIG_SYS_MMC_U_BOOT_OFFS (CONFIG_SPL_PAD_TO - CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA*512) +#else #define CONFIG_SPL_MAX_SIZE CONFIG_SPL_PAD_TO +#define CONFIG_SYS_MMC_U_BOOT_OFFS CONFIG_SPL_PAD_TO +#endif #define CONFIG_SYS_MMC_U_BOOT_SIZE (768 << 10) #define CONFIG_SYS_MMC_U_BOOT_DST CONFIG_SYS_TEXT_BASE #define CONFIG_SYS_MMC_U_BOOT_START CONFIG_SYS_TEXT_BASE -#define CONFIG_SYS_MMC_U_BOOT_OFFS CONFIG_SPL_PAD_TO #define CONFIG_SYS_MPC85XX_NO_RESETVEC #ifdef CONFIG_SPL_BUILD #define CONFIG_SPL_COMMON_INIT_DDR

Correctly calculate offsets between SPL and proper U-Boot when new config option CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR for generating eSDHC boot sector is enabled. Otherwise SPL would not be able to boot proper U-Boot.
Signed-off-by: Pali Rohár pali@kernel.org --- Changes in v2: * rebase on top of master branch, commit 85eb5ac6efee878f3c2ab3269286250e187ca10c --- include/configs/p1_p2_rdb_pc.h | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/include/configs/p1_p2_rdb_pc.h b/include/configs/p1_p2_rdb_pc.h index ba04029df8d8..d2787136681b 100644 --- a/include/configs/p1_p2_rdb_pc.h +++ b/include/configs/p1_p2_rdb_pc.h @@ -80,7 +80,11 @@ #define CONFIG_SYS_MMC_U_BOOT_SIZE (768 << 10) #define CONFIG_SYS_MMC_U_BOOT_DST CONFIG_SYS_TEXT_BASE #define CONFIG_SYS_MMC_U_BOOT_START CONFIG_SYS_TEXT_BASE +#ifdef CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR +#define CONFIG_SYS_MMC_U_BOOT_OFFS (CONFIG_SPL_PAD_TO - CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA*512) +#else #define CONFIG_SYS_MMC_U_BOOT_OFFS CONFIG_SPL_PAD_TO +#endif #elif defined(CONFIG_SPIFLASH) #define CONFIG_SYS_SPI_FLASH_U_BOOT_SIZE (768 << 10) #define CONFIG_SYS_SPI_FLASH_U_BOOT_DST CONFIG_SYS_TEXT_BASE

On Monday 01 August 2022 14:50:12 Pali Rohár wrote:
Correctly calculate offsets between SPL and proper U-Boot when new config option CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR for generating eSDHC boot sector is enabled. Otherwise SPL would not be able to boot proper U-Boot.
Signed-off-by: Pali Rohár pali@kernel.org
Changes in v2:
- rebase on top of master branch, commit 85eb5ac6efee878f3c2ab3269286250e187ca10c
PING? Are we going to wait until this patch does not apply anymore again??
include/configs/p1_p2_rdb_pc.h | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/include/configs/p1_p2_rdb_pc.h b/include/configs/p1_p2_rdb_pc.h index ba04029df8d8..d2787136681b 100644 --- a/include/configs/p1_p2_rdb_pc.h +++ b/include/configs/p1_p2_rdb_pc.h @@ -80,7 +80,11 @@ #define CONFIG_SYS_MMC_U_BOOT_SIZE (768 << 10) #define CONFIG_SYS_MMC_U_BOOT_DST CONFIG_SYS_TEXT_BASE #define CONFIG_SYS_MMC_U_BOOT_START CONFIG_SYS_TEXT_BASE +#ifdef CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR +#define CONFIG_SYS_MMC_U_BOOT_OFFS (CONFIG_SPL_PAD_TO - CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA*512) +#else #define CONFIG_SYS_MMC_U_BOOT_OFFS CONFIG_SPL_PAD_TO +#endif #elif defined(CONFIG_SPIFLASH) #define CONFIG_SYS_SPI_FLASH_U_BOOT_SIZE (768 << 10)
#define CONFIG_SYS_SPI_FLASH_U_BOOT_DST CONFIG_SYS_TEXT_BASE
2.20.1

On 8/18/2022 5:03 AM, Pali Rohár wrote:
On Monday 01 August 2022 14:50:12 Pali Rohár wrote:
Correctly calculate offsets between SPL and proper U-Boot when new config option CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR for generating eSDHC boot sector is enabled. Otherwise SPL would not be able to boot proper U-Boot.
Signed-off-by: Pali Rohár pali@kernel.org
Changes in v2:
- rebase on top of master branch, commit 85eb5ac6efee878f3c2ab3269286250e187ca10c
PING? Are we going to wait until this patch does not apply anymore again??
Applied, sorry for late.
Thanks, Peng.
include/configs/p1_p2_rdb_pc.h | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/include/configs/p1_p2_rdb_pc.h b/include/configs/p1_p2_rdb_pc.h index ba04029df8d8..d2787136681b 100644 --- a/include/configs/p1_p2_rdb_pc.h +++ b/include/configs/p1_p2_rdb_pc.h @@ -80,7 +80,11 @@ #define CONFIG_SYS_MMC_U_BOOT_SIZE (768 << 10) #define CONFIG_SYS_MMC_U_BOOT_DST CONFIG_SYS_TEXT_BASE #define CONFIG_SYS_MMC_U_BOOT_START CONFIG_SYS_TEXT_BASE +#ifdef CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR +#define CONFIG_SYS_MMC_U_BOOT_OFFS (CONFIG_SPL_PAD_TO - CONFIG_FSL_PREPBL_ESDHC_BOOT_SECTOR_DATA*512) +#else #define CONFIG_SYS_MMC_U_BOOT_OFFS CONFIG_SPL_PAD_TO +#endif #elif defined(CONFIG_SPIFLASH) #define CONFIG_SYS_SPI_FLASH_U_BOOT_SIZE (768 << 10)
#define CONFIG_SYS_SPI_FLASH_U_BOOT_DST CONFIG_SYS_TEXT_BASE
2.20.1
participants (4)
-
Pali Rohár
-
Peng Fan
-
Priyanka Jain (OSS)
-
Tom Rini