Merge branch 'master' of git://git.denx.de/u-boot-arm

* 'master' of git://git.denx.de/u-boot-arm:
  SMDK6400: fix the compiler error
  imx27lite: Remove local config.mk
  mx31ads: Fix environment location on flash
  imx31_litekit: Remove local config.mk
  mx31litekit: Fix boot with the new relocation scheme.
  mx31ads: Use the new relocation scheme
This commit is contained in:
Wolfgang Denk 2011-06-08 23:29:04 +02:00
commit 9571865e0d
10 changed files with 82 additions and 35 deletions

View File

@ -1 +0,0 @@
CONFIG_SYS_TEXT_BASE = 0x87f00000

View File

@ -28,15 +28,21 @@
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
int dram_init (void) int dram_init(void)
{ {
gd->bd->bi_dram[0].start = PHYS_SDRAM_1; /* dram_init must store complete ramsize in gd->ram_size */
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; gd->ram_size = get_ram_size((volatile void *)PHYS_SDRAM_1,
PHYS_SDRAM_1_SIZE);
return 0; return 0;
} }
int board_init (void) void dram_init_banksize(void)
{
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
}
int board_early_init_f(void)
{ {
int i; int i;
@ -94,6 +100,11 @@ int board_init (void)
readb(CS4_BASE + 8); readb(CS4_BASE + 8);
readb(CS4_BASE + 7); 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_arch_number = MACH_TYPE_MX31ADS; /* board id for linux */
gd->bd->bi_boot_params = 0x80000100; /* adress of boot parameters */ gd->bd->bi_boot_params = 0x80000100; /* adress of boot parameters */

View File

@ -48,23 +48,47 @@ SECTIONS
*(.text) *(.text)
} }
. = ALIGN(4);
.rodata : { *(.rodata) }
. = ALIGN(4); . = ALIGN(4);
.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } .data : {
*(.data)
}
. = ALIGN(4); . = ALIGN(4);
.data : { *(.data) }
. = ALIGN(4);
.got : { *(.got) }
. = .;
__u_boot_cmd_start = .; __u_boot_cmd_start = .;
.u_boot_cmd : { *(.u_boot_cmd) } .u_boot_cmd : { *(.u_boot_cmd) }
__u_boot_cmd_end = .; __u_boot_cmd_end = .;
. = ALIGN(4); . = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) . = ALIGN(4); } .rel.dyn : {
__bss_end__ = .; __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*) }
} }

View File

@ -1,5 +0,0 @@
# with relocation CONFIG_SYS_TEXT_BASE can be anything, and making it 0
# makes relative and absolute relocation fixups interchangeable.
#CONFIG_SYS_TEXT_BASE = 0
CONFIG_SYS_TEXT_BASE = 0xc0000000

View File

@ -1 +0,0 @@
CONFIG_SYS_TEXT_BASE = 0xa0000000

View File

