powerpc: mpc85xx: Define linker sections in ascending order

It is too confusing if sections are defined in non-ascending order.

Also linker has to go backward and then again forward when generating final
binary.

To make future changes easier, define all linker sections in ascending
order.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
This commit is contained in:
Pali Rohár 2022-04-05 15:12:35 +02:00 committed by Priyanka Jain
parent 1b780b654f
commit 1245c6e258
2 changed files with 19 additions and 16 deletions

View File

@ -18,6 +18,13 @@ PHDRS
#endif #endif
SECTIONS SECTIONS
{ {
/* For ifc, elbc, esdhc, espi, all need the SPL without section .resetvec */
#ifdef CONFIG_SYS_MPC85XX_NO_RESETVEC
.bootpg IMAGE_TEXT_BASE - 0x1000 :
{
KEEP(*(.bootpg))
} :text = 0xffff
#endif
. = IMAGE_TEXT_BASE; . = IMAGE_TEXT_BASE;
.text : { .text : {
*(.text*) *(.text*)
@ -67,18 +74,13 @@ SECTIONS
__bss_end = .; __bss_end = .;
#endif #endif
/* For ifc, elbc, esdhc, espi, all need the SPL without section .resetvec */ /* For nor and nand is needed the SPL with section .resetvec */
#ifdef CONFIG_SYS_MPC85XX_NO_RESETVEC #ifndef CONFIG_SYS_MPC85XX_NO_RESETVEC
.bootpg ADDR(.text) - 0x1000 :
{
KEEP(*(.bootpg))
} :text = 0xffff
#else
#if defined(CONFIG_FSL_IFC) /* Restrict bootpg at 4K boundry for IFC */ #if defined(CONFIG_FSL_IFC) /* Restrict bootpg at 4K boundry for IFC */
#ifndef BOOT_PAGE_OFFSET #ifndef BOOT_PAGE_OFFSET
#define BOOT_PAGE_OFFSET 0x1000 #define BOOT_PAGE_OFFSET 0x1000
#endif #endif
.bootpg ADDR(.text) + BOOT_PAGE_OFFSET : .bootpg IMAGE_TEXT_BASE + BOOT_PAGE_OFFSET :
{ {
arch/powerpc/cpu/mpc85xx/start.o (.bootpg) arch/powerpc/cpu/mpc85xx/start.o (.bootpg)
} }
@ -90,7 +92,7 @@ SECTIONS
#else #else
#error unknown NAND controller #error unknown NAND controller
#endif #endif
.resetvec ADDR(.text) + RESET_VECTOR_OFFSET : { .resetvec IMAGE_TEXT_BASE + RESET_VECTOR_OFFSET : {
KEEP(*(.resetvec)) KEEP(*(.resetvec))
} = 0xffff } = 0xffff
#endif #endif

View File

@ -23,6 +23,13 @@ PHDRS
SECTIONS SECTIONS
{ {
/* Read-only sections, merged into text segment: */ /* Read-only sections, merged into text segment: */
#ifdef CONFIG_SYS_MPC85XX_NO_RESETVEC
.bootpg CONFIG_SYS_TEXT_BASE - 0x1000 :
{
KEEP(arch/powerpc/cpu/mpc85xx/start.o (.bootpg))
} :text = 0xffff
. = CONFIG_SYS_TEXT_BASE;
#endif
.text : .text :
{ {
*(.text*) *(.text*)
@ -77,13 +84,7 @@ SECTIONS
__init_end = .; __init_end = .;
_end = .; _end = .;
#ifdef CONFIG_SYS_MPC85XX_NO_RESETVEC #ifndef CONFIG_SYS_MPC85XX_NO_RESETVEC
.bootpg ADDR(.text) - 0x1000 :
{
KEEP(arch/powerpc/cpu/mpc85xx/start.o (.bootpg))
} :text = 0xffff
. = _end;
#else
.bootpg RESET_VECTOR_ADDRESS - 0xffc : .bootpg RESET_VECTOR_ADDRESS - 0xffc :
{ {
arch/powerpc/cpu/mpc85xx/start.o (.bootpg) arch/powerpc/cpu/mpc85xx/start.o (.bootpg)