[U-Boot] [PATCH v3] spl: arm: Make sure to include u_boot_list_*_part_disk_*

Starting with 96e5b03 we use a linker list for partition table information. However since we use this in SPL we need to make sure that the SPL linker scripts include these as well. While doing this, it's best to simply include all linker lists to future proof ourselves.
Cc: Andreas Bießmann andreas.devel@googlemail.com Cc: Michal Simek michal.simek@xilinx.com Reviewed-by: Simon Glass sjg@chromium.org Reported-by: Nishanth Menon nm@ti.com Tested-by: Nishanth Menon nm@ti.com Signed-off-by: Tom Rini trini@konsulko.com --- Changes in v3: - Rework things again, after some testing we don't need to worry about including empty lists, the linker doesn't waste binary space. Also update the at91 linker lists and build time confirm that they were also broken by the opening commit. Changes in v2: - Drop the CONFIG_SPL_DM tests for zynq as DM is the only case for zynq and while in here drop a now useless line. --- arch/arm/cpu/armv7/omap-common/u-boot-spl.lds | 2 +- arch/arm/cpu/u-boot-spl.lds | 9 +-------- arch/arm/mach-at91/arm926ejs/u-boot-spl.lds | 3 +++ arch/arm/mach-at91/armv7/u-boot-spl.lds | 3 +++ arch/arm/mach-zynq/u-boot-spl.lds | 7 +------ 5 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds index ccd0c83..8fec715 100644 --- a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds +++ b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds @@ -35,7 +35,7 @@ SECTIONS
. = ALIGN(4); .u_boot_list : { - KEEP(*(SORT(.u_boot_list*_i2c_*))); + KEEP(*(SORT(.u_boot_list*))); } >.sram
. = ALIGN(4); diff --git a/arch/arm/cpu/u-boot-spl.lds b/arch/arm/cpu/u-boot-spl.lds index c5b4f7c..068163b 100644 --- a/arch/arm/cpu/u-boot-spl.lds +++ b/arch/arm/cpu/u-boot-spl.lds @@ -32,15 +32,8 @@ SECTIONS }
. = ALIGN(4); -#ifdef CONFIG_SPL_DM .u_boot_list : { - KEEP(*(SORT(.u_boot_list_*_driver_*))); - KEEP(*(SORT(.u_boot_list_*_uclass_*))); - } -#endif - . = .; - .u_boot_list : { - KEEP(*(SORT(.u_boot_list*_i2c_*))); + KEEP(*(SORT(.u_boot_list*))); }
. = ALIGN(4); diff --git a/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds b/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds index acadd1d..1b04206 100644 --- a/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds +++ b/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds @@ -30,6 +30,9 @@ SECTIONS .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
. = ALIGN(4); + .u_boot_list : { KEEP(*(SORT(.u_boot_list*))) } > .sram + + . = ALIGN(4); __image_copy_end = .;
.end : diff --git a/arch/arm/mach-at91/armv7/u-boot-spl.lds b/arch/arm/mach-at91/armv7/u-boot-spl.lds index eccca43..c667c55 100644 --- a/arch/arm/mach-at91/armv7/u-boot-spl.lds +++ b/arch/arm/mach-at91/armv7/u-boot-spl.lds @@ -37,6 +37,9 @@ SECTIONS .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
. = ALIGN(4); + .u_boot_list : { KEEP(*(SORT(.u_boot_list*))) } > .sram + + . = ALIGN(4); __image_copy_end = .;
.end : diff --git a/arch/arm/mach-zynq/u-boot-spl.lds b/arch/arm/mach-zynq/u-boot-spl.lds index ecdf6a0..9a59164 100644 --- a/arch/arm/mach-zynq/u-boot-spl.lds +++ b/arch/arm/mach-zynq/u-boot-spl.lds @@ -38,16 +38,11 @@ SECTIONS } > .sram
. = ALIGN(4); -#ifdef CONFIG_SPL_DM .u_boot_list : { - KEEP(*(SORT(.u_boot_list_*_driver_*))); - KEEP(*(SORT(.u_boot_list_*_uclass_*))); + KEEP(*(SORT(.u_boot_list*))); } > .sram
. = ALIGN(4); -#endif - - . = .;
_image_binary_end = .;

On Tue, Mar 15, 2016 at 09:05:55PM -0400, Tom Rini wrote:
Starting with 96e5b03 we use a linker list for partition table information. However since we use this in SPL we need to make sure that the SPL linker scripts include these as well. While doing this, it's best to simply include all linker lists to future proof ourselves.
... and yes, I need to update the commit subject, oops.