@ -29,21 +29,21 @@
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
int dram_init (void) int dram_init(void)
{ {
gd->ram_size = PHYS_SDRAM_1_SIZE; /* dram_init must store complete ramsize in gd->ram_size */
gd->ram_size = get_ram_size((volatile void *)PHYS_SDRAM_1,
PHYS_SDRAM_1_SIZE);
return 0; return 0;
} }
void void dram_init_banksize(void)
dram_init_banksize (void)
{ {
gd->bd->bi_dram[0].start = PHYS_SDRAM_1; gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
} }
int board_init (void) int board_early_init_f(void)
{ {
__REG(CSCR_U(0)) = 0x0000cf03; /* CS0: Nor Flash */ __REG(CSCR_U(0)) = 0x0000cf03; /* CS0: Nor Flash */
__REG(CSCR_L(0)) = 0xa0330d01; __REG(CSCR_L(0)) = 0xa0330d01;
@ -71,6 +71,11 @@ int board_init (void)
/* start SPI2 clock */ /* start SPI2 clock */
__REG(CCM_CGR2) = __REG(CCM_CGR2) | (3 << 4); __REG(CCM_CGR2) = __REG(CCM_CGR2) | (3 << 4);
return 0;
}
int board_init(void)
{
gd->bd->bi_arch_number = MACH_TYPE_MX31LITE; /* board id for linux */ gd->bd->bi_arch_number = MACH_TYPE_MX31LITE; /* board id for linux */
gd->bd->bi_boot_params = (0x80000100); /* adress of boot parameters */ gd->bd->bi_boot_params = (0x80000100); /* adress of boot parameters */

View File

@ -67,6 +67,8 @@ SECTIONS
*(.dynsym) *(.dynsym)
} }
_end = .;
.bss __rel_dyn_start (OVERLAY) : { .bss __rel_dyn_start (OVERLAY) : {
__bss_start = .; __bss_start = .;
*(.bss) *(.bss)

View File

@ -34,6 +34,8 @@
#define CONFIG_DISPLAY_BOARDINFO #define CONFIG_DISPLAY_BOARDINFO
#define CONFIG_DISPLAY_CPUINFO #define CONFIG_DISPLAY_CPUINFO
#define CONFIG_SYS_TEXT_BASE 0xc0000000
#define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */ #define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */
#define CONFIG_SETUP_MEMORY_TAGS 1 #define CONFIG_SETUP_MEMORY_TAGS 1
#define CONFIG_INITRD_TAG 1 #define CONFIG_INITRD_TAG 1

View File

@ -39,6 +39,8 @@
#define CONFIG_DISPLAY_CPUINFO #define CONFIG_DISPLAY_CPUINFO
#define CONFIG_DISPLAY_BOARDINFO #define CONFIG_DISPLAY_BOARDINFO
#define CONFIG_SYS_TEXT_BASE 0xa0000000
/* Temporarily disabled */ /* Temporarily disabled */
#if 0 #if 0
#define CONFIG_OF_LIBFDT 1 #define CONFIG_OF_LIBFDT 1
@ -145,6 +147,7 @@
#define CONFIG_NR_DRAM_BANKS 1 #define CONFIG_NR_DRAM_BANKS 1
#define PHYS_SDRAM_1 CSD0_BASE #define PHYS_SDRAM_1 CSD0_BASE
#define PHYS_SDRAM_1_SIZE (128 * 1024 * 1024) #define PHYS_SDRAM_1_SIZE (128 * 1024 * 1024)
#define CONFIG_BOARD_EARLY_INIT_F
#define CONFIG_SYS_SDRAM_BASE CSD0_BASE #define CONFIG_SYS_SDRAM_BASE CSD0_BASE
#define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR

View File

@ -33,6 +33,8 @@
#define CONFIG_DISPLAY_CPUINFO #define CONFIG_DISPLAY_CPUINFO
#define CONFIG_DISPLAY_BOARDINFO #define CONFIG_DISPLAY_BOARDINFO
#define CONFIG_SYS_TEXT_BASE 0xA0000000
/* /*
* Disabled for now due to build problems under Debian and a significant increase * Disabled for now due to build problems under Debian and a significant increase
* in the final file size: 144260 vs. 109536 Bytes. * in the final file size: 144260 vs. 109536 Bytes.
@ -160,6 +162,15 @@
#define CONFIG_NR_DRAM_BANKS 1 #define CONFIG_NR_DRAM_BANKS 1
#define PHYS_SDRAM_1 CSD0_BASE #define PHYS_SDRAM_1 CSD0_BASE
#define PHYS_SDRAM_1_SIZE (128 * 1024 * 1024) #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 * FLASH and environment organization
@ -171,18 +182,14 @@
#define CONFIG_SYS_MONITOR_LEN (256 * 1024) /* Reserve 256KiB */ #define CONFIG_SYS_MONITOR_LEN (256 * 1024) /* Reserve 256KiB */
#define CONFIG_ENV_IS_IN_FLASH 1 #define CONFIG_ENV_IS_IN_FLASH 1
#define CONFIG_ENV_SECT_SIZE (32 * 1024) #define CONFIG_ENV_SECT_SIZE (128 * 1024)
#define CONFIG_ENV_SIZE CONFIG_ENV_SECT_SIZE #define CONFIG_ENV_SIZE CONFIG_ENV_SECT_SIZE
#define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN)
/* Address and size of Redundant Environment Sector */ /* Address and size of Redundant Environment Sector */
#define CONFIG_ENV_OFFSET_REDUND (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) #define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR + CONFIG_ENV_SIZE)
#define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE #define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE
/* S29WS256N NOR flash has 4 32KiB small sectors at the beginning and at the end.
* The rest of 32MiB is in 128KiB big sectors. U-Boot occupies the low 4 sectors,
* if we put environment next to it, we will have to occupy 128KiB for it.
* Putting it at the top of flash we use only 32KiB. */
#define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE + CONFIG_ENV_SECT_SIZE)
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
* CFI FLASH driver setup * CFI FLASH driver setup