CONFIG_SYS_HZ must be always 1000, but M5271EVB.h defines it as 1000000 and idmr.h defines it as (50000000 / 64). When compiling these two boards, a warning message is displayed: time.c:14:2: warning: #warning "CONFIG_SYS_HZ must be 1000 and should not be defined by platforms" [-Wcpp] There are no board maintainers for them so this commit just deletes them. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Jason Jin <Jason.jin@freescale.com>master
parent
247161b816
commit
ba650e9b52
@ -1,8 +0,0 @@ |
||||
#
|
||||
# (C) Copyright 2000-2006
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
|
||||
obj-y = m5271evb.o
|
@ -1,9 +0,0 @@ |
||||
#
|
||||
# (C) Copyright 2000-2006
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
# Coldfire contribution by Bernhard Kuhn <bkuhn@metrowerks.com>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
|
||||
CONFIG_SYS_TEXT_BASE = 0xffe00000
|
@ -1,115 +0,0 @@ |
||||
/*
|
||||
* (C) Copyright 2000-2006 |
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de. |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
#include <asm/immap.h> |
||||
|
||||
int checkboard (void) { |
||||
puts ("Board: Freescale M5271EVB\n"); |
||||
return 0; |
||||
}; |
||||
|
||||
phys_size_t initdram (int board_type) { |
||||
|
||||
int i; |
||||
|
||||
/* Enable Address lines 23-21 and lower 16bits of data path */ |
||||
mbar_writeByte(MCF_GPIO_PAR_AD, MCF_GPIO_AD_ADDR23 | |
||||
MCF_GPIO_AD_ADDR22 | MCF_GPIO_AD_ADDR21 | |
||||
MCF_GPIO_AD_DATAL); |
||||
|
||||
/* Set CS2 pin to be SD_CS0 */ |
||||
mbar_writeByte(MCF_GPIO_PAR_CS, mbar_readByte(MCF_GPIO_PAR_CS) |
||||
| MCF_GPIO_PAR_CS_PAR_CS2); |
||||
|
||||
/* Configure SDRAM Control Pin Assignemnt Register */ |
||||
mbar_writeByte(MCF_GPIO_PAR_SDRAM, MCF_GPIO_SDRAM_CSSDCS_00 | |
||||
MCF_GPIO_SDRAM_SDWE | MCF_GPIO_SDRAM_SCAS | |
||||
MCF_GPIO_SDRAM_SRAS | MCF_GPIO_SDRAM_SCKE | |
||||
MCF_GPIO_SDRAM_SDCS_11); |
||||
asm(" nop"); |
||||
|
||||
/*
|
||||
* Check to see if the SDRAM has already been initialized |
||||
* by a run control tool |
||||
*/ |
||||
if (!(mbar_readLong(MCF_SDRAMC_DACR0) & MCF_SDRAMC_DACRn_RE)) { |
||||
/* Initialize DRAM Control Register: DCR */ |
||||
mbar_writeShort(MCF_SDRAMC_DCR, |
||||
MCF_SDRAMC_DCR_RTIM(2) |
||||
| MCF_SDRAMC_DCR_RC(0x2E)); |
||||
asm(" nop"); |
||||
|
||||
/*
|
||||
* Initialize DACR0 |
||||
* |
||||
* CASL: 01 |
||||
* CBM: cmd at A20, bank select bits 21 and up |
||||
* PS: 32bit port size |
||||
*/ |
||||
mbar_writeLong(MCF_SDRAMC_DACR0, |
||||
MCF_SDRAMC_DACRn_BA(CONFIG_SYS_SDRAM_BASE>>18) |
||||
| MCF_SDRAMC_DACRn_CASL(1) |
||||
| MCF_SDRAMC_DACRn_CBM(3) |
||||
| MCF_SDRAMC_DACRn_PS(0)); |
||||
asm(" nop"); |
||||
|
||||
/* Initialize DMR0 */ |
||||
mbar_writeLong(MCF_SDRAMC_DMR0, |
||||
MCF_SDRAMC_DMRn_BAM_16M |
||||
| MCF_SDRAMC_DMRn_V); |
||||
asm(" nop"); |
||||
|
||||
/* Set IP bit in DACR */ |
||||
mbar_writeLong(MCF_SDRAMC_DACR0, mbar_readLong(MCF_SDRAMC_DACR0) |
||||
| MCF_SDRAMC_DACRn_IP); |
||||
asm(" nop"); |
||||
|
||||
/* Wait at least 20ns to allow banks to precharge */ |
||||
for (i = 0; i < 5; i++) |
||||
asm(" nop"); |
||||
|
||||
/* Write to this block to initiate precharge */ |
||||
*(u32 *)(CONFIG_SYS_SDRAM_BASE) = 0xa5a5a5a5; |
||||
asm(" nop"); |
||||
|
||||
/* Set RE bit in DACR */ |
||||
mbar_writeLong(MCF_SDRAMC_DACR0, mbar_readLong(MCF_SDRAMC_DACR0) |
||||
| MCF_SDRAMC_DACRn_RE); |
||||
|
||||
/* Wait for at least 8 auto refresh cycles to occur */ |
||||
for (i = 0; i < 2000; i++) |
||||
asm(" nop"); |
||||
|
||||
/* Finish the configuration by issuing the MRS */ |
||||
mbar_writeLong(MCF_SDRAMC_DACR0, mbar_readLong(MCF_SDRAMC_DACR0) |
||||
| MCF_SDRAMC_DACRn_MRS); |
||||
asm(" nop"); |
||||
|
||||
/*
|
||||
* Write to the SDRAM Mode Register A0-A11 = 0x400 |
||||
* |
||||
* Write Burst Mode = Programmed Burst Length |
||||
* Op Mode = Standard Op |
||||
* CAS Latency = 2 |
||||
* Burst Type = Sequential |
||||
* Burst Length = 1 |
||||
*/ |
||||
*(u32 *)(CONFIG_SYS_SDRAM_BASE + 0x400) = 0xa5a5a5a5; |
||||
asm(" nop"); |
||||
} |
||||
|
||||
return CONFIG_SYS_SDRAM_SIZE * 1024 * 1024; |
||||
}; |
||||
|
||||
int testdram (void) { |
||||
|
||||
/* TODO: XXX XXX XXX */ |
||||
printf ("DRAM test not implemented!\n"); |
||||
|
||||
return (0); |
||||
} |
@ -1,85 +0,0 @@ |
||||
/* |
||||
* (C) Copyright 2000 |
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de. |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
OUTPUT_ARCH(m68k) |
||||
|
||||
SECTIONS |
||||
{ |
||||
.text : |
||||
{ |
||||
arch/m68k/cpu/mcf52x2/start.o (.text*) |
||||
|
||||
. = DEFINED(env_offset) ? env_offset : .; |
||||
common/env_embedded.o (.ppcenv) |
||||
|
||||
*(.text*) |
||||
} |
||||
_etext = .; |
||||
PROVIDE (etext = .); |
||||
.rodata : |
||||
{ |
||||
*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) |
||||
} |
||||
|
||||
/* Read-write section, merged into data segment: */ |
||||
. = (. + 0x00FF) & 0xFFFFFF00; |
||||
_erotext = .; |
||||
PROVIDE (erotext = .); |
||||
|
||||
.reloc : |
||||
{ |
||||
__got_start = .; |
||||
KEEP(*(.got)) |
||||
__got_end = .; |
||||
_GOT2_TABLE_ = .; |
||||
KEEP(*(.got2)) |
||||
_FIXUP_TABLE_ = .; |
||||
KEEP(*(.fixup)) |
||||
} |
||||
__got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2; |
||||
__fixup_entries = (. - _FIXUP_TABLE_)>>2; |
||||
|
||||
.data : |
||||
{ |
||||
*(.data*) |
||||
*(.sdata*) |
||||
} |
||||
_edata = .; |
||||
PROVIDE (edata = .); |
||||
|
||||
. = .; |
||||
|
||||
. = ALIGN(4); |
||||
.u_boot_list : { |
||||
KEEP(*(SORT(.u_boot_list*))); |
||||
} |
||||
|
||||
. = .; |
||||
__start___ex_table = .; |
||||
__ex_table : { *(__ex_table) } |
||||
__stop___ex_table = .; |
||||
|
||||
. = ALIGN(256); |
||||
__init_begin = .; |
||||
.text.init : { *(.text.init) } |
||||
.data.init : { *(.data.init) } |
||||
. = ALIGN(256); |
||||
__init_end = .; |
||||
|
||||
__bss_start = .; |
||||
.bss (NOLOAD) : |
||||
{ |
||||
_sbss = .; |
||||
*(.bss*) |
||||
*(.sbss*) |
||||
*(COMMON) |
||||
. = ALIGN(4); |
||||
_ebss = .; |
||||
} |
||||
__bss_end = . ; |
||||
PROVIDE (end = .); |
||||
} |
@ -1,8 +0,0 @@ |
||||
#
|
||||
# (C) Copyright 2000-2006
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
|
||||
obj-y = idmr.o flash.o
|
@ -1,9 +0,0 @@ |
||||
#
|
||||
# (C) Copyright 2000-2006
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
# Coldfire contribution by Bernhard Kuhn <bkuhn@metrowerks.com>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
|
||||
CONFIG_SYS_TEXT_BASE = 0xff800000
|
@ -1,342 +0,0 @@ |
||||
/*
|
||||
* (C) Copyright 2000-2006 |
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de. |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
|
||||
#define PHYS_FLASH_1 CONFIG_SYS_FLASH_BASE |
||||
#define FLASH_BANK_SIZE 0x800000 |
||||
#define EN29LV640 0x227e227e |
||||
|
||||
flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS]; |
||||
|
||||
void flash_print_info (flash_info_t * info) |
||||
{ |
||||
int i; |
||||
|
||||
switch (info->flash_id & FLASH_VENDMASK) { |
||||
case (AMD_MANUFACT & FLASH_VENDMASK): |
||||
printf ("AMD: "); |
||||
break; |
||||
default: |
||||
printf ("Unknown Vendor "); |
||||
break; |
||||
} |
||||
|
||||
switch (info->flash_id & FLASH_TYPEMASK) { |
||||
case (EN29LV640 & FLASH_TYPEMASK): |
||||
printf ("EN29LV640 (16Mbit)\n"); |
||||
break; |
||||
default: |
||||
printf ("Unknown Chip Type\n"); |
||||
goto Done; |
||||
break; |
||||
} |
||||
|
||||
printf (" Size: %ld MB in %d Sectors\n", |
||||
info->size >> 20, info->sector_count); |
||||
|
||||
printf (" Sector Start Addresses:"); |
||||
for (i = 0; i < info->sector_count; i++) { |
||||
if ((i % 5) == 0) { |
||||
printf ("\n "); |
||||
} |
||||
printf (" %08lX%s", info->start[i], |
||||
info->protect[i] ? " (RO)" : " "); |
||||
} |
||||
printf ("\n"); |
||||
|
||||
Done: |
||||
return; |
||||
} |
||||
|
||||
|
||||
unsigned long flash_init (void) |
||||
{ |
||||
int i, j; |
||||
ulong size = 0; |
||||
|
||||
for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; i++) { |
||||
ulong flashbase = 0; |
||||
|
||||
flash_info[i].flash_id = |
||||
(AMD_MANUFACT & FLASH_VENDMASK) | |
||||
(EN29LV640 & FLASH_TYPEMASK); |
||||
flash_info[i].size = FLASH_BANK_SIZE; |
||||
flash_info[i].sector_count = CONFIG_SYS_MAX_FLASH_SECT; |
||||
memset (flash_info[i].protect, 0, CONFIG_SYS_MAX_FLASH_SECT); |
||||
if (i == 0) |
||||
flashbase = PHYS_FLASH_1; |
||||
else |
||||
panic ("configured to many flash banks!\n"); |
||||
|
||||
for (j = 0; j < flash_info[i].sector_count; j++) { |
||||
flash_info[i].start[j] = flashbase + 0x10000 * j; |
||||
} |
||||
size += flash_info[i].size; |
||||
} |
||||
|
||||
flash_protect (FLAG_PROTECT_SET, |
||||
CONFIG_SYS_FLASH_BASE, |
||||
CONFIG_SYS_FLASH_BASE + 0x2ffff, &flash_info[0]); |
||||
|
||||
return size; |
||||
} |
||||
|
||||
|
||||
#define CMD_READ_ARRAY 0x00F0 |
||||
#define CMD_UNLOCK1 0x00AA |
||||
#define CMD_UNLOCK2 0x0055 |
||||
#define CMD_ERASE_SETUP 0x0080 |
||||
#define CMD_ERASE_CONFIRM 0x0030 |
||||
#define CMD_PROGRAM 0x00A0 |
||||
#define CMD_UNLOCK_BYPASS 0x0020 |
||||
|
||||
#define MEM_FLASH_ADDR1 (*(volatile u16 *)(CONFIG_SYS_FLASH_BASE + (0x00000555<<1))) |
||||
#define MEM_FLASH_ADDR2 (*(volatile u16 *)(CONFIG_SYS_FLASH_BASE + (0x000002AA<<1))) |
||||
|
||||
#define BIT_ERASE_DONE 0x0080 |
||||
#define BIT_RDY_MASK 0x0080 |
||||
#define BIT_PROGRAM_ERROR 0x0020 |
||||
#define BIT_TIMEOUT 0x80000000 /* our flag */ |
||||
|
||||
#define READY 1 |
||||
#define ERR 2 |
||||
#define TMO 4 |
||||
|
||||
|
||||
int flash_erase (flash_info_t * info, int s_first, int s_last) |
||||
{ |
||||
ulong result; |
||||
int iflag, prot, sect; |
||||
int rc = ERR_OK; |
||||
int chip1; |
||||
ulong start; |
||||
|
||||
/* first look for protection bits */ |
||||
|
||||
if (info->flash_id == FLASH_UNKNOWN) |
||||
return ERR_UNKNOWN_FLASH_TYPE; |
||||
|
||||
if ((s_first < 0) || (s_first > s_last)) { |
||||
return ERR_INVAL; |
||||
} |
||||
|
||||
if ((info->flash_id & FLASH_VENDMASK) != |
||||
(AMD_MANUFACT & FLASH_VENDMASK)) { |
||||
return ERR_UNKNOWN_FLASH_VENDOR; |
||||
} |
||||
|
||||
prot = 0; |
||||
for (sect = s_first; sect <= s_last; ++sect) { |
||||
if (info->protect[sect]) { |
||||
prot++; |
||||
} |
||||
} |
||||
if (prot) |
||||
return ERR_PROTECTED; |
||||
|
||||
/*
|
||||
* Disable interrupts which might cause a timeout |
||||
* here. Remember that our exception vectors are |
||||
* at address 0 in the flash, and we don't want a |
||||
* (ticker) exception to happen while the flash |
||||
* chip is in programming mode. |
||||
*/ |
||||
iflag = disable_interrupts (); |
||||
|
||||
printf ("\n"); |
||||
|
||||
/* Start erase on unprotected sectors */ |
||||
for (sect = s_first; sect <= s_last && !ctrlc (); sect++) { |
||||
printf ("Erasing sector %2d ... ", sect); |
||||
|
||||
/* arm simple, non interrupt dependent timer */ |
||||
start = get_timer(0); |
||||
|
||||
if (info->protect[sect] == 0) { /* not protected */ |
||||
volatile u16 *addr = |
||||
(volatile u16 *) (info->start[sect]); |
||||
|
||||
MEM_FLASH_ADDR1 = CMD_UNLOCK1; |
||||
MEM_FLASH_ADDR2 = CMD_UNLOCK2; |
||||
MEM_FLASH_ADDR1 = CMD_ERASE_SETUP; |
||||
|
||||
MEM_FLASH_ADDR1 = CMD_UNLOCK1; |
||||
MEM_FLASH_ADDR2 = CMD_UNLOCK2; |
||||
*addr = CMD_ERASE_CONFIRM; |
||||
|
||||
/* wait until flash is ready */ |
||||
chip1 = 0; |
||||
|
||||
do { |
||||
result = *addr; |
||||
|
||||
/* check timeout */ |
||||
if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT * CONFIG_SYS_HZ / 1000) { |
||||
MEM_FLASH_ADDR1 = CMD_READ_ARRAY; |
||||
chip1 = TMO; |
||||
break; |
||||
} |
||||
|
||||
if (!chip1 |
||||
&& (result & 0xFFFF) & BIT_ERASE_DONE) |
||||
chip1 = READY; |
||||
|
||||
} while (!chip1); |
||||
|
||||
MEM_FLASH_ADDR1 = CMD_READ_ARRAY; |
||||
|
||||
if (chip1 == ERR) { |
||||
rc = ERR_PROG_ERROR; |
||||
goto outahere; |
||||
} |
||||
if (chip1 == TMO) { |
||||
rc = ERR_TIMOUT; |
||||
goto outahere; |
||||
} |
||||
|
||||
printf ("ok.\n"); |
||||
} else { /* it was protected */ |
||||
|
||||
printf ("protected!\n"); |
||||
} |
||||
} |
||||
|
||||
if (ctrlc ()) |
||||
printf ("User Interrupt!\n"); |
||||
|
||||
outahere: |
||||
/* allow flash to settle - wait 10 ms */ |
||||
printf("Waiting 10 ms..."); |
||||
udelay (10000); |
||||
|
||||
/* for (i = 0; i < 10 * 1000 * 1000; ++i)
|
||||
asm(" nop"); |
||||
*/ |
||||
|
||||
printf("done\n"); |
||||
if (iflag) |
||||
enable_interrupts (); |
||||
|
||||
|
||||
return rc; |
||||
} |
||||
|
||||
static int write_word (flash_info_t * info, ulong dest, ulong data) |
||||
{ |
||||
volatile u16 *addr = (volatile u16 *) dest; |
||||
ulong result; |
||||
int rc = ERR_OK; |
||||
int iflag; |
||||
int chip1; |
||||
ulong start; |
||||
|
||||
/*
|
||||
* Check if Flash is (sufficiently) erased |
||||
*/ |
||||
result = *addr; |
||||
if ((result & data) != data) |
||||
return ERR_NOT_ERASED; |
||||
|
||||
|
||||
/*
|
||||
* Disable interrupts which might cause a timeout |
||||
* here. Remember that our exception vectors are |
||||
* at address 0 in the flash, and we don't want a |
||||
* (ticker) exception to happen while the flash |
||||
* chip is in programming mode. |
||||
*/ |
||||
iflag = disable_interrupts (); |
||||
|
||||
MEM_FLASH_ADDR1 = CMD_UNLOCK1; |
||||
MEM_FLASH_ADDR2 = CMD_UNLOCK2; |
||||
MEM_FLASH_ADDR1 = CMD_PROGRAM; |
||||
*addr = data; |
||||
|
||||
/* arm simple, non interrupt dependent timer */ |
||||
start = get_timer(0); |
||||
|
||||
/* wait until flash is ready */ |
||||
chip1 = 0; |
||||
do { |
||||
result = *addr; |
||||
|
||||
/* check timeout */ |
||||
if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT * CONFIG_SYS_HZ / 1000) { |
||||
chip1 = ERR | TMO; |
||||
break; |
||||
} |
||||
if (!chip1 && ((result & 0x80) == (data & 0x80))) |
||||
chip1 = READY; |
||||
|
||||
} while (!chip1); |
||||
|
||||
*addr = CMD_READ_ARRAY; |
||||
|
||||
if (chip1 == ERR || *addr != data) |
||||
rc = ERR_PROG_ERROR; |
||||
|
||||
if (iflag) |
||||
enable_interrupts (); |
||||
|
||||
return rc; |
||||
} |
||||
|
||||
|
||||
int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt) |
||||
{ |
||||
ulong wp, data; |
||||
int rc; |
||||
|
||||
if (addr & 1) { |
||||
printf ("unaligned destination not supported\n"); |
||||
return ERR_ALIGN; |
||||
} |
||||
|
||||
#if 0 |
||||
if (cnt & 1) { |
||||
printf ("odd transfer sizes not supported\n"); |
||||
return ERR_ALIGN; |
||||
} |
||||
#endif |
||||
|
||||
wp = addr; |
||||
|
||||
if (addr & 1) { |
||||
data = (*((volatile u8 *) addr) << 8) | *((volatile u8 *) |
||||
src); |
||||
if ((rc = write_word (info, wp - 1, data)) != 0) { |
||||
return (rc); |
||||
} |
||||
src += 1; |
||||
wp += 1; |
||||
cnt -= 1; |
||||
} |
||||
|
||||
while (cnt >= 2) { |
||||
data = *((volatile u16 *) src); |
||||
if ((rc = write_word (info, wp, data)) != 0) { |
||||
return (rc); |
||||
} |
||||
src += 2; |
||||
wp += 2; |
||||
cnt -= 2; |
||||
} |
||||
|
||||
if (cnt == 1) { |
||||
data = (*((volatile u8 *) src) << 8) | |
||||
*((volatile u8 *) (wp + 1)); |
||||
if ((rc = write_word (info, wp, data)) != 0) { |
||||
return (rc); |
||||
} |
||||
src += 1; |
||||
wp += 1; |
||||
cnt -= 1; |
||||
} |
||||
|
||||
return ERR_OK; |
||||
} |
@ -1,152 +0,0 @@ |
||||
/*
|
||||
* (C) Copyright 2000-2006 |
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de. |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
#include <asm/immap.h> |
||||
|
||||
int checkboard (void) { |
||||
puts ("Board: iDMR\n"); |
||||
return 0; |
||||
}; |
||||
|
||||
phys_size_t initdram (int board_type) { |
||||
int i; |
||||
|
||||
/*
|
||||
* After reset, CS0 is configured to cover entire address space. We |
||||
* need to configure it to its proper values, so that writes to |
||||
* CONFIG_SYS_SDRAM_BASE and vicinity during SDRAM controller setup below do |
||||
* now fall under CS0 (see 16.3.1 of the MCF5271 Reference Manual). |
||||
*/ |
||||
|
||||
/* Flash chipselect, CS0 */ |
||||
/* ;CSAR0: Flash at 0xFF800000 */ |
||||
mbar_writeShort(0x0080, 0xFF80); |
||||
|
||||
/* CSCR0: Flash 6 waits, 16bit */ |
||||
mbar_writeShort(0x008A, 0x1980); |
||||
|
||||
/* CSMR0: Flash 8MB, R/W, valid */ |
||||
mbar_writeLong(0x0084, 0x007F0001); |
||||
|
||||
|
||||
/*
|
||||
* SDRAM configuration proper |
||||
*/ |
||||
|
||||
/*
|
||||
* Address/Data Pin Assignment Reg.: enable address lines 23-21; do |
||||
* not enable data pins D[15:0], as we have 16 bit port to SDRAM |
||||
*/ |
||||
mbar_writeByte(MCF_GPIO_PAR_AD, |
||||
MCF_GPIO_AD_ADDR23 | |
||||
MCF_GPIO_AD_ADDR22 | |
||||
MCF_GPIO_AD_ADDR21); |
||||
|
||||
/* No need to configure BS pins - reset values are OK */ |
||||
|
||||
/* Chip Select Pin Assignment Reg.: set CS[1-7] to GPIO */ |
||||
mbar_writeByte(MCF_GPIO_PAR_CS, 0x00); |
||||
|
||||
/* SDRAM Control Pin Assignment Reg. */ |
||||
mbar_writeByte(MCF_GPIO_PAR_SDRAM, |
||||
MCF_GPIO_SDRAM_CSSDCS_00 | /* no matter: PAR_CS=0 */ |
||||
MCF_GPIO_SDRAM_SDWE | |
||||
MCF_GPIO_SDRAM_SCAS | |
||||
MCF_GPIO_SDRAM_SRAS | |
||||
MCF_GPIO_SDRAM_SCKE | |
||||
MCF_GPIO_SDRAM_SDCS_01); |
||||
|
||||
/*
|
||||
* Wait 100us. We run the bus at 50MHz, one cycle is 20ns. So 5 |
||||
* iterations will do, but we do 10 just to be safe. |
||||
*/ |
||||
for (i = 0; i < 10; ++i) |
||||
asm(" nop"); |
||||
|
||||
|
||||
/* 1. Initialize DRAM Control Register: DCR */ |
||||
mbar_writeShort(MCF_SDRAMC_DCR, |
||||
MCF_SDRAMC_DCR_RTIM(0x10) | /* 65ns */ |
||||
MCF_SDRAMC_DCR_RC(0x60)); /* 1562 cycles */ |
||||
|
||||
|
||||
/*
|
||||
* 2. Initialize DACR0 |
||||
* |
||||
* CL: 11 (CL=3: 0x03, 0x02; CL=2: 0x1) |
||||
* CBM: cmd at A20, bank select bits 21 and up |
||||
* PS: 16 bit |
||||
*/ |
||||
mbar_writeLong(MCF_SDRAMC_DACR0, |
||||
MCF_SDRAMC_DACRn_BA(CONFIG_SYS_SDRAM_BASE>>18) | |
||||
MCF_SDRAMC_DACRn_BA(0x00) | |
||||
MCF_SDRAMC_DACRn_CASL(0x03) | |
||||
MCF_SDRAMC_DACRn_CBM(0x03) | |
||||
MCF_SDRAMC_DACRn_PS(0x03)); |
||||
|
||||
/* Initialize DMR0 */ |
||||
mbar_writeLong(MCF_SDRAMC_DMR0, |
||||
MCF_SDRAMC_DMRn_BAM_16M | |
||||
MCF_SDRAMC_DMRn_V); |
||||
|
||||
|
||||
/* 3. Set IP bit in DACR to initiate PALL command */ |
||||
mbar_writeLong(MCF_SDRAMC_DACR0, |
||||
mbar_readLong(MCF_SDRAMC_DACR0) | |
||||
MCF_SDRAMC_DACRn_IP); |
||||
|
||||
/* Write to this block to initiate precharge */ |
||||
*(volatile u16 *)(CONFIG_SYS_SDRAM_BASE) = 0xa5a5; |
||||
|
||||
/*
|
||||
* Wait at least 20ns to allow banks to precharge (t_RP = 20ns). We |
||||
* wait a wee longer, just to be safe. |
||||
*/ |
||||
for (i = 0; i < 5; ++i) |
||||
asm(" nop"); |
||||
|
||||
|
||||
/* 4. Set RE bit in DACR */ |
||||
mbar_writeLong(MCF_SDRAMC_DACR0, |
||||
mbar_readLong(MCF_SDRAMC_DACR0) | |
||||
MCF_SDRAMC_DACRn_RE); |
||||
|
||||
/*
|
||||
* Wait for at least 8 auto refresh cycles to occur, i.e. at least |
||||
* 781 bus cycles. |
||||
*/ |
||||
for (i = 0; i < 1000; ++i) |
||||
asm(" nop"); |
||||
|
||||
/* Finish the configuration by issuing the MRS */ |
||||
mbar_writeLong(MCF_SDRAMC_DACR0, |
||||
mbar_readLong(MCF_SDRAMC_DACR0) | |
||||
MCF_SDRAMC_DACRn_MRS); |
||||
|
||||
/*
|
||||
* Write to the SDRAM Mode Register A0-A11 = 0x400 |
||||
* |
||||
* Write Burst Mode = Programmed Burst Length |
||||
* Op Mode = Standard Op |
||||
* CAS Latency = 3 |
||||
* Burst Type = Sequential |
||||
* Burst Length = 1 |
||||
*/ |
||||
*(volatile u32 *)(CONFIG_SYS_SDRAM_BASE + 0x1800) = 0xa5a5a5a5; |
||||
|
||||
return CONFIG_SYS_SDRAM_SIZE * 1024 * 1024; |
||||
}; |
||||
|
||||
|
||||
int testdram (void) { |
||||
|
||||
/* TODO: XXX XXX XXX */ |
||||
printf ("DRAM test not implemented!\n"); |
||||
|
||||
return (0); |
||||
} |
@ -1,82 +0,0 @@ |
||||
/* |
||||
* (C) Copyright 2000 |
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de. |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
OUTPUT_ARCH(m68k) |
||||
|
||||
SECTIONS |
||||
{ |
||||
.text : |
||||
{ |
||||
arch/m68k/cpu/mcf52x2/start.o (.text*) |
||||
|
||||
*(.text*) |
||||
} |
||||
_etext = .; |
||||
PROVIDE (etext = .); |
||||
.rodata : |
||||
{ |
||||
*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) |
||||
} |
||||
|
||||
/* Read-write section, merged into data segment: */ |
||||
. = (. + 0x00FF) & 0xFFFFFF00; |
||||
_erotext = .; |
||||
PROVIDE (erotext = .); |
||||
|
||||
.reloc : |
||||
{ |
||||
__got_start = .; |
||||
KEEP(*(.got)) |
||||
__got_end = .; |
||||
_GOT2_TABLE_ = .; |
||||
KEEP(*(.got2)) |
||||
_FIXUP_TABLE_ = .; |
||||
KEEP(*(.fixup)) |
||||
} |
||||
__got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2; |
||||
__fixup_entries = (. - _FIXUP_TABLE_)>>2; |
||||
|
||||
.data : |
||||
{ |
||||
*(.data*) |
||||
*(.sdata*) |
||||
} |
||||
_edata = .; |
||||
PROVIDE (edata = .); |
||||
|
||||
. = .; |
||||
|
||||
. = ALIGN(4); |
||||
.u_boot_list : { |
||||
KEEP(*(SORT(.u_boot_list*))); |
||||
} |
||||
|
||||
. = .; |
||||
__start___ex_table = .; |
||||
__ex_table : { *(__ex_table) } |
||||
__stop___ex_table = .; |
||||
|
||||
. = ALIGN(256); |
||||
__init_begin = .; |
||||
.text.init : { *(.text.init) } |
||||
.data.init : { *(.data.init) } |
||||
. = ALIGN(256); |
||||
__init_end = .; |
||||
|
||||
__bss_start = .; |
||||
.bss (NOLOAD) : |
||||
{ |
||||
_sbss = .; |
||||
*(.bss*) |
||||
*(.sbss*) |
||||
*(COMMON) |
||||
. = ALIGN(4); |
||||
_ebss = .; |
||||
} |
||||
__bss_end = . ; |
||||
PROVIDE (end = .); |
||||
} |
@ -1,234 +0,0 @@ |
||||
/*
|
||||
* Configuation settings for the Freescale M5271EVB |
||||
* |
||||
* Based on MC5272C3 and r5200 board configs |
||||
* (C) Copyright 2006 Lab X Technologies <zachary.landau@labxtechnologies.com> |
||||
* (C) Copyright 2003 Josef Baumgartner <josef.baumgartner@telex.de> |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
/*
|
||||
* board/config.h - configuration options, board specific |
||||
*/ |
||||
|
||||
#ifndef _M5271EVB_H |
||||
#define _M5271EVB_H |
||||
|
||||
/*
|
||||
* High Level Configuration Options (easy to change) |
||||
*/ |
||||
#define CONFIG_MCF52x2 /* define processor family */ |
||||
#define CONFIG_M5271 /* define processor type */ |
||||
#define CONFIG_M5271EVB /* define board type */ |
||||
|
||||
#define CONFIG_MCFTMR |
||||
|
||||
#define CONFIG_MCFUART |
||||
#define CONFIG_SYS_UART_PORT (0) |
||||
#define CONFIG_BAUDRATE 115200 |
||||
|
||||
#undef CONFIG_WATCHDOG /* disable watchdog */ |
||||
|
||||
/* Configuration for environment
|
||||
* Environment is embedded in u-boot in the second sector of the flash |
||||
*/ |
||||
#ifndef CONFIG_MONITOR_IS_IN_RAM |
||||
#define CONFIG_ENV_OFFSET 0x4000 |
||||
#else |
||||
#define CONFIG_ENV_ADDR 0xffe04000 |
||||
#endif |
||||
#define CONFIG_ENV_SECT_SIZE 0x2000 |
||||
#define CONFIG_ENV_IS_IN_FLASH 1 |
||||
#define CONFIG_SYS_USE_PPCENV /* Environment embedded in sect .ppcenv */ |
||||
|
||||
/*
|
||||
* BOOTP options |
||||
*/ |
||||
#define CONFIG_BOOTP_BOOTFILESIZE |
||||
#define CONFIG_BOOTP_BOOTPATH |
||||
#define CONFIG_BOOTP_GATEWAY |
||||
#define CONFIG_BOOTP_HOSTNAME |
||||
|
||||
/*
|
||||
* Command line configuration. |
||||
*/ |
||||
#include <config_cmd_default.h> |
||||
|
||||
#define CONFIG_CMD_CACHE |
||||
#define CONFIG_CMD_PING |
||||
#define CONFIG_CMD_NET |
||||
#define CONFIG_CMD_MII |
||||
#define CONFIG_CMD_ELF |
||||
#define CONFIG_CMD_FLASH |
||||
#define CONFIG_CMD_I2C |
||||
#define CONFIG_CMD_MEMORY |
||||
#define CONFIG_CMD_MISC |
||||
|
||||
#undef CONFIG_CMD_LOADS |
||||
#define CONFIG_CMD_LOADB |
||||
#define CONFIG_CMDLINE_EDITING 1 /* enables command line history */ |
||||
#define CONFIG_SYS_HUSH_PARSER /* Use the HUSH parser */ |
||||
|
||||
#define CONFIG_MCFFEC |
||||
#ifdef CONFIG_MCFFEC |
||||
# define CONFIG_MII 1 |
||||
# define CONFIG_MII_INIT 1 |
||||
# define CONFIG_SYS_DISCOVER_PHY |
||||
# define CONFIG_SYS_RX_ETH_BUFFER 8 |
||||
# define CONFIG_SYS_FAULT_ECHO_LINK_DOWN |
||||
|
||||
# define CONFIG_SYS_FEC0_PINMUX 0 |
||||
# define CONFIG_SYS_FEC0_MIIBASE CONFIG_SYS_FEC0_IOBASE |
||||
# define MCFFEC_TOUT_LOOP 50000 |
||||
/* If CONFIG_SYS_DISCOVER_PHY is not defined - hardcoded */ |
||||
# ifndef CONFIG_SYS_DISCOVER_PHY |
||||
# define FECDUPLEX FULL |
||||
# define FECSPEED _100BASET |
||||
# else |
||||
# ifndef CONFIG_SYS_FAULT_ECHO_LINK_DOWN |
||||
# define CONFIG_SYS_FAULT_ECHO_LINK_DOWN |
||||
# endif |
||||
# endif /* CONFIG_SYS_DISCOVER_PHY */ |
||||
#endif |
||||
|
||||
/* I2C */ |
||||
#define CONFIG_SYS_I2C |
||||
#define CONFIG_SYS_I2C_FSL |
||||
#define CONFIG_SYS_FSL_I2C_SPEED 80000 |
||||
#define CONFIG_SYS_FSL_I2C_SLAVE 0x7F |
||||
#define CONFIG_SYS_FSL_I2C_OFFSET 0x00000300 |
||||
#define CONFIG_SYS_IMMR CONFIG_SYS_MBAR |
||||
|
||||
#define CONFIG_BOOTDELAY 1 /* autoboot after 1 seconds */ |
||||
#define CONFIG_BOOTFILE "u-boot.bin" |
||||
#ifdef CONFIG_MCFFEC |
||||
# define CONFIG_NET_RETRY_COUNT 5 |
||||
# define CONFIG_ETHADDR 00:e0:0c:bc:e5:60 |
||||
# define CONFIG_IPADDR 192.162.1.2 |
||||
# define CONFIG_NETMASK 255.255.255.0 |
||||
# define CONFIG_SERVERIP 192.162.1.1 |
||||
# define CONFIG_GATEWAYIP 192.162.1.1 |
||||
# define CONFIG_OVERWRITE_ETHADDR_ONCE |
||||
#endif /* FEC_ENET */ |
||||
|
||||
#define CONFIG_HOSTNAME M5271EVB |
||||
#define CONFIG_EXTRA_ENV_SETTINGS \ |
||||
"netdev=eth0\0" \
|
||||
"loadaddr=10000\0" \
|
||||
"uboot=u-boot.bin\0" \
|
||||
"load=tftp $loadaddr $uboot\0" \
|
||||
"upd=run load; run prog\0" \
|
||||
"prog=prot off ffe00000 ffe3ffff;" \
|
||||
"era ffe00000 ffe3ffff;" \
|
||||
"cp.b $loadaddr ffe00000 $filesize;" \
|
||||
"save\0" \
|
||||
"" |
||||
|
||||
#define CONFIG_SYS_LONGHELP /* undef to save memory */ |
||||
|
||||
#if defined(CONFIG_CMD_KGDB) |
||||
#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */ |
||||
#else |
||||
#define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */ |
||||
#endif |
||||
#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buffer Size */ |
||||
#define CONFIG_SYS_MAXARGS 16 /* max number of command args */ |
||||
#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot Argument Buffer Size */ |
||||
|
||||
#define CONFIG_SYS_LOAD_ADDR 0x00100000 |
||||
|
||||
#define CONFIG_SYS_MEMTEST_START 0x400 |
||||
#define CONFIG_SYS_MEMTEST_END 0x380000 |
||||
|
||||
#define CONFIG_SYS_HZ 1000000 |
||||
|
||||
/* Clock configuration
|
||||
* The external oscillator is a 25.000 MHz |
||||
* CONFIG_SYS_CLK for ColdFire V2 sets cpu_clk (not bus_clk) |
||||
* bus_clk = (cpu_clk/2) (fixed ratio) |
||||
* |
||||
* If CONFIG_SYS_CLK is changed. the CONFIG_SYS_MCF_SYNCR must be updated to |
||||
* match the new clock speed. Max cpu_clk is 150 MHz. |
||||
*/ |
||||
#define CONFIG_SYS_CLK 100000000 |
||||
#define CONFIG_SYS_MCF_SYNCR (MCF_SYNCR_MFD_4X | MCF_SYNCR_RFD_DIV1) |
||||
|
||||
/*
|
||||
* Low Level Configuration Settings |
||||
* (address mappings, register initial values, etc.) |
||||
* You should know what you are doing if you make changes here. |
||||
*/ |
||||
|
||||
#define CONFIG_SYS_MBAR 0x40000000 /* Register Base Addrs */ |
||||
|
||||
/*
|
||||
* Definitions for initial stack pointer and data area (in DPRAM) |
||||
*/ |
||||
#define CONFIG_SYS_INIT_RAM_ADDR 0x20000000 |
||||
#define CONFIG_SYS_INIT_RAM_SIZE 0x1000 /* Size of used area in internal SRAM */ |
||||
#define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) |
||||
#define CONFIG_SYS_INIT_SP_OFFSET CONFIG_SYS_GBL_DATA_OFFSET |
||||
|
||||
/*
|
||||
* Start addresses for the final memory configuration |
||||
* (Set up by the startup code) |
||||
* Please note that CONFIG_SYS_SDRAM_BASE _must_ start at 0 |
||||
*/ |
||||
#define CONFIG_SYS_SDRAM_BASE 0x00000000 |
||||
#define CONFIG_SYS_SDRAM_SIZE 16 /* SDRAM size in MB */ |
||||
#define CONFIG_SYS_FLASH_BASE 0xffe00000 |
||||
|
||||
#ifdef CONFIG_MONITOR_IS_IN_RAM |
||||
#define CONFIG_SYS_MONITOR_BASE 0x20000 |
||||
#else |
||||
#define CONFIG_SYS_MONITOR_BASE (CONFIG_SYS_FLASH_BASE + 0x400) |
||||
#endif |
||||
|
||||
#define CONFIG_SYS_MONITOR_LEN 0x40000 |
||||
#define CONFIG_SYS_MALLOC_LEN (256 << 10) |
||||
#define CONFIG_SYS_BOOTPARAMS_LEN (64*1024) |
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data |
||||
* have to be in the first 8 MB of memory, since this is |
||||
* the maximum mapped by the Linux kernel during initialization ?? |
||||
*/ |
||||
#define CONFIG_SYS_BOOTMAPSZ (CONFIG_SYS_SDRAM_BASE + (CONFIG_SYS_SDRAM_SIZE << 20)) |
||||
|
||||
/* FLASH organization */ |
||||
#define CONFIG_SYS_MAX_FLASH_BANKS 1 /* max number of memory banks */ |
||||
#define CONFIG_SYS_MAX_FLASH_SECT 11 /* max number of sectors on one chip */ |
||||
#define CONFIG_SYS_FLASH_ERASE_TOUT 1000 |
||||
|
||||
#define CONFIG_SYS_FLASH_CFI 1 |
||||
#define CONFIG_FLASH_CFI_DRIVER 1 |
||||
#define CONFIG_SYS_FLASH_SIZE 0x200000 |
||||
|
||||
/* Cache Configuration */ |
||||
#define CONFIG_SYS_CACHELINE_SIZE 16 |
||||
|
||||
#define ICACHE_STATUS (CONFIG_SYS_INIT_RAM_ADDR + \ |
||||
CONFIG_SYS_INIT_RAM_SIZE - 8) |
||||
#define DCACHE_STATUS (CONFIG_SYS_INIT_RAM_ADDR + \ |
||||
CONFIG_SYS_INIT_RAM_SIZE - 4) |
||||
#define CONFIG_SYS_ICACHE_INV (CF_CACR_CINV | CF_CACR_INVI) |
||||
#define CONFIG_SYS_CACHE_ACR0 (CONFIG_SYS_SDRAM_BASE | \ |
||||
CF_ADDRMASK(CONFIG_SYS_SDRAM_SIZE) | \
|
||||
CF_ACR_EN | CF_ACR_SM_ALL) |
||||
#define CONFIG_SYS_CACHE_ICACR (CF_CACR_CENB | CF_CACR_CINV | \ |
||||
CF_CACR_DISD | CF_CACR_INVI | \
|
||||
CF_CACR_CEIB | CF_CACR_DCM | \
|
||||
CF_CACR_EUSP) |
||||
|
||||
/* Chip Select 0 : Boot Flash */ |
||||
#define CONFIG_SYS_CS0_BASE 0xFFE00000 |
||||
#define CONFIG_SYS_CS0_MASK 0x001F0001 |
||||
#define CONFIG_SYS_CS0_CTRL 0x00001980 |
||||
|
||||
/* Chip Select 1 : External SRAM */ |
||||
#define CONFIG_SYS_CS1_BASE 0x30000000 |
||||
#define CONFIG_SYS_CS1_MASK 0x00070001 |
||||
#define CONFIG_SYS_CS1_CTRL 0x00001900 |
||||
|
||||
#endif /* _M5271EVB_H */ |
@ -1,240 +0,0 @@ |
||||
/*
|
||||
* Configuration settings for the iDMR board |
||||
* |
||||
* Based on MC5272C3, r5200 and M5271EVB board configs |
||||
* (C) Copyright 2006 Wolfgang Denk, DENX Software Engineering, wd@denx.de. |
||||
* (C) Copyright 2006 Lab X Technologies <zachary.landau@labxtechnologies.com> |
||||
* (C) Copyright 2003 Josef Baumgartner <josef.baumgartner@telex.de> |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#ifndef _IDMR_H |
||||
#define _IDMR_H |
||||
|
||||
|
||||
/*
|
||||
* High Level Configuration Options (easy to change) |
||||
*/ |
||||
|
||||
#define CONFIG_MCF52x2 /* define processor family */ |
||||
#define CONFIG_M5271 /* define processor type */ |
||||
#define CONFIG_IDMR /* define board type */ |
||||
|
||||
#undef CONFIG_WATCHDOG /* disable watchdog */ |
||||
|
||||
/*
|
||||
* Default environment settings |
||||
*/ |
||||
#define CONFIG_BOOTCOMMAND "run net_nfs" |
||||
#define CONFIG_BOOTDELAY 5 |
||||
#define CONFIG_MCFUART |
||||
#define CONFIG_SYS_UART_PORT (0) |
||||
#define CONFIG_BAUDRATE 19200 |
||||
#define CONFIG_ETHADDR 00:06:3b:01:41:55 |
||||
#define CONFIG_ETHPRIME |
||||
#define CONFIG_IPADDR 192.168.30.1 |
||||
#define CONFIG_SERVERIP 192.168.1.1 |
||||
#define CONFIG_ROOTPATH "" |
||||
#define CONFIG_GATEWAYIP 192.168.1.1 |
||||
#define CONFIG_NETMASK 255.255.0.0 |
||||
#define CONFIG_HOSTNAME idmr |
||||
#define CONFIG_BOOTFILE "/tftpboot/idmr/uImage" |
||||
#define CONFIG_PREBOOT "echo;echo Type \\\"run flash_nfs\\\" to mount root " \ |
||||
"filesystem over NFS; echo" |
||||
|
||||
#define CONFIG_MCFTMR |
||||
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \ |
||||
"netdev=eth0\0" \
|
||||
"ramargs=setenv bootargs root=/dev/ram rw\0" \
|
||||
"addip=setenv bootargs $(bootargs) " \
|
||||
"ip=$(ipaddr):$(serverip):$(gatewayip):" \
|
||||
"$(netmask):$(hostname):$(netdev):off panic=1\0" \
|
||||
"flash_nfs=run nfsargs addip;bootm $(kernel_addr)\0" \
|
||||
"flash_self=run ramargs addip;bootm $(kernel_addr) " \
|
||||
"$(ramdisk_addr)\0" \
|
||||
"net_nfs=tftp 200000 $(bootfile);run nfsargs addip;bootm\0" \
|
||||
"nfsargs=setenv bootargs root=/dev/nfs rw " \
|
||||
"nfsroot=$(serverip):$(rootpath)\0" \
|
||||
"ethact=FEC\0 " \
|
||||
"update=prot off ff800000 ff81ffff; era ff800000 ff81ffff; " \
|
||||
"cp.b 200000 ff800000 $(filesize);" \
|
||||
"prot on ff800000 ff81ffff\0" \
|
||||
"load=tftp 200000 $(u-boot)\0" \
|
||||
"u-boot=/tftpboot/idmr/u-boot.bin\0" \
|
||||
"" |
||||
|
||||
|
||||
/*
|
||||
* BOOTP options |
||||
*/ |
||||
#define CONFIG_BOOTP_BOOTFILESIZE |
||||
#define CONFIG_BOOTP_BOOTPATH |
||||
#define CONFIG_BOOTP_GATEWAY |
||||
#define CONFIG_BOOTP_HOSTNAME |
||||
|
||||
|
||||
/*
|
||||
* Command line configuration. |
||||
*/ |
||||
#include <config_cmd_default.h> |
||||
|
||||
#define CONFIG_CMD_PING |
||||
#define CONFIG_CMD_JFFS2 |
||||
#define CONFIG_CMD_NET |
||||
|
||||
#undef CONFIG_CMD_LOADS |
||||
#undef CONFIG_CMD_LOADB |
||||
|
||||
|
||||
/*
|
||||
* Low Level Configuration Settings |
||||
* (address mappings, register initial values, etc.) |
||||
* You should know what you are doing if you make changes here. |
||||
*/ |
||||
|
||||
/*
|
||||
* Configuration for environment, which occupies third sector in flash. |
||||
*/ |
||||
#ifndef CONFIG_MONITOR_IS_IN_RAM |
||||
#define CONFIG_ENV_ADDR 0xff820000 |
||||
#define CONFIG_ENV_SECT_SIZE 0x10000 |
||||
#define CONFIG_ENV_SIZE 0x2000 |
||||
#define CONFIG_ENV_IS_IN_FLASH |
||||
#else /* CONFIG_MONITOR_IS_IN_RAM */ |
||||
#define CONFIG_ENV_OFFSET 0x4000 |
||||
#define CONFIG_ENV_SECT_SIZE 0x2000 |
||||
#define CONFIG_ENV_IS_IN_FLASH |
||||
#endif /* !CONFIG_MONITOR_IS_IN_RAM */ |
||||
|
||||
#define CONFIG_SYS_USE_PPCENV /* Environment embedded in sect .ppcenv */ |
||||
|
||||
#define CONFIG_SYS_LONGHELP /* undef to save memory */ |
||||
|
||||
#if defined(CONFIG_CMD_KGDB) |
||||
#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */ |
||||
#else |
||||
#define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */ |
||||
#endif |
||||
|
||||
#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buffer Size */ |
||||
#define CONFIG_SYS_MAXARGS 16 /* max number of command args */ |
||||
#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot Argument Buffer Size */ |
||||
|
||||
#define CONFIG_SYS_LOAD_ADDR 0x00100000 |
||||
|
||||
#define CONFIG_SYS_MEMTEST_START 0x400 |
||||
#define CONFIG_SYS_MEMTEST_END 0x380000 |
||||
|
||||
#define CONFIG_SYS_HZ (50000000 / 64) |
||||
#define CONFIG_SYS_CLK 100000000 |
||||
|
||||
#define CONFIG_SYS_MBAR 0x40000000 /* Register Base Addrs */ |
||||
|
||||
/*
|
||||
* Ethernet |
||||
*/ |
||||
#define CONFIG_MCFFEC |
||||
#ifdef CONFIG_MCFFEC |
||||
# define CONFIG_MII 1 |
||||
# define CONFIG_MII_INIT 1 |
||||
# define CONFIG_SYS_DISCOVER_PHY |
||||
# define CONFIG_SYS_RX_ETH_BUFFER 8 |
||||
# define CONFIG_SYS_FAULT_ECHO_LINK_DOWN |
||||
|
||||
# define CONFIG_SYS_FEC0_PINMUX 0 |
||||
# define CONFIG_SYS_FEC0_MIIBASE CONFIG_SYS_FEC0_IOBASE |
||||
# define MCFFEC_TOUT_LOOP 50000 |
||||
/* If CONFIG_SYS_DISCOVER_PHY is not defined - hardcoded */ |
||||
# ifndef CONFIG_SYS_DISCOVER_PHY |
||||
# define FECDUPLEX FULL |
||||
# define FECSPEED _100BASET |
||||
# else |
||||
# ifndef CONFIG_SYS_FAULT_ECHO_LINK_DOWN |
||||
# define CONFIG_SYS_FAULT_ECHO_LINK_DOWN |
||||
# endif |
||||
# endif /* CONFIG_SYS_DISCOVER_PHY */ |
||||
#endif |
||||
|
||||
/*
|
||||
* Definitions for initial stack pointer and data area (in DPRAM) |
||||
*/ |
||||
#define CONFIG_SYS_INIT_RAM_ADDR 0x20000000 |
||||
#define CONFIG_SYS_INIT_RAM_SIZE 0x1000 /* Size of used area in internal SRAM */ |
||||
#define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) |
||||
#define CONFIG_SYS_INIT_SP_OFFSET CONFIG_SYS_GBL_DATA_OFFSET |
||||
|
||||
/*
|
||||
* Start addresses for the final memory configuration |
||||
* (Set up by the startup code) |
||||
* Please note that CONFIG_SYS_SDRAM_BASE _must_ start at 0 |
||||
*/ |
||||
#define CONFIG_SYS_SDRAM_BASE 0x00000000 |
||||
#define CONFIG_SYS_SDRAM_SIZE 16 /* SDRAM size in MB */ |
||||
#define CONFIG_SYS_FLASH_BASE 0xff800000 |
||||
|
||||
#ifdef CONFIG_MONITOR_IS_IN_RAM |
||||
#define CONFIG_SYS_MONITOR_BASE 0x20000 |
||||
#else /* !CONFIG_MONITOR_IS_IN_RAM */ |
||||
#define CONFIG_SYS_MONITOR_BASE (CONFIG_SYS_FLASH_BASE + 0x400) |
||||
#endif /* CONFIG_MONITOR_IS_IN_RAM */ |
||||
|
||||
#define CONFIG_SYS_MONITOR_LEN 0x20000 |
||||
#define CONFIG_SYS_MALLOC_LEN (256 << 10) |
||||
#define CONFIG_SYS_BOOTPARAMS_LEN (64*1024) |
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data |
||||
* have to be in the first 8 MB of memory, since this is |
||||
* the maximum mapped by the Linux kernel during initialization ?? |
||||
*/ |
||||
#define CONFIG_SYS_BOOTMAPSZ (CONFIG_SYS_SDRAM_BASE + (CONFIG_SYS_SDRAM_SIZE << 20)) |
||||
|
||||
/* FLASH organization */ |
||||
#define CONFIG_SYS_MAX_FLASH_BANKS 1 /* max number of memory banks */ |
||||
#define CONFIG_SYS_MAX_FLASH_SECT 128 /* max number of sectors on one chip */ |
||||
#define CONFIG_SYS_FLASH_ERASE_TOUT 1000 |
||||
|
||||
#define CONFIG_SYS_FLASH_SIZE 0x800000 |
||||
/*
|
||||
* #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1 |
||||
*/ |
||||
|
||||
/* Cache Configuration */ |
||||
#define CONFIG_SYS_CACHELINE_SIZE 16 |
||||
|
||||
#define ICACHE_STATUS (CONFIG_SYS_INIT_RAM_ADDR + \ |
||||
CONFIG_SYS_INIT_RAM_SIZE - 8) |
||||
#define DCACHE_STATUS (CONFIG_SYS_INIT_RAM_ADDR + \ |
||||
CONFIG_SYS_INIT_RAM_SIZE - 4) |
||||
#define CONFIG_SYS_ICACHE_INV (CF_CACR_CINV | CF_CACR_INVI) |
||||
#define CONFIG_SYS_CACHE_ACR0 (CONFIG_SYS_SDRAM_BASE | \ |
||||
CF_ADDRMASK(CONFIG_SYS_SDRAM_SIZE) | \
|
||||
CF_ACR_EN | CF_ACR_SM_ALL) |
||||
#define CONFIG_SYS_CACHE_ICACR (CF_CACR_CENB | CF_CACR_CINV | \ |
||||
CF_CACR_DISD | CF_CACR_INVI | \
|
||||
CF_CACR_CEIB | CF_CACR_DCM | \
|
||||
CF_CACR_EUSP) |
||||
|
||||
/* Port configuration */ |
||||
#define CONFIG_SYS_FECI2C 0xF0 |
||||
|
||||
|
||||
/* Dynamic MTD partition support */ |
||||
#define CONFIG_CMD_MTDPARTS |
||||
#define CONFIG_MTD_DEVICE /* needed for mtdparts commands */ |
||||
#define CONFIG_FLASH_CFI_MTD |
||||
#define MTDIDS_DEFAULT "nor0=idmr-0" |
||||
|
||||
#define MTDPARTS_DEFAULT "mtdparts=idmr-0:128k(u-boot)," \ |
||||
"64k(env)," \
|
||||
"640k(kernel)," \
|
||||
"2m(rootfs)," \
|
||||
"-(user)"; |
||||
|
||||
#if defined(CONFIG_CMD_MII) |
||||
#error "MII commands don't work on iDMR board and should not be enabled." |
||||
#endif |
||||
|
||||
#endif /* _IDMR_H */ |
Loading…
Reference in new issue