On 16.3.2016 02:05, Tom Rini wrote:
Starting with 96e5b03 we use a linker list for partition table information. However since we use this in SPL we need to make sure that the SPL linker scripts include these as well. While doing this, it's best to simply include all linker lists to future proof ourselves.
Cc: Andreas Bießmann andreas.devel@googlemail.com Cc: Michal Simek michal.simek@xilinx.com Reviewed-by: Simon Glass sjg@chromium.org Reported-by: Nishanth Menon nm@ti.com Tested-by: Nishanth Menon nm@ti.com Signed-off-by: Tom Rini trini@konsulko.com
Changes in v3:
- Rework things again, after some testing we don't need to worry about including empty lists, the linker doesn't waste binary space. Also update the at91 linker lists and build time confirm that they were also broken by the opening commit.
Changes in v2:
- Drop the CONFIG_SPL_DM tests for zynq as DM is the only case for zynq and while in here drop a now useless line.
arch/arm/cpu/armv7/omap-common/u-boot-spl.lds | 2 +- arch/arm/cpu/u-boot-spl.lds | 9 +-------- arch/arm/mach-at91/arm926ejs/u-boot-spl.lds | 3 +++ arch/arm/mach-at91/armv7/u-boot-spl.lds | 3 +++ arch/arm/mach-zynq/u-boot-spl.lds | 7 +------ 5 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds index ccd0c83..8fec715 100644 --- a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds +++ b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds @@ -35,7 +35,7 @@ SECTIONS
. = ALIGN(4); .u_boot_list : {
KEEP(*(SORT(.u_boot_list*_i2c_*)));
KEEP(*(SORT(.u_boot_list*)));
} >.sram
. = ALIGN(4);
diff --git a/arch/arm/cpu/u-boot-spl.lds b/arch/arm/cpu/u-boot-spl.lds index c5b4f7c..068163b 100644 --- a/arch/arm/cpu/u-boot-spl.lds +++ b/arch/arm/cpu/u-boot-spl.lds @@ -32,15 +32,8 @@ SECTIONS }
. = ALIGN(4); -#ifdef CONFIG_SPL_DM .u_boot_list : {
KEEP(*(SORT(.u_boot_list_*_driver_*)));
KEEP(*(SORT(.u_boot_list_*_uclass_*)));
- }
-#endif
- . = .;
- .u_boot_list : {
KEEP(*(SORT(.u_boot_list*_i2c_*)));
KEEP(*(SORT(.u_boot_list*)));
}
. = ALIGN(4);
diff --git a/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds b/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds index acadd1d..1b04206 100644 --- a/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds +++ b/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds @@ -30,6 +30,9 @@ SECTIONS .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
. = ALIGN(4);
.u_boot_list : { KEEP(*(SORT(.u_boot_list*))) } > .sram
. = ALIGN(4); __image_copy_end = .;
.end :
diff --git a/arch/arm/mach-at91/armv7/u-boot-spl.lds b/arch/arm/mach-at91/armv7/u-boot-spl.lds index eccca43..c667c55 100644 --- a/arch/arm/mach-at91/armv7/u-boot-spl.lds +++ b/arch/arm/mach-at91/armv7/u-boot-spl.lds @@ -37,6 +37,9 @@ SECTIONS .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
. = ALIGN(4);
.u_boot_list : { KEEP(*(SORT(.u_boot_list*))) } > .sram
. = ALIGN(4); __image_copy_end = .;
.end :
diff --git a/arch/arm/mach-zynq/u-boot-spl.lds b/arch/arm/mach-zynq/u-boot-spl.lds index ecdf6a0..9a59164 100644 --- a/arch/arm/mach-zynq/u-boot-spl.lds +++ b/arch/arm/mach-zynq/u-boot-spl.lds @@ -38,16 +38,11 @@ SECTIONS } > .sram
. = ALIGN(4); -#ifdef CONFIG_SPL_DM .u_boot_list : {
KEEP(*(SORT(.u_boot_list_*_driver_*)));
KEEP(*(SORT(.u_boot_list_*_uclass_*)));
KEEP(*(SORT(.u_boot_list*)));
} > .sram
. = ALIGN(4);
-#endif
. = .;
_image_binary_end = .;
For Zynq size didn't change which is good sign. When you change that commit message feel free to add my Acked-by: Michal Simek michal.simek@xilinx.com
Thanks, Michal
participants (2)
-
Michal Simek
-
Tom Rini