diff options
Diffstat (limited to 'board/pm520')
| -rw-r--r-- | board/pm520/flash.c | 19 | ||||
| -rw-r--r-- | board/pm520/pm520.c | 8 | ||||
| -rw-r--r-- | board/pm520/u-boot.lds | 3 |
3 files changed, 23 insertions, 7 deletions
diff --git a/board/pm520/flash.c b/board/pm520/flash.c index 386822179..38f579bc5 100644 --- a/board/pm520/flash.c +++ b/board/pm520/flash.c @@ -168,6 +168,10 @@ void flash_print_info (flash_info_t *info) } switch (info->flash_id & FLASH_TYPEMASK) { + case FLASH_28F256J3A: + printf ("28F256J3A\n"); + break; + case FLASH_28F128J3A: printf ("28F128J3A\n"); break; @@ -236,25 +240,33 @@ static ulong flash_get_size (FPW *addr, flash_info_t *info) switch (value) { + case (FPW) INTEL_ID_28F256J3A: + info->flash_id += FLASH_28F256J3A; + /* In U-Boot we support only 32 MB (no bank-switching) */ + info->sector_count = 256 / 2; + info->size = 0x04000000 / 2; + info->start[0] = CFG_FLASH_BASE + 0x02000000; + break; /* => 32 MB */ + case (FPW) INTEL_ID_28F128J3A: info->flash_id += FLASH_28F128J3A; info->sector_count = 128; info->size = 0x02000000; - info->start[0] = CFG_FLASH_BASE; + info->start[0] = CFG_FLASH_BASE + 0x02000000; break; /* => 32 MB */ case (FPW) INTEL_ID_28F640J3A: info->flash_id += FLASH_28F640J3A; info->sector_count = 64; info->size = 0x01000000; - info->start[0] = CFG_FLASH_BASE + 0x01000000; + info->start[0] = CFG_FLASH_BASE + 0x03000000; break; /* => 16 MB */ case (FPW) INTEL_ID_28F320J3A: info->flash_id += FLASH_28F320J3A; info->sector_count = 32; info->size = 0x800000; - info->start[0] = CFG_FLASH_BASE + 0x01800000; + info->start[0] = CFG_FLASH_BASE + 0x03800000; break; /* => 8 MB */ default: @@ -285,6 +297,7 @@ static void flash_sync_real_protect (flash_info_t * info) switch (info->flash_id & FLASH_TYPEMASK) { + case FLASH_28F256J3A: case FLASH_28F128J3A: case FLASH_28F640J3A: case FLASH_28F320J3A: diff --git a/board/pm520/pm520.c b/board/pm520/pm520.c index 619df59c9..d4cc5cb56 100644 --- a/board/pm520/pm520.c +++ b/board/pm520/pm520.c @@ -107,9 +107,9 @@ long int initdram (int board_type) /* find RAM size using SDRAM CS0 only */ sdram_start(0); - test1 = get_ram_size((ulong *)CFG_SDRAM_BASE, 0x80000000); + test1 = get_ram_size((long *)CFG_SDRAM_BASE, 0x80000000); sdram_start(1); - test2 = get_ram_size((ulong *)CFG_SDRAM_BASE, 0x80000000); + test2 = get_ram_size((long *)CFG_SDRAM_BASE, 0x80000000); if (test1 > test2) { sdram_start(0); dramsize = test1; @@ -135,10 +135,10 @@ long int initdram (int board_type) /* find RAM size using SDRAM CS1 only */ if (!dramsize) sdram_start(0); - test2 = test1 = get_ram_size((ulong *)(CFG_SDRAM_BASE + dramsize), 0x80000000); + test2 = test1 = get_ram_size((long *)(CFG_SDRAM_BASE + dramsize), 0x80000000); if (!dramsize) { sdram_start(1); - test2 = get_ram_size((ulong *)(CFG_SDRAM_BASE + dramsize), 0x80000000); + test2 = get_ram_size((long *)(CFG_SDRAM_BASE + dramsize), 0x80000000); } if (test1 > test2) { sdram_start(0); diff --git a/board/pm520/u-boot.lds b/board/pm520/u-boot.lds index 672a250cf..3cc296848 100644 --- a/board/pm520/u-boot.lds +++ b/board/pm520/u-boot.lds @@ -61,6 +61,7 @@ SECTIONS *(.rodata) *(.rodata1) *(.rodata.str1.4) + *(.eh_frame) } .fini : { *(.fini) } =0 .ctors : { *(.ctors) } @@ -93,11 +94,13 @@ SECTIONS _edata = .; PROVIDE (edata = .); + . = .; __u_boot_cmd_start = .; .u_boot_cmd : { *(.u_boot_cmd) } __u_boot_cmd_end = .; + . = .; __start___ex_table = .; __ex_table : { *(__ex_table) } __stop___ex_table = .; |