Message ID | 1306957601-27016-1-git-send-email-fabio.estevam@freescale.com |
---|---|
State | Superseded |
Delegated to: | Stefano Babic |
Headers | show |
On 06/01/2011 09:46 PM, Fabio Estevam wrote: > This fixes the MX31ADS build by using the new relocation scheme. > > Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> --- Hi Fabio, > Changes since v1: > > - Fixed lines over 80 characters. > > Build tested only. > > Do not have the hardware handy to test. Maybe someone can help on this topic ;-) > -int dram_init (void) +int dram_init(void) +{ + /* dram_init must > store complete ramsize in gd->ram_size */ + gd->ram_size = > get_ram_size((volatile void *)CONFIG_SYS_SDRAM_BASE, I know it is the same, but if you use PHYS_SDRAM_1 instead of CONFIG_SYS_SDRAM_BASE (as most boards do), the reader understands easier that the start address and the size are strictly connected. > --- a/board/freescale/mx31ads/u-boot.lds +++ > b/board/freescale/mx31ads/u-boot.lds @@ -48,23 +48,47 @@ SECTIONS > Can we get rid of this file ? We do not need anymore, and you can also remove config.mk as well. Your patch makes u-boot.lds in board directory identical (if I have not missed something) to arch/arm/cpu/arm1136/u-boot.lds. Best regards, Stefano
Hi Stefano, On Thu, Jun 2, 2011 at 3:28 AM, Stefano Babic <sbabic@denx.de> wrote: ... > I know it is the same, but if you use PHYS_SDRAM_1 instead of > CONFIG_SYS_SDRAM_BASE (as most boards do), the reader understands easier > that the start address and the size are strictly connected. OK. > >> --- a/board/freescale/mx31ads/u-boot.lds +++ >> b/board/freescale/mx31ads/u-boot.lds @@ -48,23 +48,47 @@ SECTIONS >> > > Can we get rid of this file ? We do not need anymore, and you can also > remove config.mk as well. If I remove the board/freescale/mx31ads/u-boot.ld then I get the following error: 010q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/armv4t -lgcc -Map u-boot.map -o u-boot common/libcommon.o:(.data+0x80c): undefined reference to `environment' and I think that is due to the fact that board/freescale/mx31ads/u-boot.ld is a bit customized as per the comment below: .text : { /* WARNING - the following is hand-optimized to fit within */ /* the sector layout of our flash chips! XXX FIXME XXX */ arch/arm/cpu/arm1136/start.o (.text) board/freescale/mx31ads/libmx31ads.o (.text) arch/arm/lib/libarm.o (.text) net/libnet.o (.text) drivers/mtd/libmtd.o (.text) . = DEFINED(env_offset) ? env_offset : .; common/env_embedded.o(.text) My intention on this patch was to fix the MX31ADS build so that this board does not get removed from U-boot. Would it be OK if I resend a new patch taking in consideration your other comments, except the removal of board/freescale/mx31ads/u-boot.ld ? Or would you have any other suggestion? Regards, Fabio Estevam
On 06/02/2011 06:02 PM, Fabio Estevam wrote: > Hi Stefano, > Hi Fabio, > > My intention on this patch was to fix the MX31ADS build so that this > board does not get removed from U-boot. Sure. This is the first goal. > > Would it be OK if I resend a new patch taking in consideration your > other comments, except the removal of > board/freescale/mx31ads/u-boot.ld ? Agree. Best regards, Stefano Babic
diff --git a/board/freescale/mx31ads/mx31ads.c b/board/freescale/mx31ads/mx31ads.c index a298e05..e46ad23 100644 --- a/board/freescale/mx31ads/mx31ads.c +++ b/board/freescale/mx31ads/mx31ads.c @@ -28,15 +28,21 @@ DECLARE_GLOBAL_DATA_PTR; -int dram_init (void) +int dram_init(void) +{ + /* dram_init must store complete ramsize in gd->ram_size */ + gd->ram_size = get_ram_size((volatile void *)CONFIG_SYS_SDRAM_BASE, + PHYS_SDRAM_1_SIZE); + return 0; +} + +void dram_init_banksize(void) { gd->bd->bi_dram[0].start = PHYS_SDRAM_1; gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; - - return 0; } -int board_init (void) +int board_early_init_f(void) { int i; @@ -94,6 +100,11 @@ int board_init (void) readb(CS4_BASE + 8); readb(CS4_BASE + 7); + return 0; +} + +int board_init(void) +{ gd->bd->bi_arch_number = MACH_TYPE_MX31ADS; /* board id for linux */ gd->bd->bi_boot_params = 0x80000100; /* adress of boot parameters */ diff --git a/board/freescale/mx31ads/u-boot.lds b/board/freescale/mx31ads/u-boot.lds index b081b21..79eb7ac 100644 --- a/board/freescale/mx31ads/u-boot.lds +++ b/board/freescale/mx31ads/u-boot.lds @@ -48,23 +48,47 @@ SECTIONS *(.text) } - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } + .rodata : { *(.rodata) } . = ALIGN(4); - .data : { *(.data) } + .data : { + *(.data) + } . = ALIGN(4); - .got : { *(.got) } - - . = .; __u_boot_cmd_start = .; .u_boot_cmd : { *(.u_boot_cmd) } __u_boot_cmd_end = .; . = ALIGN(4); - __bss_start = .; - .bss : { *(.bss) . = ALIGN(4); } - __bss_end__ = .; + + .rel.dyn : { + __rel_dyn_start = .; + *(.rel*) + __rel_dyn_end = .; + } + + .dynsym : { + __dynsym_start = .; + *(.dynsym) + } + + _end = .; + + .bss __rel_dyn_start (OVERLAY) : { + __bss_start = .; + *(.bss) + . = ALIGN(4); + __bss_end__ = .; + } + + /DISCARD/ : { *(.bss*) } + /DISCARD/ : { *(.dynstr*) } + /DISCARD/ : { *(.dynsym*) } + /DISCARD/ : { *(.dynamic*) } + /DISCARD/ : { *(.hash*) } + /DISCARD/ : { *(.plt*) } + /DISCARD/ : { *(.interp*) } + /DISCARD/ : { *(.gnu*) } } diff --git a/include/configs/mx31ads.h b/include/configs/mx31ads.h index 5ea59b4..2046bbf 100644 --- a/include/configs/mx31ads.h +++ b/include/configs/mx31ads.h @@ -160,6 +160,15 @@ #define CONFIG_NR_DRAM_BANKS 1 #define PHYS_SDRAM_1 CSD0_BASE #define PHYS_SDRAM_1_SIZE (128 * 1024 * 1024) +#define CONFIG_BOARD_EARLY_INIT_F + +#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1 +#define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR +#define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE +#define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - \ + GENERATED_GBL_DATA_SIZE) +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \ + CONFIG_SYS_GBL_DATA_OFFSET) /*----------------------------------------------------------------------- * FLASH and environment organization
This fixes the MX31ADS build by using the new relocation scheme. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> --- Changes since v1: - Fixed lines over 80 characters. Build tested only. Do not have the hardware handy to test. board/freescale/mx31ads/mx31ads.c | 19 ++++++++++++--- board/freescale/mx31ads/u-boot.lds | 42 ++++++++++++++++++++++++++++------- include/configs/mx31ads.h | 9 +++++++ 3 files changed, 57 insertions(+), 13 deletions(-)