Patch by Murray Jensen, 20 Jun 2003:
- hymod update - cleanup (especially for gcc-3.x compilers)
This commit is contained in:
parent
72755c7137
commit
592c5cabe7
|
@ -2,6 +2,10 @@
|
||||||
Changes since U-Boot 0.3.1:
|
Changes since U-Boot 0.3.1:
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
|
* Patch by Murray Jensen, 20 Jun 2003:
|
||||||
|
- hymod update
|
||||||
|
- cleanup (especially for gcc-3.x compilers)
|
||||||
|
|
||||||
* Patch by Tom Guilliams, 20 Jun 2003:
|
* Patch by Tom Guilliams, 20 Jun 2003:
|
||||||
added CONFIG_750FX support for IBM 750FX processors
|
added CONFIG_750FX support for IBM 750FX processors
|
||||||
|
|
||||||
|
|
8
MAKEALL
8
MAKEALL
|
@ -58,11 +58,11 @@ LIST_4xx=" \
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
LIST_824x=" \
|
LIST_824x=" \
|
||||||
A3000 BMW CPC45 CU824 \
|
A3000 BMW CPC45 CU824 \
|
||||||
MOUSSE MUSENKI OXC PN62 \
|
MOUSSE MUSENKI OXC PN62 \
|
||||||
Sandpoint8240 Sandpoint8245 utx8245 \
|
Sandpoint8240 Sandpoint8245 utx8245 \
|
||||||
"
|
"
|
||||||
x
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
## MPC8260 Systems (includes 8250, 8255 etc.)
|
## MPC8260 Systems (includes 8250, 8255 etc.)
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
|
@ -27,6 +27,6 @@
|
||||||
|
|
||||||
TEXT_BASE = 0x40000000
|
TEXT_BASE = 0x40000000
|
||||||
|
|
||||||
PLATFORM_CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE) -I$(TOPDIR)
|
PLATFORM_CPPFLAGS += -I$(TOPDIR)
|
||||||
|
|
||||||
OBJCFLAGS = --remove-section=.ppcenv
|
OBJCFLAGS = --remove-section=.ppcenv
|
||||||
|
|
|
@ -39,62 +39,61 @@ hymod_eeprom_load (int which, hymod_eeprom_t *ep)
|
||||||
unsigned dev_addr = CFG_I2C_EEPROM_ADDR | \
|
unsigned dev_addr = CFG_I2C_EEPROM_ADDR | \
|
||||||
(which ? HYMOD_EEOFF_MEZZ : HYMOD_EEOFF_MAIN);
|
(which ? HYMOD_EEOFF_MEZZ : HYMOD_EEOFF_MAIN);
|
||||||
unsigned offset = 0;
|
unsigned offset = 0;
|
||||||
uchar data[HYMOD_EEPROM_SIZE], *dp, *edp;
|
uchar data[HYMOD_EEPROM_MAXLEN], *dp, *edp;
|
||||||
hymod_eehdr_t *hp;
|
hymod_eehdr_t hdr;
|
||||||
ulong len, crc;
|
ulong len, crc;
|
||||||
|
|
||||||
memset (ep, 0, sizeof *ep);
|
memset (ep, 0, sizeof *ep);
|
||||||
memset (data, 0, HYMOD_EEPROM_SIZE);
|
|
||||||
crc = 0;
|
|
||||||
|
|
||||||
hp = (hymod_eehdr_t *)data;
|
eeprom_read (dev_addr, offset, (uchar *)&hdr, sizeof (hdr));
|
||||||
eeprom_read (dev_addr, offset, (uchar *)hp, sizeof (*hp));
|
offset += sizeof (hdr);
|
||||||
offset += sizeof (*hp);
|
|
||||||
|
|
||||||
if (hp->id != HYMOD_EEPROM_ID || hp->ver > HYMOD_EEPROM_VER ||
|
if (hdr.id != HYMOD_EEPROM_ID || hdr.ver > HYMOD_EEPROM_VER ||
|
||||||
(len = hp->len) > HYMOD_EEPROM_MAXLEN)
|
(len = hdr.len) > HYMOD_EEPROM_MAXLEN)
|
||||||
return (0);
|
return (0);
|
||||||
|
|
||||||
dp = (uchar *)(hp + 1); edp = dp + len;
|
eeprom_read (dev_addr, offset, data, len);
|
||||||
eeprom_read (dev_addr, offset, dp, len);
|
|
||||||
offset += len;
|
offset += len;
|
||||||
|
|
||||||
eeprom_read (dev_addr, offset, (uchar *)&crc, sizeof (ulong));
|
eeprom_read (dev_addr, offset, (uchar *)&crc, sizeof (ulong));
|
||||||
|
offset += sizeof (ulong);
|
||||||
|
|
||||||
if (crc32 (0, data, edp - data) != crc)
|
if (crc32 (crc32 (0, (char *)&hdr, sizeof hdr), data, len) != crc)
|
||||||
return (0);
|
return (0);
|
||||||
|
|
||||||
ep->ver = hp->ver;
|
ep->ver = hdr.ver;
|
||||||
|
dp = data; edp = dp + len;
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
hymod_eerec_t *rp = (hymod_eerec_t *)dp;
|
|
||||||
ulong rtyp;
|
ulong rtyp;
|
||||||
uchar rlen, *rdat;
|
uchar rlen, *rdat;
|
||||||
uint rsiz;
|
|
||||||
|
|
||||||
if (rp->small.topbit == 0) {
|
rtyp = *dp++;
|
||||||
rtyp = rp->small.type;
|
if ((rtyp & 0x80) == 0)
|
||||||
rlen = rp->small.len;
|
rlen = *dp++;
|
||||||
rdat = rp->small.data;
|
|
||||||
rsiz = offsetof (hymod_eerec_t, small.data) + rlen;
|
|
||||||
}
|
|
||||||
else if (rp->medium.nxtbit == 0) {
|
|
||||||
rtyp = rp->medium.type;
|
|
||||||
rlen = rp->medium.len;
|
|
||||||
rdat = rp->medium.data;
|
|
||||||
rsiz = offsetof (hymod_eerec_t, medium.data) + rlen;
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
rtyp = rp->large.type;
|
uchar islarge = rtyp & 0x40;
|
||||||
rlen = rp->large.len;
|
|
||||||
rdat = rp->large.data;
|
rtyp = ((rtyp & 0x3f) << 8) | *dp++;
|
||||||
rsiz = offsetof (hymod_eerec_t, large.data) + rlen;
|
if (islarge) {
|
||||||
|
rtyp = (rtyp << 8) | *dp++;
|
||||||
|
rtyp = (rtyp << 8) | *dp++;
|
||||||
|
}
|
||||||
|
|
||||||
|
rlen = *dp++;
|
||||||
|
rlen = (rlen << 8) | *dp++;
|
||||||
|
if (islarge) {
|
||||||
|
rlen = (rlen << 8) | *dp++;
|
||||||
|
rlen = (rlen << 8) | *dp++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rtyp == 0)
|
if (rtyp == 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
dp += rsiz;
|
rdat = dp;
|
||||||
|
dp += rlen;
|
||||||
|
|
||||||
if (dp > edp) /* error? */
|
if (dp > edp) /* error? */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -102,12 +101,20 @@ hymod_eeprom_load (int which, hymod_eeprom_t *ep)
|
||||||
|
|
||||||
case HYMOD_EEREC_SERNO: /* serial number */
|
case HYMOD_EEREC_SERNO: /* serial number */
|
||||||
if (rlen == sizeof (ulong))
|
if (rlen == sizeof (ulong))
|
||||||
memcpy (&ep->serno, rdat, sizeof (ulong));
|
ep->serno = \
|
||||||
|
((ulong)rdat[0] << 24) | \
|
||||||
|
((ulong)rdat[1] << 16) | \
|
||||||
|
((ulong)rdat[2] << 8) | \
|
||||||
|
(ulong)rdat[3];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HYMOD_EEREC_DATE: /* date */
|
case HYMOD_EEREC_DATE: /* date */
|
||||||
if (rlen == sizeof (hymod_date_t))
|
if (rlen == sizeof (hymod_date_t)) {
|
||||||
memcpy (&ep->date, rdat, sizeof (hymod_date_t));
|
ep->date.year = ((ushort)rdat[0] << 8) | \
|
||||||
|
(ushort)rdat[1];
|
||||||
|
ep->date.month = rdat[2];
|
||||||
|
ep->date.day = rdat[3];
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HYMOD_EEREC_BATCH: /* batch */
|
case HYMOD_EEREC_BATCH: /* batch */
|
||||||
|
@ -250,18 +257,13 @@ eerec_map_t;
|
||||||
static uchar *
|
static uchar *
|
||||||
uint_handler (eerec_map_t *rp, uchar *val, uchar *dp, uchar *edp)
|
uint_handler (eerec_map_t *rp, uchar *val, uchar *dp, uchar *edp)
|
||||||
{
|
{
|
||||||
uchar *eval;
|
char *eval;
|
||||||
union {
|
ulong lval;
|
||||||
uchar cval[4];
|
|
||||||
ushort sval[2];
|
|
||||||
ulong lval;
|
|
||||||
} rdata;
|
|
||||||
|
|
||||||
rdata.lval = simple_strtol (val, (char **)&eval, 10);
|
lval = simple_strtol (val, &eval, 10);
|
||||||
|
|
||||||
if (eval == val || *eval != '\0') {
|
if ((uchar *)eval == val || *eval != '\0') {
|
||||||
printf ("%s rec (%s) is not a valid uint\n",
|
printf ("%s rec (%s) is not a valid uint\n", rp->name, val);
|
||||||
rp->name, val);
|
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -276,27 +278,29 @@ uint_handler (eerec_map_t *rp, uchar *val, uchar *dp, uchar *edp)
|
||||||
switch (rp->length) {
|
switch (rp->length) {
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
if (rdata.lval >= 256) {
|
if (lval >= 256) {
|
||||||
printf ("%s rec value (%lu) out of range (0-255)\n",
|
printf ("%s rec value (%lu) out of range (0-255)\n",
|
||||||
rp->name, rdata.lval);
|
rp->name, lval);
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
*dp++ = rdata.cval[3];
|
*dp++ = lval;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
if (rdata.lval >= 65536) {
|
if (lval >= 65536) {
|
||||||
printf ("%s rec value (%lu) out of range (0-65535)\n",
|
printf ("%s rec value (%lu) out of range (0-65535)\n",
|
||||||
rp->name, rdata.lval);
|
rp->name, lval);
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
memcpy (dp, &rdata.sval[1], 2);
|
*dp++ = lval >> 8;
|
||||||
dp += 2;
|
*dp++ = lval;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
memcpy (dp, &rdata.lval, 4);
|
*dp++ = lval >> 24;
|
||||||
dp += 4;
|
*dp++ = lval >> 16;
|
||||||
|
*dp++ = lval >> 8;
|
||||||
|
*dp++ = lval;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -311,32 +315,41 @@ static uchar *
|
||||||
date_handler (eerec_map_t *rp, uchar *val, uchar *dp, uchar *edp)
|
date_handler (eerec_map_t *rp, uchar *val, uchar *dp, uchar *edp)
|
||||||
{
|
{
|
||||||
hymod_date_t date;
|
hymod_date_t date;
|
||||||
uchar *p = val, *ep;
|
uchar *p = val;
|
||||||
|
char *ep;
|
||||||
|
ulong lval;
|
||||||
|
|
||||||
date.year = simple_strtol (p, (char **)&ep, 10);
|
lval = simple_strtol (p, &ep, 10);
|
||||||
if (ep == p || *ep++ != '-') {
|
if ((uchar *)ep == p || *ep++ != '-') {
|
||||||
bad_date:
|
bad_date:
|
||||||
printf ("%s rec (%s) is not a valid date\n", rp->name, val);
|
printf ("%s rec (%s) is not a valid date\n", rp->name, val);
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
if (lval >= 65536)
|
||||||
date.month = simple_strtol (p = ep, (char **)&ep, 10);
|
|
||||||
if (ep == p || *ep++ != '-' || date.month == 0 || date.month > 12)
|
|
||||||
goto bad_date;
|
goto bad_date;
|
||||||
|
date.year = lval;
|
||||||
|
|
||||||
date.day = simple_strtol (p = ep, (char **)&ep, 10);
|
lval = simple_strtol (p = ep, &ep, 10);
|
||||||
if (ep == p || *ep != '\0' || date.day == 0 || date.day > 31)
|
if ((uchar *)ep == p || *ep++ != '-' || lval == 0 || lval > 12)
|
||||||
goto bad_date;
|
goto bad_date;
|
||||||
|
date.month = lval;
|
||||||
|
|
||||||
if (dp + 2 + sizeof (hymod_date_t) > edp) {
|
lval = simple_strtol (p = ep, &ep, 10);
|
||||||
|
if ((uchar *)ep == p || *ep != '\0' || lval == 0 || lval > 31)
|
||||||
|
goto bad_date;
|
||||||
|
date.day = lval;
|
||||||
|
|
||||||
|
if (dp + 2 + rp->length > edp) {
|
||||||
printf ("can't fit %s rec into eeprom\n", rp->name);
|
printf ("can't fit %s rec into eeprom\n", rp->name);
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
*dp++ = rp->type;
|
*dp++ = rp->type;
|
||||||
*dp++ = sizeof (hymod_date_t);
|
*dp++ = rp->length;
|
||||||
memcpy (dp, &date, sizeof (hymod_date_t));
|
*dp++ = date.year >> 8;
|
||||||
dp += sizeof (hymod_date_t);
|
*dp++ = date.year;
|
||||||
|
*dp++ = date.month;
|
||||||
|
*dp++ = date.day;
|
||||||
|
|
||||||
return (dp);
|
return (dp);
|
||||||
}
|
}
|
||||||
|
@ -368,29 +381,28 @@ string_handler (eerec_map_t *rp, uchar *val, uchar *dp, uchar *edp)
|
||||||
static uchar *
|
static uchar *
|
||||||
bytes_handler (eerec_map_t *rp, uchar *val, uchar *dp, uchar *edp)
|
bytes_handler (eerec_map_t *rp, uchar *val, uchar *dp, uchar *edp)
|
||||||
{
|
{
|
||||||
uchar bytes[HYMOD_MAX_BYTES], nbytes = 0;
|
uchar bytes[HYMOD_MAX_BYTES], nbytes, *p;
|
||||||
uchar *p = val, *ep;
|
char *ep;
|
||||||
|
|
||||||
for (;;) {
|
for (nbytes = 0, p = val; *p != '\0'; p = (uchar *)ep) {
|
||||||
|
ulong lval;
|
||||||
|
|
||||||
|
lval = simple_strtol (p, &ep, 10);
|
||||||
|
if ((uchar *)ep == p || (*ep != '\0' && *ep != ',') || \
|
||||||
|
lval >= 256) {
|
||||||
|
printf ("%s rec (%s) byte array has invalid uint\n",
|
||||||
|
rp->name, val);
|
||||||
|
return (NULL);
|
||||||
|
}
|
||||||
if (nbytes >= HYMOD_MAX_BYTES) {
|
if (nbytes >= HYMOD_MAX_BYTES) {
|
||||||
printf ("%s rec (%s) byte array too long\n",
|
printf ("%s rec (%s) byte array too long\n",
|
||||||
rp->name, val);
|
rp->name, val);
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
bytes[nbytes++] = lval;
|
||||||
|
|
||||||
bytes[nbytes++] = simple_strtol (p, (char **)&ep, 10);
|
if (*ep != '\0')
|
||||||
|
ep++;
|
||||||
if (ep == p || (*ep != '\0' && *ep != ',')) {
|
|
||||||
printf ("%s rec (%s) byte array has invalid uint\n",
|
|
||||||
rp->name, val);
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (*ep++ == '\0')
|
|
||||||
break;
|
|
||||||
|
|
||||||
p = ep;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dp + 2 + nbytes > edp) {
|
if (dp + 2 + nbytes > edp) {
|
||||||
|
@ -459,6 +471,7 @@ hymod_eeprom_fetch(int which, char *filename, ulong addr)
|
||||||
hymod_eehdr_t *hp = (hymod_eehdr_t *)&data[0];
|
hymod_eehdr_t *hp = (hymod_eehdr_t *)&data[0];
|
||||||
ulong crc;
|
ulong crc;
|
||||||
|
|
||||||
|
memset (hp, 0, sizeof *hp);
|
||||||
hp->id = HYMOD_EEPROM_ID;
|
hp->id = HYMOD_EEPROM_ID;
|
||||||
hp->ver = HYMOD_EEPROM_VER;
|
hp->ver = HYMOD_EEPROM_VER;
|
||||||
|
|
||||||
|
|
|
@ -43,29 +43,26 @@ flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */
|
||||||
* in the flash_info entry "fip". Fatal error if nothing there.
|
* in the flash_info entry "fip". Fatal error if nothing there.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
bank_probe (flash_info_t *fip, bank_addr_t base)
|
bank_probe (flash_info_t *fip, volatile bank_addr_t base)
|
||||||
{
|
{
|
||||||
bank_addr_t addr;
|
volatile bank_addr_t addr;
|
||||||
bank_word_t word;
|
bank_word_t word;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* reset the flash */
|
/* reset the flash */
|
||||||
*base = BANK_CMD_RST;
|
*base = BANK_CMD_RST;
|
||||||
|
|
||||||
/* check the manufacturer id - must be intel */
|
/* put flash into read id mode */
|
||||||
*base = BANK_CMD_RD_ID;
|
*base = BANK_CMD_RD_ID;
|
||||||
word = *BANK_REG_MAN_CODE (base);
|
|
||||||
*base = BANK_CMD_RST;
|
|
||||||
|
|
||||||
|
/* check the manufacturer id - must be intel */
|
||||||
|
word = *BANK_REG_MAN_CODE (base);
|
||||||
if (word != BANK_FILL_WORD (INTEL_MANUFACT&0xff))
|
if (word != BANK_FILL_WORD (INTEL_MANUFACT&0xff))
|
||||||
panic ("\nbad manufacturer's code (0x%08lx) at addr 0x%08lx",
|
panic ("\nbad manufacturer's code (0x%08lx) at addr 0x%08lx",
|
||||||
(unsigned long)word, (unsigned long)base);
|
(unsigned long)word, (unsigned long)base);
|
||||||
|
|
||||||
/* check the device id */
|
/* check the device id */
|
||||||
*base = BANK_CMD_RD_ID;
|
|
||||||
word = *BANK_REG_DEV_CODE (base);
|
word = *BANK_REG_DEV_CODE (base);
|
||||||
*base = BANK_CMD_RST;
|
|
||||||
|
|
||||||
switch (word) {
|
switch (word) {
|
||||||
|
|
||||||
case BANK_FILL_WORD (INTEL_ID_28F320J5&0xff):
|
case BANK_FILL_WORD (INTEL_ID_28F320J5&0xff):
|
||||||
|
@ -110,12 +107,15 @@ bank_probe (flash_info_t *fip, bank_addr_t base)
|
||||||
}
|
}
|
||||||
|
|
||||||
fip->size = (bank_size_t)addr - (bank_size_t)base;
|
fip->size = (bank_size_t)addr - (bank_size_t)base;
|
||||||
|
|
||||||
|
/* reset the flash */
|
||||||
|
*base = BANK_CMD_RST;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
bank_reset (flash_info_t *info, int sect)
|
bank_reset (flash_info_t *info, int sect)
|
||||||
{
|
{
|
||||||
bank_addr_t addr = (bank_addr_t)info->start[sect];
|
volatile bank_addr_t addr = (bank_addr_t)info->start[sect];
|
||||||
|
|
||||||
#ifdef FLASH_DEBUG
|
#ifdef FLASH_DEBUG
|
||||||
printf ("writing reset cmd to addr 0x%08lx\n", (unsigned long)addr);
|
printf ("writing reset cmd to addr 0x%08lx\n", (unsigned long)addr);
|
||||||
|
@ -127,7 +127,7 @@ bank_reset (flash_info_t *info, int sect)
|
||||||
static void
|
static void
|
||||||
bank_erase_init (flash_info_t *info, int sect)
|
bank_erase_init (flash_info_t *info, int sect)
|
||||||
{
|
{
|
||||||
bank_addr_t addr = (bank_addr_t)info->start[sect];
|
volatile bank_addr_t addr = (bank_addr_t)info->start[sect];
|
||||||
int flag;
|
int flag;
|
||||||
|
|
||||||
#ifdef FLASH_DEBUG
|
#ifdef FLASH_DEBUG
|
||||||
|
@ -152,7 +152,7 @@ bank_erase_init (flash_info_t *info, int sect)
|
||||||
static int
|
static int
|
||||||
bank_erase_poll (flash_info_t *info, int sect)
|
bank_erase_poll (flash_info_t *info, int sect)
|
||||||
{
|
{
|
||||||
bank_addr_t addr = (bank_addr_t)info->start[sect];
|
volatile bank_addr_t addr = (bank_addr_t)info->start[sect];
|
||||||
bank_word_t stat = *addr;
|
bank_word_t stat = *addr;
|
||||||
|
|
||||||
#ifdef FLASH_DEBUG
|
#ifdef FLASH_DEBUG
|
||||||
|
@ -176,7 +176,7 @@ bank_erase_poll (flash_info_t *info, int sect)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
bank_write_word (bank_addr_t addr, bank_word_t value)
|
bank_write_word (volatile bank_addr_t addr, bank_word_t value)
|
||||||
{
|
{
|
||||||
bank_word_t stat;
|
bank_word_t stat;
|
||||||
ulong start;
|
ulong start;
|
||||||
|
|
|
@ -92,7 +92,7 @@ typedef bank_word_t bank_blk_t[32 * 1024];
|
||||||
#endif /* EXAMPLE */
|
#endif /* EXAMPLE */
|
||||||
|
|
||||||
/* the sizes of these two types should probably be the same */
|
/* the sizes of these two types should probably be the same */
|
||||||
typedef volatile bank_word_t *bank_addr_t;
|
typedef bank_word_t *bank_addr_t;
|
||||||
typedef unsigned long bank_size_t;
|
typedef unsigned long bank_size_t;
|
||||||
|
|
||||||
/* align bank addresses and sizes to bank word boundaries */
|
/* align bank addresses and sizes to bank word boundaries */
|
||||||
|
|
|
@ -58,7 +58,7 @@
|
||||||
# MISCELLANEOUS PARAMETERS
|
# MISCELLANEOUS PARAMETERS
|
||||||
|
|
||||||
# version must always come first
|
# version must always come first
|
||||||
version=3
|
version=4
|
||||||
|
|
||||||
# set the ip address based on the main board serial number
|
# set the ip address based on the main board serial number
|
||||||
ipaddr=192.168.1.%S
|
ipaddr=192.168.1.%S
|
||||||
|
@ -74,7 +74,7 @@ always_check_env=no
|
||||||
# BOOTING COMMANDS AND PARAMETERS
|
# BOOTING COMMANDS AND PARAMETERS
|
||||||
|
|
||||||
# command to run when "auto-booting"
|
# command to run when "auto-booting"
|
||||||
bootcmd=bootm 40080000 40200000
|
bootcmd=bootm 40080000
|
||||||
|
|
||||||
# how long the "countdown" to automatically running "bootcmd" is
|
# how long the "countdown" to automatically running "bootcmd" is
|
||||||
bootdelay=2
|
bootdelay=2
|
||||||
|
@ -88,9 +88,9 @@ bootretry=5
|
||||||
# r4 - address of initial ramdisk image (0 means no initrd)
|
# r4 - address of initial ramdisk image (0 means no initrd)
|
||||||
# r5 - size of initial ramdisk image
|
# r5 - size of initial ramdisk image
|
||||||
# r6 - address of command line string
|
# r6 - address of command line string
|
||||||
-bootargs=root=/dev/ram rw
|
-bootargs=root=/dev/mtdblock5 rootfstype=squashfs ro
|
||||||
|
|
||||||
# these four are for hymod linux intergrated into our Sun network
|
# these four are for hymod linux integrated into our Sun network
|
||||||
bootargs+=serialno=%S
|
bootargs+=serialno=%S
|
||||||
bootargs+=nisclient nisdomain=mlb.dmt.csiro.au nissrvadr=138.194.112.4
|
bootargs+=nisclient nisdomain=mlb.dmt.csiro.au nissrvadr=138.194.112.4
|
||||||
bootargs+=nfsclient
|
bootargs+=nfsclient
|
||||||
|
@ -145,14 +145,17 @@ copyaltlinux=cp.b 100000 40140000 $(filesize)
|
||||||
cmpaltlinux=cmp.b 100000 40140000 $(filesize)
|
cmpaltlinux=cmp.b 100000 40140000 $(filesize)
|
||||||
newaltlinux=run fetchaltlinux erasealtlinux copyaltlinux cmpaltlinux
|
newaltlinux=run fetchaltlinux erasealtlinux copyaltlinux cmpaltlinux
|
||||||
|
|
||||||
fetchird=tftp 100000 /hymod/initrd.bin
|
fetchroot=tftp 100000 /hymod/root.bin
|
||||||
eraseird=erase 1:8-47
|
eraseroot=erase 1:8-47
|
||||||
copyird=cp.b 100000 40200000 $(filesize)
|
copyroot=cp.b 100000 40200000 $(filesize)
|
||||||
cmpird=cmp.b 100000 40200000 $(filesize)
|
cmproot=cmp.b 100000 40200000 $(filesize)
|
||||||
newinitrd=run fetchird eraseird copyird cmpird
|
newroot=run fetchroot eraseroot copyroot cmproot
|
||||||
|
|
||||||
fetchard=tftp 100000 /hymod/apprd.bin
|
fetchard=tftp 100000 /hymod/apprd.bin
|
||||||
eraseard=erase 1:48-63
|
eraseard=erase 1:48-63
|
||||||
copyard=cp.b 100000 40c00000 $(filesize)
|
copyard=cp.b 100000 40c00000 $(filesize)
|
||||||
cmpard=cmp.b 100000 40c00000 $(filesize)
|
cmpard=cmp.b 100000 40c00000 $(filesize)
|
||||||
newapprd=run fetchard eraseard copyard cmpard
|
newapprd=run fetchard eraseard copyard cmpard
|
||||||
|
|
||||||
|
# pass above map to linux mtd driver
|
||||||
|
bootargs+=mtdparts=phys:256k(u-boot),256k(u-boot-env),768k(linux),768k(altlinux),10m(root),4m(hymod)
|
||||||
|
|
|
@ -23,6 +23,11 @@
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
# clean the slate ...
|
||||||
|
PLATFORM_RELFLAGS =
|
||||||
|
PLATFORM_CPPFLAGS =
|
||||||
|
PLATFORM_LDFLAGS =
|
||||||
|
|
||||||
#
|
#
|
||||||
# When cross-compiling on NetBSD, we have to define __PPC__ or else we
|
# When cross-compiling on NetBSD, we have to define __PPC__ or else we
|
||||||
# will pick up a va_list declaration that is incompatible with the
|
# will pick up a va_list declaration that is incompatible with the
|
||||||
|
|
|
@ -23,5 +23,5 @@
|
||||||
|
|
||||||
PLATFORM_RELFLAGS += -mrelocatable -ffixed-r14 -meabi
|
PLATFORM_RELFLAGS += -mrelocatable -ffixed-r14 -meabi
|
||||||
|
|
||||||
PLATFORM_CPPFLAGS += -DCONFIG_8260 -ffixed-r2 -ffixed-r29 -mstring
|
PLATFORM_CPPFLAGS += -DCONFIG_8260 -ffixed-r2 -ffixed-r29 \
|
||||||
##PLATFORM_CPPFLAGS += -DCONFIG_8260 -ffixed-r2 -mstring
|
-mstring -mcpu=603e -mmultiple
|
||||||
|
|
|
@ -30,62 +30,62 @@
|
||||||
/*
|
/*
|
||||||
* Configurable monitor commands
|
* Configurable monitor commands
|
||||||
*/
|
*/
|
||||||
#define CFG_CMD_BDI 0x00000001 /* bdinfo */
|
#define CFG_CMD_BDI 0x00000001U /* bdinfo */
|
||||||
#define CFG_CMD_LOADS 0x00000002 /* loads */
|
#define CFG_CMD_LOADS 0x00000002U /* loads */
|
||||||
#define CFG_CMD_LOADB 0x00000004 /* loadb */
|
#define CFG_CMD_LOADB 0x00000004U /* loadb */
|
||||||
#define CFG_CMD_IMI 0x00000008 /* iminfo */
|
#define CFG_CMD_IMI 0x00000008U /* iminfo */
|
||||||
#define CFG_CMD_CACHE 0x00000010 /* icache, dcache */
|
#define CFG_CMD_CACHE 0x00000010U /* icache, dcache */
|
||||||
#define CFG_CMD_FLASH 0x00000020 /* flinfo, erase, protect */
|
#define CFG_CMD_FLASH 0x00000020U /* flinfo, erase, protect */
|
||||||
#define CFG_CMD_MEMORY 0x00000040 /* md, mm, nm, mw, cp, cmp, */
|
#define CFG_CMD_MEMORY 0x00000040U /* md, mm, nm, mw, cp, cmp, */
|
||||||
/* crc, base, loop, mtest */
|
/* crc, base, loop, mtest */
|
||||||
#define CFG_CMD_NET 0x00000080 /* bootp, tftpboot, rarpboot */
|
#define CFG_CMD_NET 0x00000080U /* bootp, tftpboot, rarpboot */
|
||||||
#define CFG_CMD_ENV 0x00000100 /* saveenv */
|
#define CFG_CMD_ENV 0x00000100U /* saveenv */
|
||||||
#define CFG_CMD_KGDB 0x00000200 /* kgdb */
|
#define CFG_CMD_KGDB 0x00000200U /* kgdb */
|
||||||
#define CFG_CMD_PCMCIA 0x00000400 /* PCMCIA support */
|
#define CFG_CMD_PCMCIA 0x00000400U /* PCMCIA support */
|
||||||
#define CFG_CMD_IDE 0x00000800 /* IDE harddisk support */
|
#define CFG_CMD_IDE 0x00000800U /* IDE harddisk support */
|
||||||
#define CFG_CMD_PCI 0x00001000 /* pciinfo */
|
#define CFG_CMD_PCI 0x00001000U /* pciinfo */
|
||||||
#define CFG_CMD_IRQ 0x00002000 /* irqinfo */
|
#define CFG_CMD_IRQ 0x00002000U /* irqinfo */
|
||||||
#define CFG_CMD_BOOTD 0x00004000 /* bootd */
|
#define CFG_CMD_BOOTD 0x00004000U /* bootd */
|
||||||
#define CFG_CMD_CONSOLE 0x00008000 /* coninfo */
|
#define CFG_CMD_CONSOLE 0x00008000U /* coninfo */
|
||||||
#define CFG_CMD_EEPROM 0x00010000 /* EEPROM read/write support */
|
#define CFG_CMD_EEPROM 0x00010000U /* EEPROM read/write support */
|
||||||
#define CFG_CMD_ASKENV 0x00020000 /* ask for env variable */
|
#define CFG_CMD_ASKENV 0x00020000U /* ask for env variable */
|
||||||
#define CFG_CMD_RUN 0x00040000 /* run command in env variable */
|
#define CFG_CMD_RUN 0x00040000U /* run command in env variable */
|
||||||
#define CFG_CMD_ECHO 0x00080000 /* echo arguments */
|
#define CFG_CMD_ECHO 0x00080000U /* echo arguments */
|
||||||
#define CFG_CMD_I2C 0x00100000 /* I2C serial bus support */
|
#define CFG_CMD_I2C 0x00100000U /* I2C serial bus support */
|
||||||
#define CFG_CMD_REGINFO 0x00200000 /* Register dump */
|
#define CFG_CMD_REGINFO 0x00200000U /* Register dump */
|
||||||
#define CFG_CMD_IMMAP 0x00400000 /* IMMR dump support */
|
#define CFG_CMD_IMMAP 0x00400000U /* IMMR dump support */
|
||||||
#define CFG_CMD_DATE 0x00800000 /* support for RTC, date/time...*/
|
#define CFG_CMD_DATE 0x00800000U /* support for RTC, date/time...*/
|
||||||
#define CFG_CMD_DHCP 0x01000000 /* DHCP Support */
|
#define CFG_CMD_DHCP 0x01000000U /* DHCP Support */
|
||||||
#define CFG_CMD_BEDBUG 0x02000000 /* Include BedBug Debugger */
|
#define CFG_CMD_BEDBUG 0x02000000U /* Include BedBug Debugger */
|
||||||
#define CFG_CMD_FDC 0x04000000 /* Floppy Disk Support */
|
#define CFG_CMD_FDC 0x04000000U /* Floppy Disk Support */
|
||||||
#define CFG_CMD_SCSI 0x08000000 /* SCSI Support */
|
#define CFG_CMD_SCSI 0x08000000U /* SCSI Support */
|
||||||
#define CFG_CMD_AUTOSCRIPT 0x10000000 /* Autoscript Support */
|
#define CFG_CMD_AUTOSCRIPT 0x10000000U /* Autoscript Support */
|
||||||
#define CFG_CMD_MII 0x20000000 /* MII support */
|
#define CFG_CMD_MII 0x20000000U /* MII support */
|
||||||
#define CFG_CMD_SETGETDCR 0x40000000 /* DCR support on 4xx */
|
#define CFG_CMD_SETGETDCR 0x40000000U /* DCR support on 4xx */
|
||||||
#define CFG_CMD_BSP 0x80000000 /* Board Specific functions */
|
#define CFG_CMD_BSP 0x80000000U /* Board Specific functions */
|
||||||
|
|
||||||
#define CFG_CMD_ELF 0x0000000100000000 /* ELF (VxWorks) load/boot cmd */
|
#define CFG_CMD_ELF 0x0000000100000000U /* ELF (VxWorks) load/boot cmd */
|
||||||
#define CFG_CMD_MISC 0x0000000200000000 /* Misc functions like sleep etc*/
|
#define CFG_CMD_MISC 0x0000000200000000U /* Misc functions like sleep etc*/
|
||||||
#define CFG_CMD_USB 0x0000000400000000 /* USB Support */
|
#define CFG_CMD_USB 0x0000000400000000U /* USB Support */
|
||||||
#define CFG_CMD_DOC 0x0000000800000000 /* Disk-On-Chip Support */
|
#define CFG_CMD_DOC 0x0000000800000000U /* Disk-On-Chip Support */
|
||||||
#define CFG_CMD_JFFS2 0x0000001000000000 /* JFFS2 Support */
|
#define CFG_CMD_JFFS2 0x0000001000000000U /* JFFS2 Support */
|
||||||
#define CFG_CMD_DTT 0x0000002000000000 /* Digital Therm and Thermostat */
|
#define CFG_CMD_DTT 0x0000002000000000U /* Digital Therm and Thermostat */
|
||||||
#define CFG_CMD_SDRAM 0x0000004000000000 /* SDRAM DIMM SPD info printout */
|
#define CFG_CMD_SDRAM 0x0000004000000000U /* SDRAM DIMM SPD info printout */
|
||||||
#define CFG_CMD_DIAG 0x0000008000000000 /* Diagnostics */
|
#define CFG_CMD_DIAG 0x0000008000000000U /* Diagnostics */
|
||||||
#define CFG_CMD_FPGA 0x0000010000000000 /* FPGA configuration Support */
|
#define CFG_CMD_FPGA 0x0000010000000000U /* FPGA configuration Support */
|
||||||
#define CFG_CMD_HWFLOW 0x0000020000000000 /* RTS/CTS hw flow control */
|
#define CFG_CMD_HWFLOW 0x0000020000000000U /* RTS/CTS hw flow control */
|
||||||
#define CFG_CMD_SAVES 0x0000040000000000 /* save S record dump */
|
#define CFG_CMD_SAVES 0x0000040000000000U /* save S record dump */
|
||||||
#define CFG_CMD_SPI 0x0000100000000000 /* SPI utility */
|
#define CFG_CMD_SPI 0x0000100000000000U /* SPI utility */
|
||||||
#define CFG_CMD_FDOS 0x0000200000000000 /* Floppy DOS support */
|
#define CFG_CMD_FDOS 0x0000200000000000U /* Floppy DOS support */
|
||||||
#define CFG_CMD_VFD 0x0000400000000000 /* VFD support (TRAB) */
|
#define CFG_CMD_VFD 0x0000400000000000U /* VFD support (TRAB) */
|
||||||
#define CFG_CMD_NAND 0x0000800000000000 /* NAND support */
|
#define CFG_CMD_NAND 0x0000800000000000U /* NAND support */
|
||||||
#define CFG_CMD_BMP 0x0001000000000000 /* BMP support */
|
#define CFG_CMD_BMP 0x0001000000000000U /* BMP support */
|
||||||
#define CFG_CMD_PORTIO 0x0002000000000000 /* Port I/O */
|
#define CFG_CMD_PORTIO 0x0002000000000000U /* Port I/O */
|
||||||
#define CFG_CMD_PING 0x0004000000000000 /* ping support */
|
#define CFG_CMD_PING 0x0004000000000000U /* ping support */
|
||||||
#define CFG_CMD_MMC 0x0008000000000000 /* MMC support */
|
#define CFG_CMD_MMC 0x0008000000000000U /* MMC support */
|
||||||
#define CFG_CMD_FAT 0x0010000000000000 /* FAT support */
|
#define CFG_CMD_FAT 0x0010000000000000U /* FAT support */
|
||||||
|
|
||||||
#define CFG_CMD_ALL 0xFFFFFFFFFFFFFFFF /* ALL commands */
|
#define CFG_CMD_ALL 0xFFFFFFFFFFFFFFFFU /* ALL commands */
|
||||||
|
|
||||||
/* Commands that are considered "non-standard" for some reason
|
/* Commands that are considered "non-standard" for some reason
|
||||||
* (memory hogs, requires special hardware, not fully tested, etc.)
|
* (memory hogs, requires special hardware, not fully tested, etc.)
|
||||||
|
|
|
@ -219,7 +219,7 @@
|
||||||
#define CONFIG_KGDB_EXTC_RATE 3686400 /* serial ext clk rate in Hz */
|
#define CONFIG_KGDB_EXTC_RATE 3686400 /* serial ext clk rate in Hz */
|
||||||
#define CONFIG_KGDB_EXTC_PINSEL 0 /* pin select 0=CLK3/CLK9,1=CLK5/CLK15*/
|
#define CONFIG_KGDB_EXTC_PINSEL 0 /* pin select 0=CLK3/CLK9,1=CLK5/CLK15*/
|
||||||
# if defined(CONFIG_KGDB_USE_EXTC)
|
# if defined(CONFIG_KGDB_USE_EXTC)
|
||||||
#define CONFIG_KGDB_BAUDRATE 230400 /* speed to run kgdb serial port at */
|
#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port at */
|
||||||
# else
|
# else
|
||||||
#define CONFIG_KGDB_BAUDRATE 9600 /* speed to run kgdb serial port at */
|
#define CONFIG_KGDB_BAUDRATE 9600 /* speed to run kgdb serial port at */
|
||||||
# endif
|
# endif
|
||||||
|
@ -384,7 +384,7 @@
|
||||||
#define CFG_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (in ms) */
|
#define CFG_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (in ms) */
|
||||||
|
|
||||||
#define CFG_ENV_IS_IN_FLASH 1
|
#define CFG_ENV_IS_IN_FLASH 1
|
||||||
#define CFG_ENV_SIZE 0x1000 /* Total Size of Environment Sector */
|
#define CFG_ENV_SIZE 0x40000 /* Total Size of Environment Sector */
|
||||||
#define CFG_ENV_SECT_SIZE 0x40000 /* see README - env sect real size */
|
#define CFG_ENV_SECT_SIZE 0x40000 /* see README - env sect real size */
|
||||||
#define CFG_ENV_ADDR (CFG_FLASH_BASE+CFG_MONITOR_LEN-CFG_ENV_SECT_SIZE)
|
#define CFG_ENV_ADDR (CFG_FLASH_BASE+CFG_MONITOR_LEN-CFG_ENV_SECT_SIZE)
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@ struct NFTLrecord {
|
||||||
__u16 lastEUN; /* should be suppressed */
|
__u16 lastEUN; /* should be suppressed */
|
||||||
__u16 numfreeEUNs;
|
__u16 numfreeEUNs;
|
||||||
__u16 LastFreeEUN; /* To speed up finding a free EUN */
|
__u16 LastFreeEUN; /* To speed up finding a free EUN */
|
||||||
__u32 long nr_sects;
|
__u32 nr_sects;
|
||||||
int head,sect,cyl;
|
int head,sect,cyl;
|
||||||
__u16 *EUNtable; /* [numvunits]: First EUN for each virtual unit */
|
__u16 *EUNtable; /* [numvunits]: First EUN for each virtual unit */
|
||||||
__u16 *ReplUnitTable; /* [numEUNs]: ReplUnitNumber for each */
|
__u16 *ReplUnitTable; /* [numEUNs]: ReplUnitNumber for each */
|
||||||
|
|
|
@ -385,7 +385,7 @@ static int flash_io (int mode)
|
||||||
{
|
{
|
||||||
int fd, fdr, rc, otherdev, len, resid;
|
int fd, fdr, rc, otherdev, len, resid;
|
||||||
erase_info_t erase;
|
erase_info_t erase;
|
||||||
char *data;
|
char *data = NULL;
|
||||||
|
|
||||||
if ((fd = open (DEVNAME (curdev), mode)) < 0) {
|
if ((fd = open (DEVNAME (curdev), mode)) < 0) {
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
|
|
Loading…
Reference in New Issue