mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-16 14:08:45 +00:00
Code cleanup.
This commit is contained in:
parent
bea8e84b52
commit
efe2a4d5cf
37 changed files with 1850 additions and 1808 deletions
10
README
10
README
|
@ -835,7 +835,7 @@ The following options need to be configured:
|
||||||
function struct part_info* jffs2_part_info(int part_num)
|
function struct part_info* jffs2_part_info(int part_num)
|
||||||
|
|
||||||
If you define only one JFFS2 partition you may also want to
|
If you define only one JFFS2 partition you may also want to
|
||||||
#define CFG_JFFS_SINGLE_PART 1
|
#define CFG_JFFS_SINGLE_PART 1
|
||||||
to disable the command chpart. This is the default when you
|
to disable the command chpart. This is the default when you
|
||||||
have not defined a custom partition
|
have not defined a custom partition
|
||||||
|
|
||||||
|
@ -1978,7 +1978,7 @@ Low Level (hardware related) configuration options:
|
||||||
initializations.
|
initializations.
|
||||||
|
|
||||||
- CFG_IMMR: Physical address of the Internal Memory.
|
- CFG_IMMR: Physical address of the Internal Memory.
|
||||||
DO NOT CHANGE unless you know exactly what you're
|
DO NOT CHANGE unless you know exactly what you're
|
||||||
doing! (11-4) [MPC8xx/82xx systems only]
|
doing! (11-4) [MPC8xx/82xx systems only]
|
||||||
|
|
||||||
- CFG_INIT_RAM_ADDR:
|
- CFG_INIT_RAM_ADDR:
|
||||||
|
@ -2118,13 +2118,13 @@ Low Level (hardware related) configuration options:
|
||||||
"md/mw" commands.
|
"md/mw" commands.
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
=> mdc.b 10 4 500
|
=> mdc.b 10 4 500
|
||||||
This command will print 4 bytes (10,11,12,13) each 500 ms.
|
This command will print 4 bytes (10,11,12,13) each 500 ms.
|
||||||
|
|
||||||
=> mwc.l 100 12345678 10
|
=> mwc.l 100 12345678 10
|
||||||
This command will write 12345678 to address 100 all 10 ms.
|
This command will write 12345678 to address 100 all 10 ms.
|
||||||
|
|
||||||
This only takes effect if the memory commands are activated
|
This only takes effect if the memory commands are activated
|
||||||
globally (CFG_CMD_MEM).
|
globally (CFG_CMD_MEM).
|
||||||
|
|
||||||
Building the Software:
|
Building the Software:
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
|
|
||||||
#undef DEBUG_FLASH
|
#undef DEBUG_FLASH
|
||||||
/*
|
/*
|
||||||
* This file implements a Common Flash Interface (CFI) driver for ppcboot.
|
* This file implements a Common Flash Interface (CFI) driver for ppcboot.
|
||||||
* The width of the port and the width of the chips are determined at initialization.
|
* The width of the port and the width of the chips are determined at initialization.
|
||||||
|
@ -85,12 +85,8 @@
|
||||||
#define FLASH_OFFSET_USER_PROTECTION 0x85
|
#define FLASH_OFFSET_USER_PROTECTION 0x85
|
||||||
#define FLASH_OFFSET_INTEL_PROTECTION 0x81
|
#define FLASH_OFFSET_INTEL_PROTECTION 0x81
|
||||||
|
|
||||||
|
|
||||||
#define FLASH_MAN_CFI 0x01000000
|
#define FLASH_MAN_CFI 0x01000000
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef union {
|
typedef union {
|
||||||
unsigned char c;
|
unsigned char c;
|
||||||
unsigned short w;
|
unsigned short w;
|
||||||
|
@ -107,13 +103,10 @@ typedef union {
|
||||||
|
|
||||||
flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */
|
flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */
|
||||||
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
* Functions
|
* Functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void flash_add_byte(flash_info_t *info, cfiword_t * cword, uchar c);
|
static void flash_add_byte(flash_info_t *info, cfiword_t * cword, uchar c);
|
||||||
static void flash_make_cmd(flash_info_t * info, uchar cmd, void * cmdbuf);
|
static void flash_make_cmd(flash_info_t * info, uchar cmd, void * cmdbuf);
|
||||||
static void flash_write_cmd(flash_info_t * info, int sect, uchar offset, uchar cmd);
|
static void flash_write_cmd(flash_info_t * info, int sect, uchar offset, uchar cmd);
|
||||||
|
@ -249,7 +242,7 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
|
||||||
flash_write_cmd(info, sect, 0, FLASH_CMD_CLEAR_STATUS);
|
flash_write_cmd(info, sect, 0, FLASH_CMD_CLEAR_STATUS);
|
||||||
flash_write_cmd(info, sect, 0, FLASH_CMD_BLOCK_ERASE);
|
flash_write_cmd(info, sect, 0, FLASH_CMD_BLOCK_ERASE);
|
||||||
flash_write_cmd(info, sect, 0, FLASH_CMD_ERASE_CONFIRM);
|
flash_write_cmd(info, sect, 0, FLASH_CMD_ERASE_CONFIRM);
|
||||||
|
|
||||||
if(flash_full_status_check(info, sect, info->erase_blk_tout, "erase")) {
|
if(flash_full_status_check(info, sect, info->erase_blk_tout, "erase")) {
|
||||||
rcode = 1;
|
rcode = 1;
|
||||||
} else
|
} else
|
||||||
|
@ -277,7 +270,7 @@ void flash_print_info (flash_info_t *info)
|
||||||
info->size >> 20, info->sector_count);
|
info->size >> 20, info->sector_count);
|
||||||
printf(" Erase timeout %ld ms, write timeout %ld ms, buffer write timeout %ld ms, buffer size %d\n",
|
printf(" Erase timeout %ld ms, write timeout %ld ms, buffer write timeout %ld ms, buffer size %d\n",
|
||||||
info->erase_blk_tout, info->write_tout, info->buffer_write_tout, info->buffer_size);
|
info->erase_blk_tout, info->write_tout, info->buffer_write_tout, info->buffer_size);
|
||||||
|
|
||||||
printf (" Sector Start Addresses:");
|
printf (" Sector Start Addresses:");
|
||||||
for (i=0; i<info->sector_count; ++i) {
|
for (i=0; i<info->sector_count; ++i) {
|
||||||
#ifdef CFG_FLASH_EMPTY_INFO
|
#ifdef CFG_FLASH_EMPTY_INFO
|
||||||
|
@ -286,28 +279,28 @@ void flash_print_info (flash_info_t *info)
|
||||||
int erased;
|
int erased;
|
||||||
volatile unsigned long *flash;
|
volatile unsigned long *flash;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check if whole sector is erased
|
* Check if whole sector is erased
|
||||||
*/
|
*/
|
||||||
if (i != (info->sector_count-1))
|
if (i != (info->sector_count-1))
|
||||||
size = info->start[i+1] - info->start[i];
|
size = info->start[i+1] - info->start[i];
|
||||||
else
|
else
|
||||||
size = info->start[0] + info->size - info->start[i];
|
size = info->start[0] + info->size - info->start[i];
|
||||||
erased = 1;
|
erased = 1;
|
||||||
flash = (volatile unsigned long *)info->start[i];
|
flash = (volatile unsigned long *)info->start[i];
|
||||||
size = size >> 2; /* divide by 4 for longword access */
|
size = size >> 2; /* divide by 4 for longword access */
|
||||||
for (k=0; k<size; k++)
|
for (k=0; k<size; k++)
|
||||||
{
|
{
|
||||||
if (*flash++ != 0xffffffff)
|
if (*flash++ != 0xffffffff)
|
||||||
{
|
{
|
||||||
erased = 0;
|
erased = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((i % 5) == 0)
|
if ((i % 5) == 0)
|
||||||
printf ("\n ");
|
printf ("\n ");
|
||||||
/* print empty and read-only info */
|
/* print empty and read-only info */
|
||||||
printf (" %08lX%s%s",
|
printf (" %08lX%s%s",
|
||||||
info->start[i],
|
info->start[i],
|
||||||
erased ? " E" : " ",
|
erased ? " E" : " ",
|
||||||
|
@ -414,7 +407,7 @@ int flash_real_protect(flash_info_t *info, long sector, int prot)
|
||||||
else
|
else
|
||||||
flash_write_cmd(info, sector, 0, FLASH_CMD_PROTECT_CLEAR);
|
flash_write_cmd(info, sector, 0, FLASH_CMD_PROTECT_CLEAR);
|
||||||
|
|
||||||
if((retcode = flash_full_status_check(info, sector, info->erase_blk_tout,
|
if((retcode = flash_full_status_check(info, sector, info->erase_blk_tout,
|
||||||
prot?"protect":"unprotect")) == 0) {
|
prot?"protect":"unprotect")) == 0) {
|
||||||
|
|
||||||
info->protect[sector] = prot;
|
info->protect[sector] = prot;
|
||||||
|
@ -464,7 +457,7 @@ static int flash_full_status_check(flash_info_t * info, ulong sector, ulong tout
|
||||||
printf("Command Sequence Error.\n");
|
printf("Command Sequence Error.\n");
|
||||||
} else if(flash_isset(info, sector, 0, FLASH_STATUS_ECLBS)){
|
} else if(flash_isset(info, sector, 0, FLASH_STATUS_ECLBS)){
|
||||||
printf("Block Erase Error.\n");
|
printf("Block Erase Error.\n");
|
||||||
retcode = ERR_NOT_ERASED;
|
retcode = ERR_NOT_ERASED;
|
||||||
} else if (flash_isset(info, sector, 0, FLASH_STATUS_PSLBS)) {
|
} else if (flash_isset(info, sector, 0, FLASH_STATUS_PSLBS)) {
|
||||||
printf("Locking Error\n");
|
printf("Locking Error\n");
|
||||||
}
|
}
|
||||||
|
@ -733,7 +726,7 @@ static int find_sector(flash_info_t *info, ulong addr)
|
||||||
{
|
{
|
||||||
int sector;
|
int sector;
|
||||||
for(sector = info->sector_count - 1; sector >= 0; sector--) {
|
for(sector = info->sector_count - 1; sector >= 0; sector--) {
|
||||||
if(addr >= info->start[sector])
|
if(addr >= info->start[sector])
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return sector;
|
return sector;
|
||||||
|
@ -741,7 +734,7 @@ static int find_sector(flash_info_t *info, ulong addr)
|
||||||
|
|
||||||
static int flash_write_cfibuffer(flash_info_t * info, ulong dest, uchar * cp, int len)
|
static int flash_write_cfibuffer(flash_info_t * info, ulong dest, uchar * cp, int len)
|
||||||
{
|
{
|
||||||
|
|
||||||
int sector;
|
int sector;
|
||||||
int cnt;
|
int cnt;
|
||||||
int retcode;
|
int retcode;
|
||||||
|
@ -789,8 +782,8 @@ static int flash_write_cfibuffer(flash_info_t * info, ulong dest, uchar * cp, in
|
||||||
flash_write_cmd(info, sector, 0, FLASH_CMD_WRITE_BUFFER_CONFIRM);
|
flash_write_cmd(info, sector, 0, FLASH_CMD_WRITE_BUFFER_CONFIRM);
|
||||||
retcode = flash_full_status_check(info, sector, info->buffer_write_tout,
|
retcode = flash_full_status_check(info, sector, info->buffer_write_tout,
|
||||||
"buffer write");
|
"buffer write");
|
||||||
}
|
}
|
||||||
flash_write_cmd(info, sector, 0, FLASH_CMD_CLEAR_STATUS);
|
flash_write_cmd(info, sector, 0, FLASH_CMD_CLEAR_STATUS);
|
||||||
return retcode;
|
return retcode;
|
||||||
}
|
}
|
||||||
#endif /* CFG_USE_FLASH_BUFFER_WRITE */
|
#endif /* CFG_USE_FLASH_BUFFER_WRITE */
|
||||||
|
|
|
@ -136,7 +136,7 @@ void lcd_init(uchar *lcd_reg, uchar *lcd_mem, S1D_REGS *regs, int reg_count,
|
||||||
}
|
}
|
||||||
s1dValue = regs[i].Value;
|
s1dValue = regs[i].Value;
|
||||||
lcd_reg[s1dReg] = s1dValue;
|
lcd_reg[s1dReg] = s1dValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Decompress bmp image
|
* Decompress bmp image
|
||||||
|
|
|
@ -68,4 +68,3 @@ typedef struct /**** BMP file info structure ****/
|
||||||
unsigned int biClrUsed; /* Number of colors used */
|
unsigned int biClrUsed; /* Number of colors used */
|
||||||
unsigned int biClrImportant; /* Number of important colors */
|
unsigned int biClrImportant; /* Number of important colors */
|
||||||
} BITMAPINFOHEADER;
|
} BITMAPINFOHEADER;
|
||||||
|
|
||||||
|
|
|
@ -123,4 +123,3 @@ static S1D_REGS regs_13806_1024_768_8bpp[] =
|
||||||
{0x01F4,0x00}, /* CPU-to-Memory Access Watchdog Timer Register */
|
{0x01F4,0x00}, /* CPU-to-Memory Access Watchdog Timer Register */
|
||||||
{0x01FC,0x01}, /* Display Mode Register */
|
{0x01FC,0x01}, /* Display Mode Register */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -123,4 +123,3 @@ static S1D_REGS regs_13806_320_240_4bpp[] =
|
||||||
{0x01F4,0x00}, /* CPU-to-Memory Access Watchdog Timer Register */
|
{0x01F4,0x00}, /* CPU-to-Memory Access Watchdog Timer Register */
|
||||||
{0x01FC,0x01}, /* Display Mode Register */
|
{0x01FC,0x01}, /* Display Mode Register */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -123,4 +123,3 @@ static S1D_REGS regs_13806_640_480_16bpp[] =
|
||||||
{0x01F4,0x00}, /* CPU-to-Memory Access Watchdog Timer Register */
|
{0x01F4,0x00}, /* CPU-to-Memory Access Watchdog Timer Register */
|
||||||
{0x01FC,0x01}, /* Display Mode Register */
|
{0x01FC,0x01}, /* Display Mode Register */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -123,4 +123,3 @@ static S1D_REGS regs_13806_640_320_16bpp[] =
|
||||||
{0x01F4,0x00}, /* CPU-to-Memory Access Watchdog Timer Register */
|
{0x01F4,0x00}, /* CPU-to-Memory Access Watchdog Timer Register */
|
||||||
{0x01FC,0x01}, /* Display Mode Register */
|
{0x01FC,0x01}, /* Display Mode Register */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -559,11 +559,11 @@ void ide_set_reset(int on)
|
||||||
#ifdef CONFIG_CPCI405AB
|
#ifdef CONFIG_CPCI405AB
|
||||||
|
|
||||||
#define ONE_WIRE_CLEAR (*(volatile unsigned short *)(CFG_FPGA_BASE_ADDR + CFG_FPGA_MODE) \
|
#define ONE_WIRE_CLEAR (*(volatile unsigned short *)(CFG_FPGA_BASE_ADDR + CFG_FPGA_MODE) \
|
||||||
|= CFG_FPGA_MODE_1WIRE_DIR)
|
|= CFG_FPGA_MODE_1WIRE_DIR)
|
||||||
#define ONE_WIRE_SET (*(volatile unsigned short *)(CFG_FPGA_BASE_ADDR + CFG_FPGA_MODE) \
|
#define ONE_WIRE_SET (*(volatile unsigned short *)(CFG_FPGA_BASE_ADDR + CFG_FPGA_MODE) \
|
||||||
&= ~CFG_FPGA_MODE_1WIRE_DIR)
|
&= ~CFG_FPGA_MODE_1WIRE_DIR)
|
||||||
#define ONE_WIRE_GET (*(volatile unsigned short *)(CFG_FPGA_BASE_ADDR + CFG_FPGA_STATUS) \
|
#define ONE_WIRE_GET (*(volatile unsigned short *)(CFG_FPGA_BASE_ADDR + CFG_FPGA_STATUS) \
|
||||||
& CFG_FPGA_MODE_1WIRE)
|
& CFG_FPGA_MODE_1WIRE)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generate a 1-wire reset, return 1 if no presence detect was found,
|
* Generate a 1-wire reset, return 1 if no presence detect was found,
|
||||||
|
|
|
@ -72,28 +72,28 @@ static void i2c_init (int speed, int slaveaddr)
|
||||||
/* Setup bus */
|
/* Setup bus */
|
||||||
/* gtI2cReset */
|
/* gtI2cReset */
|
||||||
GT_REG_WRITE (I2C_SOFT_RESET, 0);
|
GT_REG_WRITE (I2C_SOFT_RESET, 0);
|
||||||
asm(" sync");
|
asm(" sync");
|
||||||
GT_REG_WRITE (I2C_CONTROL, 0);
|
GT_REG_WRITE (I2C_CONTROL, 0);
|
||||||
asm(" sync");
|
asm(" sync");
|
||||||
|
|
||||||
DP (puts ("set baudrate\n"));
|
DP (puts ("set baudrate\n"));
|
||||||
|
|
||||||
GT_REG_WRITE (I2C_STATUS_BAUDE_RATE, (actualM << 3) | actualN);
|
GT_REG_WRITE (I2C_STATUS_BAUDE_RATE, (actualM << 3) | actualN);
|
||||||
asm(" sync");
|
asm(" sync");
|
||||||
|
|
||||||
DP (puts ("udelay...\n"));
|
DP (puts ("udelay...\n"));
|
||||||
|
|
||||||
udelay (I2C_DELAY);
|
udelay (I2C_DELAY);
|
||||||
|
|
||||||
GT_REG_WRITE (I2C_CONTROL, (0x1 << 2) | (0x1 << 6));
|
GT_REG_WRITE (I2C_CONTROL, (0x1 << 2) | (0x1 << 6));
|
||||||
asm(" sync");
|
asm(" sync");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static uchar i2c_select_device (uchar dev_addr, uchar read, int ten_bit)
|
static uchar i2c_select_device (uchar dev_addr, uchar read, int ten_bit)
|
||||||
{
|
{
|
||||||
unsigned int status, data, bits = 7;
|
unsigned int status, data, bits = 7;
|
||||||
unsigned int control;
|
unsigned int control;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
DP (puts ("i2c_select_device\n"));
|
DP (puts ("i2c_select_device\n"));
|
||||||
|
@ -107,19 +107,19 @@ static uchar i2c_select_device (uchar dev_addr, uchar read, int ten_bit)
|
||||||
GT_REG_READ (I2C_CONTROL, &control);
|
GT_REG_READ (I2C_CONTROL, &control);
|
||||||
control |= (0x1 << 2);
|
control |= (0x1 << 2);
|
||||||
GT_REG_WRITE (I2C_CONTROL, control);
|
GT_REG_WRITE (I2C_CONTROL, control);
|
||||||
asm(" sync");
|
asm(" sync");
|
||||||
|
|
||||||
GT_REG_READ (I2C_CONTROL, &control);
|
GT_REG_READ (I2C_CONTROL, &control);
|
||||||
control |= (0x1 << 5); /* generate the I2C_START_BIT */
|
control |= (0x1 << 5); /* generate the I2C_START_BIT */
|
||||||
GT_REG_WRITE (I2C_CONTROL, control);
|
GT_REG_WRITE (I2C_CONTROL, control);
|
||||||
asm(" sync");
|
asm(" sync");
|
||||||
RESET_REG_BITS (I2C_CONTROL, (0x01 << 3));
|
RESET_REG_BITS (I2C_CONTROL, (0x01 << 3));
|
||||||
asm(" sync");
|
asm(" sync");
|
||||||
|
|
||||||
GT_REG_READ (I2C_CONTROL, &status);
|
GT_REG_READ (I2C_CONTROL, &status);
|
||||||
while ((status & 0x08) != 0x08) {
|
while ((status & 0x08) != 0x08) {
|
||||||
GT_REG_READ (I2C_CONTROL, &status);
|
GT_REG_READ (I2C_CONTROL, &status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
count = 0;
|
count = 0;
|
||||||
|
@ -128,7 +128,7 @@ static uchar i2c_select_device (uchar dev_addr, uchar read, int ten_bit)
|
||||||
while (((status & 0xff) != 0x08) && ((status & 0xff) != 0x10)){
|
while (((status & 0xff) != 0x08) && ((status & 0xff) != 0x10)){
|
||||||
if (count > 200) {
|
if (count > 200) {
|
||||||
#ifdef DEBUG_I2C
|
#ifdef DEBUG_I2C
|
||||||
printf ("Failed to set startbit: 0x%02x\n", status);
|
printf ("Failed to set startbit: 0x%02x\n", status);
|
||||||
#endif
|
#endif
|
||||||
GT_REG_WRITE (I2C_CONTROL, (0x1 << 4)); /*stop */
|
GT_REG_WRITE (I2C_CONTROL, (0x1 << 4)); /*stop */
|
||||||
asm(" sync");
|
asm(" sync");
|
||||||
|
@ -146,21 +146,21 @@ static uchar i2c_select_device (uchar dev_addr, uchar read, int ten_bit)
|
||||||
/* set the read bit */
|
/* set the read bit */
|
||||||
data |= read;
|
data |= read;
|
||||||
GT_REG_WRITE (I2C_DATA, data);
|
GT_REG_WRITE (I2C_DATA, data);
|
||||||
asm(" sync");
|
asm(" sync");
|
||||||
RESET_REG_BITS (I2C_CONTROL, BIT3);
|
RESET_REG_BITS (I2C_CONTROL, BIT3);
|
||||||
asm(" sync");
|
asm(" sync");
|
||||||
|
|
||||||
GT_REG_READ (I2C_CONTROL, &status);
|
GT_REG_READ (I2C_CONTROL, &status);
|
||||||
while ((status & 0x08) != 0x08) {
|
while ((status & 0x08) != 0x08) {
|
||||||
GT_REG_READ (I2C_CONTROL, &status);
|
GT_REG_READ (I2C_CONTROL, &status);
|
||||||
}
|
}
|
||||||
|
|
||||||
GT_REG_READ (I2C_STATUS_BAUDE_RATE, &status);
|
GT_REG_READ (I2C_STATUS_BAUDE_RATE, &status);
|
||||||
count = 0;
|
count = 0;
|
||||||
while (((status & 0xff) != 0x40) && ((status & 0xff) != 0x18)) {
|
while (((status & 0xff) != 0x40) && ((status & 0xff) != 0x18)) {
|
||||||
if (count > 200) {
|
if (count > 200) {
|
||||||
#ifdef DEBUG_I2C
|
#ifdef DEBUG_I2C
|
||||||
printf ("Failed to write address: 0x%02x\n", status);
|
printf ("Failed to write address: 0x%02x\n", status);
|
||||||
#endif
|
#endif
|
||||||
GT_REG_WRITE (I2C_CONTROL, (0x1 << 4)); /*stop */
|
GT_REG_WRITE (I2C_CONTROL, (0x1 << 4)); /*stop */
|
||||||
return (status);
|
return (status);
|
||||||
|
@ -195,15 +195,15 @@ static uchar i2c_get_data (uchar * return_data, int len)
|
||||||
|
|
||||||
GT_REG_READ (I2C_CONTROL, &status);
|
GT_REG_READ (I2C_CONTROL, &status);
|
||||||
while ((status & 0x08) != 0x08) {
|
while ((status & 0x08) != 0x08) {
|
||||||
GT_REG_READ (I2C_CONTROL, &status);
|
GT_REG_READ (I2C_CONTROL, &status);
|
||||||
}
|
}
|
||||||
|
|
||||||
GT_REG_READ (I2C_STATUS_BAUDE_RATE, &status);
|
GT_REG_READ (I2C_STATUS_BAUDE_RATE, &status);
|
||||||
count++;
|
count++;
|
||||||
while ((status & 0xff) != 0x50) {
|
while ((status & 0xff) != 0x50) {
|
||||||
if (count > 20) {
|
if (count > 20) {
|
||||||
#ifdef DEBUG_I2C
|
#ifdef DEBUG_I2C
|
||||||
printf ("Failed to get data len status: 0x%02x\n", status);
|
printf ("Failed to get data len status: 0x%02x\n", status);
|
||||||
#endif
|
#endif
|
||||||
GT_REG_WRITE (I2C_CONTROL, (0x1 << 4)); /*stop */
|
GT_REG_WRITE (I2C_CONTROL, (0x1 << 4)); /*stop */
|
||||||
asm(" sync");
|
asm(" sync");
|
||||||
|
@ -219,13 +219,13 @@ static uchar i2c_get_data (uchar * return_data, int len)
|
||||||
|
|
||||||
}
|
}
|
||||||
RESET_REG_BITS (I2C_CONTROL, BIT2 | BIT3);
|
RESET_REG_BITS (I2C_CONTROL, BIT2 | BIT3);
|
||||||
asm(" sync");
|
asm(" sync");
|
||||||
count = 0;
|
count = 0;
|
||||||
|
|
||||||
GT_REG_READ (I2C_CONTROL, &status);
|
GT_REG_READ (I2C_CONTROL, &status);
|
||||||
while ((status & 0x08) != 0x08) {
|
while ((status & 0x08) != 0x08) {
|
||||||
GT_REG_READ (I2C_CONTROL, &status);
|
GT_REG_READ (I2C_CONTROL, &status);
|
||||||
}
|
}
|
||||||
|
|
||||||
while ((status & 0xff) != 0x58) {
|
while ((status & 0xff) != 0x58) {
|
||||||
if (count > 2000) {
|
if (count > 2000) {
|
||||||
|
@ -236,9 +236,9 @@ static uchar i2c_get_data (uchar * return_data, int len)
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
GT_REG_WRITE (I2C_CONTROL, (0x1 << 4)); /* stop */
|
GT_REG_WRITE (I2C_CONTROL, (0x1 << 4)); /* stop */
|
||||||
asm(" sync");
|
asm(" sync");
|
||||||
RESET_REG_BITS (I2C_CONTROL, (0x1 << 3));
|
RESET_REG_BITS (I2C_CONTROL, (0x1 << 3));
|
||||||
asm(" sync");
|
asm(" sync");
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
@ -254,7 +254,7 @@ static uchar i2c_write_data (unsigned int *data, int len)
|
||||||
DP (puts ("i2c_write_data\n"));
|
DP (puts ("i2c_write_data\n"));
|
||||||
|
|
||||||
while (len) {
|
while (len) {
|
||||||
count = 0;
|
count = 0;
|
||||||
temp = (unsigned int) (*temp_ptr);
|
temp = (unsigned int) (*temp_ptr);
|
||||||
GT_REG_WRITE (I2C_DATA, temp);
|
GT_REG_WRITE (I2C_DATA, temp);
|
||||||
asm(" sync");
|
asm(" sync");
|
||||||
|
@ -264,7 +264,7 @@ static uchar i2c_write_data (unsigned int *data, int len)
|
||||||
GT_REG_READ (I2C_CONTROL, &status);
|
GT_REG_READ (I2C_CONTROL, &status);
|
||||||
while ((status & 0x08) != 0x08) {
|
while ((status & 0x08) != 0x08) {
|
||||||
GT_REG_READ (I2C_CONTROL, &status);
|
GT_REG_READ (I2C_CONTROL, &status);
|
||||||
}
|
}
|
||||||
|
|
||||||
GT_REG_READ (I2C_STATUS_BAUDE_RATE, &status);
|
GT_REG_READ (I2C_STATUS_BAUDE_RATE, &status);
|
||||||
count++;
|
count++;
|
||||||
|
@ -294,7 +294,7 @@ static uchar i2c_write_byte (unsigned char *data, int len)
|
||||||
DP (puts ("i2c_write_byte\n"));
|
DP (puts ("i2c_write_byte\n"));
|
||||||
|
|
||||||
while (len) {
|
while (len) {
|
||||||
count = 0;
|
count = 0;
|
||||||
/* Set and assert the data */
|
/* Set and assert the data */
|
||||||
temp = *temp_ptr;
|
temp = *temp_ptr;
|
||||||
GT_REG_WRITE (I2C_DATA, temp);
|
GT_REG_WRITE (I2C_DATA, temp);
|
||||||
|
@ -306,7 +306,7 @@ static uchar i2c_write_byte (unsigned char *data, int len)
|
||||||
GT_REG_READ (I2C_CONTROL, &status);
|
GT_REG_READ (I2C_CONTROL, &status);
|
||||||
while ((status & 0x08) != 0x08) {
|
while ((status & 0x08) != 0x08) {
|
||||||
GT_REG_READ (I2C_CONTROL, &status);
|
GT_REG_READ (I2C_CONTROL, &status);
|
||||||
}
|
}
|
||||||
|
|
||||||
GT_REG_READ (I2C_STATUS_BAUDE_RATE, &status);
|
GT_REG_READ (I2C_STATUS_BAUDE_RATE, &status);
|
||||||
count++;
|
count++;
|
||||||
|
@ -419,7 +419,7 @@ i2c_read (uchar dev_addr, unsigned int offset, int alen, uchar * data,
|
||||||
void i2c_stop (void)
|
void i2c_stop (void)
|
||||||
{
|
{
|
||||||
GT_REG_WRITE (I2C_CONTROL, (0x1 << 4));
|
GT_REG_WRITE (I2C_CONTROL, (0x1 << 4));
|
||||||
asm(" sync");
|
asm(" sync");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -441,7 +441,7 @@ i2c_write (uchar dev_addr, unsigned int offset, int alen, uchar * data,
|
||||||
status);
|
status);
|
||||||
#endif
|
#endif
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
status = i2c_write_byte (data, len); /* write the data */
|
status = i2c_write_byte (data, len); /* write the data */
|
||||||
|
@ -450,7 +450,7 @@ i2c_write (uchar dev_addr, unsigned int offset, int alen, uchar * data,
|
||||||
printf ("Data not written: 0x%02x\n", status);
|
printf ("Data not written: 0x%02x\n", status);
|
||||||
#endif
|
#endif
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
/* issue a stop bit */
|
/* issue a stop bit */
|
||||||
i2c_stop ();
|
i2c_stop ();
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -32,41 +32,34 @@
|
||||||
|
|
||||||
extern ulong ide_bus_offset[CFG_IDE_MAXBUS];
|
extern ulong ide_bus_offset[CFG_IDE_MAXBUS];
|
||||||
|
|
||||||
int ide_preinit
|
int ide_preinit (void)
|
||||||
(
|
{
|
||||||
void
|
int status;
|
||||||
)
|
pci_dev_t devbusfn;
|
||||||
{
|
int l;
|
||||||
int status;
|
|
||||||
pci_dev_t devbusfn;
|
|
||||||
int l;
|
|
||||||
|
|
||||||
status = 1;
|
status = 1;
|
||||||
for(l=0;l<CFG_IDE_MAXBUS;l++)
|
for (l = 0; l < CFG_IDE_MAXBUS; l++) {
|
||||||
{
|
ide_bus_offset[l] = -ATA_STATUS;
|
||||||
ide_bus_offset[l] = -ATA_STATUS;
|
}
|
||||||
}
|
devbusfn = pci_find_device (0x1103, 0x0004, 0);
|
||||||
devbusfn = pci_find_device(0x1103, 0x0004, 0);
|
if (devbusfn != -1) {
|
||||||
if (devbusfn != -1)
|
status = 0;
|
||||||
{
|
|
||||||
status = 0;
|
|
||||||
|
|
||||||
pci_read_config_dword(devbusfn, PCI_BASE_ADDRESS_0, (u32 *)&ide_bus_offset[0]);
|
pci_read_config_dword (devbusfn, PCI_BASE_ADDRESS_0,
|
||||||
ide_bus_offset[0] &= 0xfffffffe;
|
(u32 *) & ide_bus_offset[0]);
|
||||||
ide_bus_offset[0] += CFG_PCI0_IO_SPACE;
|
ide_bus_offset[0] &= 0xfffffffe;
|
||||||
pci_read_config_dword(devbusfn, PCI_BASE_ADDRESS_2, (u32 *)&ide_bus_offset[1]);
|
ide_bus_offset[0] += CFG_PCI0_IO_SPACE;
|
||||||
ide_bus_offset[1] &= 0xfffffffe;
|
pci_read_config_dword (devbusfn, PCI_BASE_ADDRESS_2,
|
||||||
ide_bus_offset[1] += CFG_PCI0_IO_SPACE;
|
(u32 *) & ide_bus_offset[1]);
|
||||||
}
|
ide_bus_offset[1] &= 0xfffffffe;
|
||||||
return(status);
|
ide_bus_offset[1] += CFG_PCI0_IO_SPACE;
|
||||||
}
|
}
|
||||||
|
return (status);
|
||||||
|
}
|
||||||
|
|
||||||
void ide_set_reset
|
void ide_set_reset (int flag) {
|
||||||
(
|
return;
|
||||||
int flag
|
}
|
||||||
)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* of CONFIG_CMDS_IDE */
|
#endif /* of CONFIG_CMDS_IDE */
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* (C) Copyright 2003
|
* (C) Copyright 2003
|
||||||
* Ingo Assmus <ingo.assmus@keymile.com>
|
* Ingo Assmus <ingo.assmus@keymile.com>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
/* This tells PPCBoot that the config options are compiled in */
|
/* This tells PPCBoot that the config options are compiled in */
|
||||||
/* #undef ENV_IS_EMBEDDED */
|
/* #undef ENV_IS_EMBEDDED */
|
||||||
/* Don't touch this! PPCBOOT figures this out based on other
|
/* Don't touch this! PPCBOOT figures this out based on other
|
||||||
* magic. */
|
* magic. */
|
||||||
|
|
||||||
/* Uncomment and define any of the below options */
|
/* Uncomment and define any of the below options */
|
||||||
|
|
|
@ -158,13 +158,13 @@ board_asm_init:
|
||||||
rlwinm r3, r3, 16, 16, 31
|
rlwinm r3, r3, 16, 16, 31
|
||||||
lis r4, CFG_GT_REGS@h
|
lis r4, CFG_GT_REGS@h
|
||||||
ori r4, r4, CFG_GT_REGS@l
|
ori r4, r4, CFG_GT_REGS@l
|
||||||
li r5, INTEGRATED_SRAM_BASE_ADDR
|
li r5, INTEGRATED_SRAM_BASE_ADDR
|
||||||
stwbrx r3, r5, r4
|
stwbrx r3, r5, r4
|
||||||
|
|
||||||
2: lwbrx r6, r5, r4
|
2: lwbrx r6, r5, r4
|
||||||
cmp cr0, r3, r6
|
cmp cr0, r3, r6
|
||||||
bne 2b
|
bne 2b
|
||||||
|
|
||||||
/* done! */
|
/* done! */
|
||||||
blr
|
blr
|
||||||
#endif
|
#endif
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* modified for marvell db64360 eval board by
|
* modified for marvell db64360 eval board by
|
||||||
* Ingo Assmus <ingo.assmus@keymile.com>
|
* Ingo Assmus <ingo.assmus@keymile.com>
|
||||||
*
|
*
|
||||||
* modified for cpci750 board by
|
* modified for cpci750 board by
|
||||||
* Reinhard Arlt <reinhard.arlt@esd-electronics.com>
|
* Reinhard Arlt <reinhard.arlt@esd-electronics.com>
|
||||||
*
|
*
|
||||||
|
|
|
@ -278,13 +278,13 @@ int misc_init_r (void)
|
||||||
udelay(1000);
|
udelay(1000);
|
||||||
out32(GPIO0_OR, in32(GPIO0_OR) | CFG_TOUCH_RST);
|
out32(GPIO0_OR, in32(GPIO0_OR) | CFG_TOUCH_RST);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Enable power on PS/2 interface (with reset)
|
* Enable power on PS/2 interface (with reset)
|
||||||
*/
|
*/
|
||||||
*fpga_ctrl &= ~(CFG_FPGA_CTRL_PS2_PWR);
|
*fpga_ctrl &= ~(CFG_FPGA_CTRL_PS2_PWR);
|
||||||
for (i=0;i<500;i++)
|
for (i=0;i<500;i++)
|
||||||
udelay(1000);
|
udelay(1000);
|
||||||
*fpga_ctrl |= (CFG_FPGA_CTRL_PS2_PWR);
|
*fpga_ctrl |= (CFG_FPGA_CTRL_PS2_PWR);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get contrast value from environment variable
|
* Get contrast value from environment variable
|
||||||
|
|
|
@ -86,7 +86,7 @@ int misc_init_r (void)
|
||||||
*duart2_mcr = 0x08;
|
*duart2_mcr = 0x08;
|
||||||
*duart3_mcr = 0x08;
|
*duart3_mcr = 0x08;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set RS232/RS422 control (RS232 = high on GPIO)
|
* Set RS232/RS422 control (RS232 = high on GPIO)
|
||||||
*/
|
*/
|
||||||
val = in32(GPIO0_OR);
|
val = in32(GPIO0_OR);
|
||||||
|
|
|
@ -293,7 +293,7 @@ int misc_init_r (void)
|
||||||
*/
|
*/
|
||||||
#define PCI0_BRDGOPT1 0x4a
|
#define PCI0_BRDGOPT1 0x4a
|
||||||
pci_write_config_word(PCIDEVID_405GP, PCI0_BRDGOPT1, 0x3f20);
|
pci_write_config_word(PCIDEVID_405GP, PCI0_BRDGOPT1, 0x3f20);
|
||||||
// pci_write_config_word(PCIDEVID_405GP, PCI0_BRDGOPT1, 0x3f60);
|
/* pci_write_config_word(PCIDEVID_405GP, PCI0_BRDGOPT1, 0x3f60); */
|
||||||
|
|
||||||
#define plb0_acr 0x87
|
#define plb0_acr 0x87
|
||||||
/*
|
/*
|
||||||
|
@ -303,10 +303,10 @@ int misc_init_r (void)
|
||||||
|
|
||||||
#if 0 /* test-only */
|
#if 0 /* test-only */
|
||||||
printf("CCR0=%08x\n", mfspr(ccr0)); /* test-only */
|
printf("CCR0=%08x\n", mfspr(ccr0)); /* test-only */
|
||||||
// mtspr(ccr0, (mfspr(ccr0) & 0xff8fffff) | 0x00100000);
|
/* mtspr(ccr0, (mfspr(ccr0) & 0xff8fffff) | 0x00100000); */
|
||||||
mtspr(ccr0, (mfspr(ccr0) & 0xff8fffff) | 0x00000000);
|
mtspr(ccr0, (mfspr(ccr0) & 0xff8fffff) | 0x00000000);
|
||||||
#endif
|
#endif
|
||||||
// printf("CCR0=%08x\n", mfspr(ccr0)); /* test-only */
|
/* printf("CCR0=%08x\n", mfspr(ccr0)); /* test-only */ */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
free(dst);
|
free(dst);
|
||||||
|
|
|
@ -50,186 +50,174 @@
|
||||||
write_without_sync:
|
write_without_sync:
|
||||||
/*
|
/*
|
||||||
* Write one values to host via pci busmastering
|
* Write one values to host via pci busmastering
|
||||||
* ptr = 0xc0000000 -> 0x01000000 (PCI)
|
* ptr = 0xc0000000 -> 0x01000000 (PCI)
|
||||||
* *ptr = 0x01234567;
|
* *ptr = 0x01234567;
|
||||||
*/
|
*/
|
||||||
addi r31,0,0
|
addi r31,0,0
|
||||||
lis r31,0xc000
|
lis r31,0xc000
|
||||||
|
|
||||||
start1:
|
start1:
|
||||||
lis r0,0x0123
|
lis r0,0x0123
|
||||||
ori r0,r0,0x4567
|
ori r0,r0,0x4567
|
||||||
stw r0,0(r31)
|
stw r0,0(r31)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read one value back
|
* Read one value back
|
||||||
* ptr = (volatile unsigned long *)addr;
|
* ptr = (volatile unsigned long *)addr;
|
||||||
* val = *ptr;
|
* val = *ptr;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
lwz r0,0(r31)
|
lwz r0,0(r31)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* One pci config write
|
* One pci config write
|
||||||
* ibmPciConfigWrite(0x2e, 2, 0x1234);
|
* ibmPciConfigWrite(0x2e, 2, 0x1234);
|
||||||
*/
|
*/
|
||||||
/* subsystem id */
|
/* subsystem id */
|
||||||
|
|
||||||
|
li r4,0x002C
|
||||||
|
oris r4,r4,0x8000
|
||||||
|
lis r3,0xEEC0
|
||||||
|
stwbrx r4,0,r3
|
||||||
|
|
||||||
|
li r5,0x1234
|
||||||
|
ori r3,r3,0x4
|
||||||
|
stwbrx r5,0,r3
|
||||||
|
|
||||||
li r4,0x002C
|
b start1
|
||||||
oris r4,r4,0x8000
|
|
||||||
lis r3,0xEEC0
|
|
||||||
stwbrx r4,0,r3
|
|
||||||
|
|
||||||
li r5,0x1234
|
|
||||||
ori r3,r3,0x4
|
|
||||||
stwbrx r5,0,r3
|
|
||||||
|
|
||||||
b start1
|
|
||||||
|
|
||||||
blr /* never reached !!!! */
|
blr /* never reached !!!! */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.globl write_with_sync
|
.globl write_with_sync
|
||||||
write_with_sync:
|
write_with_sync:
|
||||||
/*
|
/*
|
||||||
* Write one values to host via pci busmastering
|
* Write one values to host via pci busmastering
|
||||||
* ptr = 0xc0000000 -> 0x01000000 (PCI)
|
* ptr = 0xc0000000 -> 0x01000000 (PCI)
|
||||||
* *ptr = 0x01234567;
|
* *ptr = 0x01234567;
|
||||||
*/
|
*/
|
||||||
addi r31,0,0
|
addi r31,0,0
|
||||||
lis r31,0xc000
|
lis r31,0xc000
|
||||||
|
|
||||||
start2:
|
start2:
|
||||||
lis r0,0x0123
|
lis r0,0x0123
|
||||||
ori r0,r0,0x4567
|
ori r0,r0,0x4567
|
||||||
stw r0,0(r31)
|
stw r0,0(r31)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read one value back
|
* Read one value back
|
||||||
* ptr = (volatile unsigned long *)addr;
|
* ptr = (volatile unsigned long *)addr;
|
||||||
* val = *ptr;
|
* val = *ptr;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
lwz r0,0(r31)
|
lwz r0,0(r31)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* One pci config write
|
* One pci config write
|
||||||
* ibmPciConfigWrite(0x2e, 2, 0x1234);
|
* ibmPciConfigWrite(0x2e, 2, 0x1234);
|
||||||
*/
|
*/
|
||||||
/* subsystem id */
|
/* subsystem id */
|
||||||
|
|
||||||
|
li r4,0x002C
|
||||||
|
oris r4,r4,0x8000
|
||||||
|
lis r3,0xEEC0
|
||||||
|
stwbrx r4,0,r3
|
||||||
|
sync
|
||||||
|
|
||||||
|
li r5,0x1234
|
||||||
|
ori r3,r3,0x4
|
||||||
|
stwbrx r5,0,r3
|
||||||
|
sync
|
||||||
|
|
||||||
li r4,0x002C
|
b start2
|
||||||
oris r4,r4,0x8000
|
|
||||||
lis r3,0xEEC0
|
|
||||||
stwbrx r4,0,r3
|
|
||||||
sync
|
|
||||||
|
|
||||||
li r5,0x1234
|
|
||||||
ori r3,r3,0x4
|
|
||||||
stwbrx r5,0,r3
|
|
||||||
sync
|
|
||||||
|
|
||||||
b start2
|
|
||||||
|
|
||||||
blr /* never reached !!!! */
|
blr /* never reached !!!! */
|
||||||
|
|
||||||
|
|
||||||
.globl write_with_less_sync
|
.globl write_with_less_sync
|
||||||
write_with_less_sync:
|
write_with_less_sync:
|
||||||
/*
|
/*
|
||||||
* Write one values to host via pci busmastering
|
* Write one values to host via pci busmastering
|
||||||
* ptr = 0xc0000000 -> 0x01000000 (PCI)
|
* ptr = 0xc0000000 -> 0x01000000 (PCI)
|
||||||
* *ptr = 0x01234567;
|
* *ptr = 0x01234567;
|
||||||
*/
|
*/
|
||||||
addi r31,0,0
|
addi r31,0,0
|
||||||
lis r31,0xc000
|
lis r31,0xc000
|
||||||
|
|
||||||
start2b:
|
start2b:
|
||||||
lis r0,0x0123
|
lis r0,0x0123
|
||||||
ori r0,r0,0x4567
|
ori r0,r0,0x4567
|
||||||
stw r0,0(r31)
|
stw r0,0(r31)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read one value back
|
* Read one value back
|
||||||
* ptr = (volatile unsigned long *)addr;
|
* ptr = (volatile unsigned long *)addr;
|
||||||
* val = *ptr;
|
* val = *ptr;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
lwz r0,0(r31)
|
lwz r0,0(r31)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* One pci config write
|
* One pci config write
|
||||||
* ibmPciConfigWrite(0x2e, 2, 0x1234);
|
* ibmPciConfigWrite(0x2e, 2, 0x1234);
|
||||||
*/
|
*/
|
||||||
/* subsystem id */
|
/* subsystem id */
|
||||||
|
|
||||||
|
li r4,0x002C
|
||||||
|
oris r4,r4,0x8000
|
||||||
|
lis r3,0xEEC0
|
||||||
|
stwbrx r4,0,r3
|
||||||
|
sync
|
||||||
|
|
||||||
|
li r5,0x1234
|
||||||
li r4,0x002C
|
ori r3,r3,0x4
|
||||||
oris r4,r4,0x8000
|
stwbrx r5,0,r3
|
||||||
lis r3,0xEEC0
|
|
||||||
stwbrx r4,0,r3
|
|
||||||
sync
|
|
||||||
|
|
||||||
li r5,0x1234
|
|
||||||
ori r3,r3,0x4
|
|
||||||
stwbrx r5,0,r3
|
|
||||||
/* sync */
|
/* sync */
|
||||||
|
|
||||||
b start2b
|
b start2b
|
||||||
|
|
||||||
blr /* never reached !!!! */
|
blr /* never reached !!!! */
|
||||||
|
|
||||||
|
|
||||||
.globl write_with_more_sync
|
.globl write_with_more_sync
|
||||||
write_with_more_sync:
|
write_with_more_sync:
|
||||||
/*
|
/*
|
||||||
* Write one values to host via pci busmastering
|
* Write one values to host via pci busmastering
|
||||||
* ptr = 0xc0000000 -> 0x01000000 (PCI)
|
* ptr = 0xc0000000 -> 0x01000000 (PCI)
|
||||||
* *ptr = 0x01234567;
|
* *ptr = 0x01234567;
|
||||||
*/
|
*/
|
||||||
addi r31,0,0
|
addi r31,0,0
|
||||||
lis r31,0xc000
|
lis r31,0xc000
|
||||||
|
|
||||||
start3:
|
start3:
|
||||||
lis r0,0x0123
|
lis r0,0x0123
|
||||||
ori r0,r0,0x4567
|
ori r0,r0,0x4567
|
||||||
stw r0,0(r31)
|
stw r0,0(r31)
|
||||||
sync
|
sync
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read one value back
|
* Read one value back
|
||||||
* ptr = (volatile unsigned long *)addr;
|
* ptr = (volatile unsigned long *)addr;
|
||||||
* val = *ptr;
|
* val = *ptr;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
lwz r0,0(r31)
|
lwz r0,0(r31)
|
||||||
sync
|
sync
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* One pci config write
|
* One pci config write
|
||||||
* ibmPciConfigWrite(0x2e, 2, 0x1234);
|
* ibmPciConfigWrite(0x2e, 2, 0x1234);
|
||||||
*/
|
*/
|
||||||
/* subsystem id (PCIC0_SBSYSVID)*/
|
/* subsystem id (PCIC0_SBSYSVID)*/
|
||||||
|
|
||||||
|
li r4,0x002C
|
||||||
|
oris r4,r4,0x8000
|
||||||
|
lis r3,0xEEC0
|
||||||
|
stwbrx r4,0,r3
|
||||||
|
sync
|
||||||
|
|
||||||
|
li r5,0x1234
|
||||||
|
ori r3,r3,0x4
|
||||||
|
stwbrx r5,0,r3
|
||||||
|
sync
|
||||||
|
|
||||||
li r4,0x002C
|
b start3
|
||||||
oris r4,r4,0x8000
|
|
||||||
lis r3,0xEEC0
|
|
||||||
stwbrx r4,0,r3
|
|
||||||
sync
|
|
||||||
|
|
||||||
li r5,0x1234
|
|
||||||
ori r3,r3,0x4
|
|
||||||
stwbrx r5,0,r3
|
|
||||||
sync
|
|
||||||
|
|
||||||
b start3
|
|
||||||
|
|
||||||
blr /* never reached !!!! */
|
blr /* never reached !!!! */
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
|
|
||||||
#undef DEBUG_FLASH
|
#undef DEBUG_FLASH
|
||||||
/*
|
/*
|
||||||
* This file implements a Common Flash Interface (CFI) driver for ppcboot.
|
* This file implements a Common Flash Interface (CFI) driver for ppcboot.
|
||||||
* The width of the port and the width of the chips are determined at initialization.
|
* The width of the port and the width of the chips are determined at initialization.
|
||||||
|
@ -85,12 +85,8 @@
|
||||||
#define FLASH_OFFSET_USER_PROTECTION 0x85
|
#define FLASH_OFFSET_USER_PROTECTION 0x85
|
||||||
#define FLASH_OFFSET_INTEL_PROTECTION 0x81
|
#define FLASH_OFFSET_INTEL_PROTECTION 0x81
|
||||||
|
|
||||||
|
|
||||||
#define FLASH_MAN_CFI 0x01000000
|
#define FLASH_MAN_CFI 0x01000000
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef union {
|
typedef union {
|
||||||
unsigned char c;
|
unsigned char c;
|
||||||
unsigned short w;
|
unsigned short w;
|
||||||
|
@ -107,13 +103,10 @@ typedef union {
|
||||||
|
|
||||||
flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */
|
flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */
|
||||||
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
* Functions
|
* Functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void flash_add_byte(flash_info_t *info, cfiword_t * cword, uchar c);
|
static void flash_add_byte(flash_info_t *info, cfiword_t * cword, uchar c);
|
||||||
static void flash_make_cmd(flash_info_t * info, uchar cmd, void * cmdbuf);
|
static void flash_make_cmd(flash_info_t * info, uchar cmd, void * cmdbuf);
|
||||||
static void flash_write_cmd(flash_info_t * info, int sect, uchar offset, uchar cmd);
|
static void flash_write_cmd(flash_info_t * info, int sect, uchar offset, uchar cmd);
|
||||||
|
@ -249,7 +242,7 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
|
||||||
flash_write_cmd(info, sect, 0, FLASH_CMD_CLEAR_STATUS);
|
flash_write_cmd(info, sect, 0, FLASH_CMD_CLEAR_STATUS);
|
||||||
flash_write_cmd(info, sect, 0, FLASH_CMD_BLOCK_ERASE);
|
flash_write_cmd(info, sect, 0, FLASH_CMD_BLOCK_ERASE);
|
||||||
flash_write_cmd(info, sect, 0, FLASH_CMD_ERASE_CONFIRM);
|
flash_write_cmd(info, sect, 0, FLASH_CMD_ERASE_CONFIRM);
|
||||||
|
|
||||||
if(flash_full_status_check(info, sect, info->erase_blk_tout, "erase")) {
|
if(flash_full_status_check(info, sect, info->erase_blk_tout, "erase")) {
|
||||||
rcode = 1;
|
rcode = 1;
|
||||||
} else
|
} else
|
||||||
|
@ -277,7 +270,7 @@ void flash_print_info (flash_info_t *info)
|
||||||
info->size >> 20, info->sector_count);
|
info->size >> 20, info->sector_count);
|
||||||
printf(" Erase timeout %ld ms, write timeout %ld ms, buffer write timeout %ld ms, buffer size %d\n",
|
printf(" Erase timeout %ld ms, write timeout %ld ms, buffer write timeout %ld ms, buffer size %d\n",
|
||||||
info->erase_blk_tout, info->write_tout, info->buffer_write_tout, info->buffer_size);
|
info->erase_blk_tout, info->write_tout, info->buffer_write_tout, info->buffer_size);
|
||||||
|
|
||||||
printf (" Sector Start Addresses:");
|
printf (" Sector Start Addresses:");
|
||||||
for (i=0; i<info->sector_count; ++i) {
|
for (i=0; i<info->sector_count; ++i) {
|
||||||
#ifdef CFG_FLASH_EMPTY_INFO
|
#ifdef CFG_FLASH_EMPTY_INFO
|
||||||
|
@ -286,28 +279,28 @@ void flash_print_info (flash_info_t *info)
|
||||||
int erased;
|
int erased;
|
||||||
volatile unsigned long *flash;
|
volatile unsigned long *flash;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check if whole sector is erased
|
* Check if whole sector is erased
|
||||||
*/
|
*/
|
||||||
if (i != (info->sector_count-1))
|
if (i != (info->sector_count-1))
|
||||||
size = info->start[i+1] - info->start[i];
|
size = info->start[i+1] - info->start[i];
|
||||||
else
|
else
|
||||||
size = info->start[0] + info->size - info->start[i];
|
size = info->start[0] + info->size - info->start[i];
|
||||||
erased = 1;
|
erased = 1;
|
||||||
flash = (volatile unsigned long *)info->start[i];
|
flash = (volatile unsigned long *)info->start[i];
|
||||||
size = size >> 2; /* divide by 4 for longword access */
|
size = size >> 2; /* divide by 4 for longword access */
|
||||||
for (k=0; k<size; k++)
|
for (k=0; k<size; k++)
|
||||||
{
|
{
|
||||||
if (*flash++ != 0xffffffff)
|
if (*flash++ != 0xffffffff)
|
||||||
{
|
{
|
||||||
erased = 0;
|
erased = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((i % 5) == 0)
|
if ((i % 5) == 0)
|
||||||
printf ("\n ");
|
printf ("\n ");
|
||||||
/* print empty and read-only info */
|
/* print empty and read-only info */
|
||||||
printf (" %08lX%s%s",
|
printf (" %08lX%s%s",
|
||||||
info->start[i],
|
info->start[i],
|
||||||
erased ? " E" : " ",
|
erased ? " E" : " ",
|
||||||
|
@ -414,7 +407,7 @@ int flash_real_protect(flash_info_t *info, long sector, int prot)
|
||||||
else
|
else
|
||||||
flash_write_cmd(info, sector, 0, FLASH_CMD_PROTECT_CLEAR);
|
flash_write_cmd(info, sector, 0, FLASH_CMD_PROTECT_CLEAR);
|
||||||
|
|
||||||
if((retcode = flash_full_status_check(info, sector, info->erase_blk_tout,
|
if((retcode = flash_full_status_check(info, sector, info->erase_blk_tout,
|
||||||
prot?"protect":"unprotect")) == 0) {
|
prot?"protect":"unprotect")) == 0) {
|
||||||
|
|
||||||
info->protect[sector] = prot;
|
info->protect[sector] = prot;
|
||||||
|
@ -464,7 +457,7 @@ static int flash_full_status_check(flash_info_t * info, ulong sector, ulong tout
|
||||||
printf("Command Sequence Error.\n");
|
printf("Command Sequence Error.\n");
|
||||||
} else if(flash_isset(info, sector, 0, FLASH_STATUS_ECLBS)){
|
} else if(flash_isset(info, sector, 0, FLASH_STATUS_ECLBS)){
|
||||||
printf("Block Erase Error.\n");
|
printf("Block Erase Error.\n");
|
||||||
retcode = ERR_NOT_ERASED;
|
retcode = ERR_NOT_ERASED;
|
||||||
} else if (flash_isset(info, sector, 0, FLASH_STATUS_PSLBS)) {
|
} else if (flash_isset(info, sector, 0, FLASH_STATUS_PSLBS)) {
|
||||||
printf("Locking Error\n");
|
printf("Locking Error\n");
|
||||||
}
|
}
|
||||||
|
@ -733,7 +726,7 @@ static int find_sector(flash_info_t *info, ulong addr)
|
||||||
{
|
{
|
||||||
int sector;
|
int sector;
|
||||||
for(sector = info->sector_count - 1; sector >= 0; sector--) {
|
for(sector = info->sector_count - 1; sector >= 0; sector--) {
|
||||||
if(addr >= info->start[sector])
|
if(addr >= info->start[sector])
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return sector;
|
return sector;
|
||||||
|
@ -741,7 +734,7 @@ static int find_sector(flash_info_t *info, ulong addr)
|
||||||
|
|
||||||
static int flash_write_cfibuffer(flash_info_t * info, ulong dest, uchar * cp, int len)
|
static int flash_write_cfibuffer(flash_info_t * info, ulong dest, uchar * cp, int len)
|
||||||
{
|
{
|
||||||
|
|
||||||
int sector;
|
int sector;
|
||||||
int cnt;
|
int cnt;
|
||||||
int retcode;
|
int retcode;
|
||||||
|
@ -789,8 +782,8 @@ static int flash_write_cfibuffer(flash_info_t * info, ulong dest, uchar * cp, in
|
||||||
flash_write_cmd(info, sector, 0, FLASH_CMD_WRITE_BUFFER_CONFIRM);
|
flash_write_cmd(info, sector, 0, FLASH_CMD_WRITE_BUFFER_CONFIRM);
|
||||||
retcode = flash_full_status_check(info, sector, info->buffer_write_tout,
|
retcode = flash_full_status_check(info, sector, info->buffer_write_tout,
|
||||||
"buffer write");
|
"buffer write");
|
||||||
}
|
}
|
||||||
flash_write_cmd(info, sector, 0, FLASH_CMD_CLEAR_STATUS);
|
flash_write_cmd(info, sector, 0, FLASH_CMD_CLEAR_STATUS);
|
||||||
return retcode;
|
return retcode;
|
||||||
}
|
}
|
||||||
#endif /* CFG_USE_FLASH_BUFFER_WRITE */
|
#endif /* CFG_USE_FLASH_BUFFER_WRITE */
|
||||||
|
|
|
@ -60,7 +60,7 @@ const unsigned char fpgadata[] =
|
||||||
|
|
||||||
int checkboard (void) {
|
int checkboard (void) {
|
||||||
ulong val;
|
ulong val;
|
||||||
uchar val8;
|
uchar val8;
|
||||||
|
|
||||||
puts ("Board: ");
|
puts ("Board: ");
|
||||||
puts("esd TASREG");
|
puts("esd TASREG");
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
#include <command.h>
|
#include <command.h>
|
||||||
|
|
||||||
|
|
||||||
#define MEM_MCOPT1_INIT_VAL 0x00800000
|
#define MEM_MCOPT1_INIT_VAL 0x00800000
|
||||||
#define MEM_RTR_INIT_VAL 0x04070000
|
#define MEM_RTR_INIT_VAL 0x04070000
|
||||||
#define MEM_PMIT_INIT_VAL 0x07c00000
|
#define MEM_PMIT_INIT_VAL 0x07c00000
|
||||||
|
@ -34,11 +33,8 @@
|
||||||
#define MEM_SDTR1_INIT_VAL 0x00854005
|
#define MEM_SDTR1_INIT_VAL 0x00854005
|
||||||
#define SDRAM0_CFG_ENABLE 0x80000000
|
#define SDRAM0_CFG_ENABLE 0x80000000
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define CFG_SDRAM_SIZE 0x04000000 /* 64 MB */
|
#define CFG_SDRAM_SIZE 0x04000000 /* 64 MB */
|
||||||
|
|
||||||
|
|
||||||
int board_early_init_f (void)
|
int board_early_init_f (void)
|
||||||
{
|
{
|
||||||
#if 0 /* test-only */
|
#if 0 /* test-only */
|
||||||
|
@ -119,19 +115,19 @@ int checkboard (void)
|
||||||
long int init_sdram_static_settings(void)
|
long int init_sdram_static_settings(void)
|
||||||
{
|
{
|
||||||
#define mtsdram0(reg, data) mtdcr(memcfga,reg);mtdcr(memcfgd,data)
|
#define mtsdram0(reg, data) mtdcr(memcfga,reg);mtdcr(memcfgd,data)
|
||||||
/* disable memcontroller so updates work */
|
/* disable memcontroller so updates work */
|
||||||
mtsdram0( mem_mcopt1, MEM_MCOPT1_INIT_VAL );
|
mtsdram0( mem_mcopt1, MEM_MCOPT1_INIT_VAL );
|
||||||
mtsdram0( mem_rtr , MEM_RTR_INIT_VAL );
|
mtsdram0( mem_rtr , MEM_RTR_INIT_VAL );
|
||||||
mtsdram0( mem_pmit , MEM_PMIT_INIT_VAL );
|
mtsdram0( mem_pmit , MEM_PMIT_INIT_VAL );
|
||||||
mtsdram0( mem_mb0cf , MEM_MB0CF_INIT_VAL );
|
mtsdram0( mem_mb0cf , MEM_MB0CF_INIT_VAL );
|
||||||
mtsdram0( mem_mb1cf , MEM_MB1CF_INIT_VAL );
|
mtsdram0( mem_mb1cf , MEM_MB1CF_INIT_VAL );
|
||||||
mtsdram0( mem_sdtr1 , MEM_SDTR1_INIT_VAL );
|
mtsdram0( mem_sdtr1 , MEM_SDTR1_INIT_VAL );
|
||||||
|
|
||||||
/* SDRAM have a power on delay, 500 micro should do */
|
/* SDRAM have a power on delay, 500 micro should do */
|
||||||
udelay(500);
|
udelay(500);
|
||||||
mtsdram0( mem_mcopt1, MEM_MCOPT1_INIT_VAL|SDRAM0_CFG_ENABLE );
|
mtsdram0( mem_mcopt1, MEM_MCOPT1_INIT_VAL|SDRAM0_CFG_ENABLE );
|
||||||
|
|
||||||
return (CFG_SDRAM_SIZE); /* CFG_SDRAM_SIZE is in G2000.h */
|
return (CFG_SDRAM_SIZE); /* CFG_SDRAM_SIZE is in G2000.h */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -141,9 +137,9 @@ long int initdram (int board_type)
|
||||||
|
|
||||||
/* flzt, we can still turn this on in the future */
|
/* flzt, we can still turn this on in the future */
|
||||||
/* #ifdef CONFIG_SPD_EEPROM
|
/* #ifdef CONFIG_SPD_EEPROM
|
||||||
ret = spd_sdram ();
|
ret = spd_sdram ();
|
||||||
#else
|
#else
|
||||||
ret = init_sdram_static_settings();
|
ret = init_sdram_static_settings();
|
||||||
#endif
|
#endif
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -85,12 +85,8 @@
|
||||||
#define FLASH_OFFSET_USER_PROTECTION 0x85
|
#define FLASH_OFFSET_USER_PROTECTION 0x85
|
||||||
#define FLASH_OFFSET_INTEL_PROTECTION 0x81
|
#define FLASH_OFFSET_INTEL_PROTECTION 0x81
|
||||||
|
|
||||||
|
|
||||||
#define FLASH_MAN_CFI 0x01000000
|
#define FLASH_MAN_CFI 0x01000000
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef union {
|
typedef union {
|
||||||
unsigned char c;
|
unsigned char c;
|
||||||
unsigned short w;
|
unsigned short w;
|
||||||
|
@ -107,13 +103,10 @@ typedef union {
|
||||||
|
|
||||||
flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */
|
flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */
|
||||||
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
* Functions
|
* Functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void flash_add_byte(flash_info_t *info, cfiword_t * cword, uchar c);
|
static void flash_add_byte(flash_info_t *info, cfiword_t * cword, uchar c);
|
||||||
static void flash_make_cmd(flash_info_t * info, uchar cmd, void * cmdbuf);
|
static void flash_make_cmd(flash_info_t * info, uchar cmd, void * cmdbuf);
|
||||||
static void flash_write_cmd(flash_info_t * info, int sect, uchar offset, uchar cmd);
|
static void flash_write_cmd(flash_info_t * info, int sect, uchar offset, uchar cmd);
|
||||||
|
@ -286,28 +279,28 @@ void flash_print_info (flash_info_t *info)
|
||||||
int erased;
|
int erased;
|
||||||
volatile unsigned long *flash;
|
volatile unsigned long *flash;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check if whole sector is erased
|
* Check if whole sector is erased
|
||||||
*/
|
*/
|
||||||
if (i != (info->sector_count-1))
|
if (i != (info->sector_count-1))
|
||||||
size = info->start[i+1] - info->start[i];
|
size = info->start[i+1] - info->start[i];
|
||||||
else
|
else
|
||||||
size = info->start[0] + info->size - info->start[i];
|
size = info->start[0] + info->size - info->start[i];
|
||||||
erased = 1;
|
erased = 1;
|
||||||
flash = (volatile unsigned long *)info->start[i];
|
flash = (volatile unsigned long *)info->start[i];
|
||||||
size = size >> 2; /* divide by 4 for longword access */
|
size = size >> 2; /* divide by 4 for longword access */
|
||||||
for (k=0; k<size; k++)
|
for (k=0; k<size; k++)
|
||||||
{
|
{
|
||||||
if (*flash++ != 0xffffffff)
|
if (*flash++ != 0xffffffff)
|
||||||
{
|
{
|
||||||
erased = 0;
|
erased = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((i % 5) == 0)
|
if ((i % 5) == 0)
|
||||||
printf ("\n ");
|
printf ("\n ");
|
||||||
/* print empty and read-only info */
|
/* print empty and read-only info */
|
||||||
printf (" %08lX%s%s",
|
printf (" %08lX%s%s",
|
||||||
info->start[i],
|
info->start[i],
|
||||||
erased ? " E" : " ",
|
erased ? " E" : " ",
|
||||||
|
@ -464,7 +457,7 @@ static int flash_full_status_check(flash_info_t * info, ulong sector, ulong tout
|
||||||
printf("Command Sequence Error.\n");
|
printf("Command Sequence Error.\n");
|
||||||
} else if(flash_isset(info, sector, 0, FLASH_STATUS_ECLBS)){
|
} else if(flash_isset(info, sector, 0, FLASH_STATUS_ECLBS)){
|
||||||
printf("Block Erase Error.\n");
|
printf("Block Erase Error.\n");
|
||||||
retcode = ERR_NOT_ERASED;
|
retcode = ERR_NOT_ERASED;
|
||||||
} else if (flash_isset(info, sector, 0, FLASH_STATUS_PSLBS)) {
|
} else if (flash_isset(info, sector, 0, FLASH_STATUS_PSLBS)) {
|
||||||
printf("Locking Error\n");
|
printf("Locking Error\n");
|
||||||
}
|
}
|
||||||
|
|
|
@ -142,9 +142,9 @@ void flash_print_info (flash_info_t *info)
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (info->flash_id & FLASH_TYPEMASK) {
|
switch (info->flash_id & FLASH_TYPEMASK) {
|
||||||
case FLASH_AM116DB:
|
case FLASH_AM116DB:
|
||||||
printf ("AM29LV116DB (16Mbit, bottom boot sect)\n");
|
printf ("AM29LV116DB (16Mbit, bottom boot sect)\n");
|
||||||
break;
|
break;
|
||||||
case FLASH_AMLV128U:
|
case FLASH_AMLV128U:
|
||||||
printf ("AM29LV128ML (128Mbit, uniform sector size)\n");
|
printf ("AM29LV128ML (128Mbit, uniform sector size)\n");
|
||||||
break;
|
break;
|
||||||
|
@ -220,21 +220,21 @@ ulong flash_get_size (FPWV *addr, flash_info_t *info)
|
||||||
|
|
||||||
case (uchar)AMD_ID_LV116DB:
|
case (uchar)AMD_ID_LV116DB:
|
||||||
debug ("Chip: AM29LV116DB\n");
|
debug ("Chip: AM29LV116DB\n");
|
||||||
info->flash_id += FLASH_AM116DB;
|
info->flash_id += FLASH_AM116DB;
|
||||||
info->sector_count = 35;
|
info->sector_count = 35;
|
||||||
info->size = 0x00200000;
|
info->size = 0x00200000;
|
||||||
/*
|
/*
|
||||||
* The first 4 sectors are 16 kB, 8 kB, 8 kB and 32 kB, all
|
* The first 4 sectors are 16 kB, 8 kB, 8 kB and 32 kB, all
|
||||||
* the other ones are 64 kB
|
* the other ones are 64 kB
|
||||||
*/
|
*/
|
||||||
info->start[0] = base + 0x00000000;
|
info->start[0] = base + 0x00000000;
|
||||||
info->start[1] = base + 0x00004000;
|
info->start[1] = base + 0x00004000;
|
||||||
info->start[2] = base + 0x00006000;
|
info->start[2] = base + 0x00006000;
|
||||||
info->start[3] = base + 0x00008000;
|
info->start[3] = base + 0x00008000;
|
||||||
for( i = 4; i < info->sector_count; i++ )
|
for( i = 4; i < info->sector_count; i++ )
|
||||||
info->start[i] =
|
info->start[i] =
|
||||||
base + (i * (64 << 10)) - 0x00030000;
|
base + (i * (64 << 10)) - 0x00030000;
|
||||||
break; /* => 2 MB */
|
break; /* => 2 MB */
|
||||||
|
|
||||||
case (FPW)AMD_ID_LV160B:
|
case (FPW)AMD_ID_LV160B:
|
||||||
debug ("Chip: AM29LV160MB\n");
|
debug ("Chip: AM29LV160MB\n");
|
||||||
|
@ -377,8 +377,8 @@ int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
|
||||||
|
|
||||||
for (i = 0; i < cnt; i++)
|
for (i = 0; i < cnt; i++)
|
||||||
if ((rc = write_word_amd(info, (FPW *)(addr+i), src[i])) != 0) {
|
if ((rc = write_word_amd(info, (FPW *)(addr+i), src[i])) != 0) {
|
||||||
return (rc);
|
return (rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
|
@ -176,4 +176,3 @@ void flash_preinit(void)
|
||||||
*/
|
*/
|
||||||
*(vu_long *)MPC5XXX_BOOTCS_CFG &= ~0x1; /* clear RO */
|
*(vu_long *)MPC5XXX_BOOTCS_CFG &= ~0x1; /* clear RO */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -419,7 +419,7 @@ int last_stage_init (void)
|
||||||
/* save origianl SRAM content */
|
/* save origianl SRAM content */
|
||||||
save = *(volatile u16 *)CFG_CS2_START;
|
save = *(volatile u16 *)CFG_CS2_START;
|
||||||
restore = 1;
|
restore = 1;
|
||||||
|
|
||||||
/* write test pattern to SRAM */
|
/* write test pattern to SRAM */
|
||||||
*(volatile u16 *)CFG_CS2_START = 0xA5A5;
|
*(volatile u16 *)CFG_CS2_START = 0xA5A5;
|
||||||
__asm__ volatile ("sync");
|
__asm__ volatile ("sync");
|
||||||
|
@ -430,7 +430,7 @@ int last_stage_init (void)
|
||||||
tmp = *(volatile u16 *)CFG_FLASH_BASE;
|
tmp = *(volatile u16 *)CFG_FLASH_BASE;
|
||||||
if (tmp == 0xA5A5)
|
if (tmp == 0xA5A5)
|
||||||
puts ("!! possible error in SRAM detection\n");
|
puts ("!! possible error in SRAM detection\n");
|
||||||
|
|
||||||
if (*(volatile u16 *)CFG_CS2_START != 0xA5A5) {
|
if (*(volatile u16 *)CFG_CS2_START != 0xA5A5) {
|
||||||
/* no SRAM at all, disable cs */
|
/* no SRAM at all, disable cs */
|
||||||
*(vu_long *)MPC5XXX_ADDECR &= ~(1 << 18);
|
*(vu_long *)MPC5XXX_ADDECR &= ~(1 << 18);
|
||||||
|
@ -445,31 +445,31 @@ int last_stage_init (void)
|
||||||
__asm__ volatile ("sync");
|
__asm__ volatile ("sync");
|
||||||
if (*(volatile u16 *)(CFG_CS2_START + (1<<19)) == 0x1111) {
|
if (*(volatile u16 *)(CFG_CS2_START + (1<<19)) == 0x1111) {
|
||||||
/* SRAM size = 512 kByte */
|
/* SRAM size = 512 kByte */
|
||||||
*(vu_long *)MPC5XXX_CS2_STOP = STOP_REG(CFG_CS2_START,
|
*(vu_long *)MPC5XXX_CS2_STOP = STOP_REG(CFG_CS2_START,
|
||||||
0x80000);
|
0x80000);
|
||||||
__asm__ volatile ("sync");
|
__asm__ volatile ("sync");
|
||||||
puts ("SRAM: 512 kB\n");
|
puts ("SRAM: 512 kB\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
puts ("!! possible error in SRAM detection\n");
|
puts ("!! possible error in SRAM detection\n");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
puts ("SRAM: 1 MB\n");
|
puts ("SRAM: 1 MB\n");
|
||||||
}
|
}
|
||||||
/* restore origianl SRAM content */
|
/* restore origianl SRAM content */
|
||||||
if (restore) {
|
if (restore) {
|
||||||
*(volatile u16 *)CFG_CS2_START = save;
|
*(volatile u16 *)CFG_CS2_START = save;
|
||||||
__asm__ volatile ("sync");
|
__asm__ volatile ("sync");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check for Grafic Controller
|
* Check for Grafic Controller
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* save origianl FB content */
|
/* save origianl FB content */
|
||||||
save = *(volatile u16 *)CFG_CS1_START;
|
save = *(volatile u16 *)CFG_CS1_START;
|
||||||
restore = 1;
|
restore = 1;
|
||||||
|
|
||||||
/* write test pattern to FB memory */
|
/* write test pattern to FB memory */
|
||||||
*(volatile u16 *)CFG_CS1_START = 0xA5A5;
|
*(volatile u16 *)CFG_CS1_START = 0xA5A5;
|
||||||
__asm__ volatile ("sync");
|
__asm__ volatile ("sync");
|
||||||
|
@ -480,7 +480,7 @@ int last_stage_init (void)
|
||||||
tmp = *(volatile u16 *)CFG_FLASH_BASE;
|
tmp = *(volatile u16 *)CFG_FLASH_BASE;
|
||||||
if (tmp == 0xA5A5)
|
if (tmp == 0xA5A5)
|
||||||
puts ("!! possible error in grafic controller detection\n");
|
puts ("!! possible error in grafic controller detection\n");
|
||||||
|
|
||||||
if (*(volatile u16 *)CFG_CS1_START != 0xA5A5) {
|
if (*(volatile u16 *)CFG_CS1_START != 0xA5A5) {
|
||||||
/* no grafic controller at all, disable cs */
|
/* no grafic controller at all, disable cs */
|
||||||
*(vu_long *)MPC5XXX_ADDECR &= ~(1 << 17);
|
*(vu_long *)MPC5XXX_ADDECR &= ~(1 << 17);
|
||||||
|
@ -490,14 +490,14 @@ int last_stage_init (void)
|
||||||
__asm__ volatile ("sync");
|
__asm__ volatile ("sync");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
puts ("VGA: SMI501 (Voyager) with 8 MB\n");
|
puts ("VGA: SMI501 (Voyager) with 8 MB\n");
|
||||||
}
|
}
|
||||||
/* restore origianl FB content */
|
/* restore origianl FB content */
|
||||||
if (restore) {
|
if (restore) {
|
||||||
*(volatile u16 *)CFG_CS1_START = save;
|
*(volatile u16 *)CFG_CS1_START = save;
|
||||||
__asm__ volatile ("sync");
|
__asm__ volatile ("sync");
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_CS_AUTOCONF */
|
#endif /* CONFIG_CS_AUTOCONF */
|
||||||
|
|
|
@ -134,7 +134,7 @@ int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||||
/*shutdown the console to avoid strange chars during reset */
|
/*shutdown the console to avoid strange chars during reset */
|
||||||
us->US_CR = (AT91C_US_RSTRX | AT91C_US_RSTTX);
|
us->US_CR = (AT91C_US_RSTRX | AT91C_US_RSTTX);
|
||||||
|
|
||||||
#ifdef CONFIG_AT91RM9200DK
|
#ifdef CONFIG_AT91RM9200DK
|
||||||
/* Clear PA19 to trigger the hard reset */
|
/* Clear PA19 to trigger the hard reset */
|
||||||
pio->PIO_CODR = 0x00080000;
|
pio->PIO_CODR = 0x00080000;
|
||||||
pio->PIO_OER = 0x00080000;
|
pio->PIO_OER = 0x00080000;
|
||||||
|
|
|
@ -163,7 +163,7 @@ void ps2ser_putc(int chr)
|
||||||
|
|
||||||
#ifdef CONFIG_MPC5xxx
|
#ifdef CONFIG_MPC5xxx
|
||||||
while (!(psc->psc_status & PSC_SR_TXRDY));
|
while (!(psc->psc_status & PSC_SR_TXRDY));
|
||||||
|
|
||||||
psc->psc_buffer_8 = chr;
|
psc->psc_buffer_8 = chr;
|
||||||
#else
|
#else
|
||||||
while (!(ps2ser_in(UART_LSR) & UART_LSR_THRE));
|
while (!(ps2ser_in(UART_LSR) & UART_LSR_THRE));
|
||||||
|
@ -259,7 +259,7 @@ static void ps2ser_interrupt(void *dev_id)
|
||||||
printf ("ps2ser.c: buffer overflow\n");
|
printf ("ps2ser.c: buffer overflow\n");
|
||||||
}
|
}
|
||||||
#ifdef CONFIG_MPC5xxx
|
#ifdef CONFIG_MPC5xxx
|
||||||
} while (status & PSC_SR_RXRDY);
|
} while (status & PSC_SR_RXRDY);
|
||||||
#else
|
#else
|
||||||
} while (status & UART_IIR_RDI);
|
} while (status & UART_IIR_RDI);
|
||||||
#endif
|
#endif
|
||||||
|
|
151
fs/ext2/dev.c
151
fs/ext2/dev.c
|
@ -34,109 +34,96 @@ static block_dev_desc_t *ext2fs_block_dev_desc;
|
||||||
static disk_partition_t part_info;
|
static disk_partition_t part_info;
|
||||||
|
|
||||||
#undef DEBUG
|
#undef DEBUG
|
||||||
int ext2fs_set_blk_dev
|
int ext2fs_set_blk_dev (block_dev_desc_t * rbdd, int part)
|
||||||
(
|
{
|
||||||
block_dev_desc_t *rbdd,
|
ext2fs_block_dev_desc = rbdd;
|
||||||
int part
|
|
||||||
)
|
|
||||||
{
|
|
||||||
ext2fs_block_dev_desc = rbdd;
|
|
||||||
|
|
||||||
if (part == 0)
|
if (part == 0) {
|
||||||
{
|
/* disk doesn't use partition table */
|
||||||
/* disk doesn't use partition table */
|
part_info.start = 0;
|
||||||
part_info.start = 0;
|
part_info.size = rbdd->lba;
|
||||||
part_info.size = rbdd->lba;
|
part_info.blksz = rbdd->blksz;
|
||||||
part_info.blksz = rbdd->blksz;
|
} else {
|
||||||
}
|
if (get_partition_info
|
||||||
else
|
(ext2fs_block_dev_desc, part, &part_info)) {
|
||||||
{
|
return 0;
|
||||||
if (get_partition_info (ext2fs_block_dev_desc, part, &part_info))
|
}
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return (part_info.size);
|
return (part_info.size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int ext2fs_devread
|
int ext2fs_devread (int sector, int byte_offset, int byte_len, char *buf) {
|
||||||
(
|
char sec_buf[SECTOR_SIZE];
|
||||||
int sector,
|
unsigned block_len;
|
||||||
int byte_offset,
|
|
||||||
int byte_len,
|
|
||||||
char *buf
|
|
||||||
)
|
|
||||||
{
|
|
||||||
char sec_buf[SECTOR_SIZE];
|
|
||||||
unsigned block_len;
|
|
||||||
/*
|
/*
|
||||||
* Check partition boundaries
|
* Check partition boundaries
|
||||||
*/
|
*/
|
||||||
if ((sector < 0) || ((sector + ((byte_offset + byte_len - 1) >> SECTOR_BITS)) >= part_info.size))
|
if ((sector < 0)
|
||||||
{
|
|| ((sector + ((byte_offset + byte_len - 1) >> SECTOR_BITS)) >=
|
||||||
/* errnum = ERR_OUTSIDE_PART; */
|
part_info.size)) {
|
||||||
printf (" ** ext2fs_devread() read outside partition sector %d\n", sector);
|
/* errnum = ERR_OUTSIDE_PART; */
|
||||||
return(0);
|
printf (" ** ext2fs_devread() read outside partition sector %d\n", sector);
|
||||||
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get the read to the beginning of a partition.
|
* Get the read to the beginning of a partition.
|
||||||
*/
|
*/
|
||||||
sector += byte_offset >> SECTOR_BITS;
|
sector += byte_offset >> SECTOR_BITS;
|
||||||
byte_offset &= SECTOR_SIZE - 1;
|
byte_offset &= SECTOR_SIZE - 1;
|
||||||
|
|
||||||
#if defined(DEBUG)
|
#if defined(DEBUG)
|
||||||
printf (" <%d, %d, %d>\n", sector, byte_offset, byte_len);
|
printf (" <%d, %d, %d>\n", sector, byte_offset, byte_len);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (ext2fs_block_dev_desc == NULL)
|
if (ext2fs_block_dev_desc == NULL) {
|
||||||
{
|
printf ("** Invalid Block Device Descriptor (NULL)\n");
|
||||||
printf("** Invalid Block Device Descriptor (NULL)\n");
|
return (0);
|
||||||
return(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (byte_offset != 0)
|
if (byte_offset != 0) {
|
||||||
{
|
/* read first part which isn't aligned with start of sector */
|
||||||
/* read first part which isn't aligned with start of sector */
|
if (ext2fs_block_dev_desc->
|
||||||
if (ext2fs_block_dev_desc->block_read(ext2fs_block_dev_desc->dev, part_info.start+sector, 1, (unsigned long *)sec_buf) != 1)
|
block_read (ext2fs_block_dev_desc->dev,
|
||||||
{
|
part_info.start + sector, 1,
|
||||||
printf (" ** ext2fs_devread() read error **\n");
|
(unsigned long *) sec_buf) != 1) {
|
||||||
return(0);
|
printf (" ** ext2fs_devread() read error **\n");
|
||||||
}
|
return (0);
|
||||||
memcpy(buf, sec_buf+byte_offset, min(SECTOR_SIZE-byte_offset, byte_len));
|
}
|
||||||
buf+=min(SECTOR_SIZE-byte_offset, byte_len);
|
memcpy (buf, sec_buf + byte_offset,
|
||||||
byte_len-=min(SECTOR_SIZE-byte_offset, byte_len);
|
min (SECTOR_SIZE - byte_offset, byte_len));
|
||||||
sector++;
|
buf += min (SECTOR_SIZE - byte_offset, byte_len);
|
||||||
|
byte_len -= min (SECTOR_SIZE - byte_offset, byte_len);
|
||||||
|
sector++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* read sector aligned part */
|
/* read sector aligned part */
|
||||||
block_len = byte_len & ~(SECTOR_SIZE-1);
|
block_len = byte_len & ~(SECTOR_SIZE - 1);
|
||||||
if (ext2fs_block_dev_desc->block_read(ext2fs_block_dev_desc->dev,
|
if (ext2fs_block_dev_desc->block_read (ext2fs_block_dev_desc->dev,
|
||||||
part_info.start+sector,
|
part_info.start + sector,
|
||||||
block_len/SECTOR_SIZE,
|
block_len / SECTOR_SIZE,
|
||||||
(unsigned long *)buf) != block_len/SECTOR_SIZE)
|
(unsigned long *) buf) !=
|
||||||
{
|
block_len / SECTOR_SIZE) {
|
||||||
printf (" ** ext2fs_devread() read error - block\n");
|
printf (" ** ext2fs_devread() read error - block\n");
|
||||||
return(0);
|
return (0);
|
||||||
}
|
}
|
||||||
buf+=block_len;
|
buf += block_len;
|
||||||
byte_len-=block_len;
|
byte_len -= block_len;
|
||||||
sector+= block_len/SECTOR_SIZE;
|
sector += block_len / SECTOR_SIZE;
|
||||||
|
|
||||||
if (byte_len != 0)
|
if (byte_len != 0) {
|
||||||
{
|
/* read rest of data which are not in whole sector */
|
||||||
/* read rest of data which are not in whole sector */
|
if (ext2fs_block_dev_desc->
|
||||||
if (ext2fs_block_dev_desc->block_read(ext2fs_block_dev_desc->dev,
|
block_read (ext2fs_block_dev_desc->dev,
|
||||||
part_info.start+sector,
|
part_info.start + sector, 1,
|
||||||
1,
|
(unsigned long *) sec_buf) != 1) {
|
||||||
(unsigned long *)sec_buf) != 1)
|
printf (" ** ext2fs_devread() read error - last part\n");
|
||||||
{
|
return (0);
|
||||||
printf (" ** ext2fs_devread() read error - last part\n");
|
}
|
||||||
return(0);
|
memcpy (buf, sec_buf, byte_len);
|
||||||
}
|
|
||||||
memcpy(buf, sec_buf, byte_len);
|
|
||||||
}
|
}
|
||||||
return(1);
|
return (1);
|
||||||
}
|
}
|
||||||
#endif /* CFG_CMD_EXT2FS */
|
#endif /* CFG_CMD_EXT2FS */
|
||||||
|
|
906
fs/ext2/ext2fs.c
906
fs/ext2/ext2fs.c
File diff suppressed because it is too large
Load diff
|
@ -143,8 +143,6 @@
|
||||||
|
|
||||||
#define MCFSIM_PLLCR 0x180 /* PLL Control register */
|
#define MCFSIM_PLLCR 0x180 /* PLL Control register */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Some symbol defines for the above...
|
* Some symbol defines for the above...
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -130,8 +130,8 @@
|
||||||
|
|
||||||
/* The following table includes the supported baudrates */
|
/* The following table includes the supported baudrates */
|
||||||
#define CFG_BAUDRATE_TABLE \
|
#define CFG_BAUDRATE_TABLE \
|
||||||
{ 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, \
|
{ 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, \
|
||||||
57600, 115200, 230400, 460800, 921600 }
|
57600, 115200, 230400, 460800, 921600 }
|
||||||
|
|
||||||
#define CFG_LOAD_ADDR 0x100000 /* default load address */
|
#define CFG_LOAD_ADDR 0x100000 /* default load address */
|
||||||
#define CFG_EXTBDINFO 1 /* To use extended board_into (bd_t) */
|
#define CFG_EXTBDINFO 1 /* To use extended board_into (bd_t) */
|
||||||
|
@ -163,7 +163,7 @@
|
||||||
#define CONFIG_PCI /* include pci support */
|
#define CONFIG_PCI /* include pci support */
|
||||||
#define CONFIG_PCI_HOST PCI_HOST_FORCE /* select pci host function */
|
#define CONFIG_PCI_HOST PCI_HOST_FORCE /* select pci host function */
|
||||||
#define CONFIG_PCI_PNP /* do pci plug-and-play */
|
#define CONFIG_PCI_PNP /* do pci plug-and-play */
|
||||||
/* resource configuration */
|
/* resource configuration */
|
||||||
|
|
||||||
#define CONFIG_PCI_SCAN_SHOW /* print pci devices @ startup */
|
#define CONFIG_PCI_SCAN_SHOW /* print pci devices @ startup */
|
||||||
|
|
||||||
|
@ -236,7 +236,7 @@
|
||||||
#define CFG_ENV_IS_IN_EEPROM 1 /* use EEPROM for environment vars */
|
#define CFG_ENV_IS_IN_EEPROM 1 /* use EEPROM for environment vars */
|
||||||
#define CFG_ENV_OFFSET 0x000 /* environment starts at the beginning of the EEPROM */
|
#define CFG_ENV_OFFSET 0x000 /* environment starts at the beginning of the EEPROM */
|
||||||
#define CFG_ENV_SIZE 0x800 /* 2048 bytes may be used for env vars*/
|
#define CFG_ENV_SIZE 0x800 /* 2048 bytes may be used for env vars*/
|
||||||
/* total size of a CAT24WC16 is 2048 bytes */
|
/* total size of a CAT24WC16 is 2048 bytes */
|
||||||
|
|
||||||
#define CFG_NVRAM_BASE_ADDR 0xF0000500 /* NVRAM base address */
|
#define CFG_NVRAM_BASE_ADDR 0xF0000500 /* NVRAM base address */
|
||||||
#define CFG_NVRAM_SIZE 242 /* NVRAM size */
|
#define CFG_NVRAM_SIZE 242 /* NVRAM size */
|
||||||
|
@ -262,7 +262,7 @@
|
||||||
* Cache Configuration
|
* Cache Configuration
|
||||||
*/
|
*/
|
||||||
#define CFG_DCACHE_SIZE 16384 /* For IBM 405 CPUs, older 405 ppc's */
|
#define CFG_DCACHE_SIZE 16384 /* For IBM 405 CPUs, older 405 ppc's */
|
||||||
/* have only 8kB, 16kB is save here */
|
/* have only 8kB, 16kB is save here */
|
||||||
#define CFG_CACHELINE_SIZE 32 /* ... */
|
#define CFG_CACHELINE_SIZE 32 /* ... */
|
||||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||||
#define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
|
#define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
|
||||||
|
|
|
@ -145,11 +145,11 @@
|
||||||
| CFG_CMD_PCI \
|
| CFG_CMD_PCI \
|
||||||
| CFG_CMD_ELF \
|
| CFG_CMD_ELF \
|
||||||
| CFG_CMD_DATE \
|
| CFG_CMD_DATE \
|
||||||
| CFG_CMD_NET \
|
| CFG_CMD_NET \
|
||||||
| CFG_CMD_PING \
|
| CFG_CMD_PING \
|
||||||
| CFG_CMD_IDE \
|
| CFG_CMD_IDE \
|
||||||
| CFG_CMD_FAT \
|
| CFG_CMD_FAT \
|
||||||
| CFG_CMD_EXT2 \
|
| CFG_CMD_EXT2 \
|
||||||
)
|
)
|
||||||
|
|
||||||
#define CONFIG_DOS_PARTITION
|
#define CONFIG_DOS_PARTITION
|
||||||
|
@ -331,11 +331,11 @@
|
||||||
#define CFG_DEV3_PAR 0x8FCFFFFF /* nvram/can */
|
#define CFG_DEV3_PAR 0x8FCFFFFF /* nvram/can */
|
||||||
#define CFG_BOOT_PAR 0x8FDFFFFF /* 16 bit flash */
|
#define CFG_BOOT_PAR 0x8FDFFFFF /* 16 bit flash */
|
||||||
|
|
||||||
/* c 4 a 8 2 4 1 c */
|
/* c 4 a 8 2 4 1 c */
|
||||||
/* 33 22|2222|22 22|111 1|11 11|1 1 | | */
|
/* 33 22|2222|22 22|111 1|11 11|1 1 | | */
|
||||||
/* 10 98|7654|32 10|987 6|54 32|1 098|7 654|3 210 */
|
/* 10 98|7654|32 10|987 6|54 32|1 098|7 654|3 210 */
|
||||||
/* 11|00|0100|10 10|100|0 00|10 0|100 0|001 1|100 */
|
/* 11|00|0100|10 10|100|0 00|10 0|100 0|001 1|100 */
|
||||||
/* 3| 0|.... ..| 2| 4 | 0 | 4 | 8 | 3 | 4 */
|
/* 3| 0|.... ..| 2| 4 | 0 | 4 | 8 | 3 | 4 */
|
||||||
|
|
||||||
|
|
||||||
/* MPP Control MV64360 Appendix P P. 632*/
|
/* MPP Control MV64360 Appendix P P. 632*/
|
||||||
|
@ -392,8 +392,6 @@
|
||||||
#define CFG_PCI0_0_MEM_SPACE (CFG_PCI0_MEM_BASE)
|
#define CFG_PCI0_0_MEM_SPACE (CFG_PCI0_MEM_BASE)
|
||||||
#define CFG_PCI1_0_MEM_SPACE (CFG_PCI1_MEM_BASE)
|
#define CFG_PCI1_0_MEM_SPACE (CFG_PCI1_MEM_BASE)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* PCI I/O MAP section */
|
/* PCI I/O MAP section */
|
||||||
#define CFG_PCI0_IO_BASE 0xfa000000
|
#define CFG_PCI0_IO_BASE 0xfa000000
|
||||||
#define CFG_PCI0_IO_SIZE _16M
|
#define CFG_PCI0_IO_SIZE _16M
|
||||||
|
|
|
@ -51,9 +51,9 @@
|
||||||
#undef CONFIG_MONITOR_IS_IN_RAM /* no pre-loader required!!! ;-) */
|
#undef CONFIG_MONITOR_IS_IN_RAM /* no pre-loader required!!! ;-) */
|
||||||
|
|
||||||
#define CONFIG_COMMANDS ((CONFIG_CMD_DFL | \
|
#define CONFIG_COMMANDS ((CONFIG_CMD_DFL | \
|
||||||
CFG_CMD_BSP | \
|
CFG_CMD_BSP | \
|
||||||
CFG_CMD_EEPROM | \
|
CFG_CMD_EEPROM | \
|
||||||
CFG_CMD_I2C ) & \
|
CFG_CMD_I2C ) & \
|
||||||
~(CFG_CMD_NET))
|
~(CFG_CMD_NET))
|
||||||
|
|
||||||
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
|
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
|
||||||
|
|
|
@ -426,7 +426,7 @@
|
||||||
* use PSC6:
|
* use PSC6:
|
||||||
* on STK52xx:
|
* on STK52xx:
|
||||||
* use as UART. Pins PSC6_0 to PSC6_3 are used.
|
* use as UART. Pins PSC6_0 to PSC6_3 are used.
|
||||||
Bits 9:11 (mask: 0x00700000):
|
Bits 9:11 (mask: 0x00700000):
|
||||||
* 101 -> PSC6 : Extended POST test is not available
|
* 101 -> PSC6 : Extended POST test is not available
|
||||||
* on MINI-FAP and TQM5200_IB:
|
* on MINI-FAP and TQM5200_IB:
|
||||||
* use PSC6_1 and PSC6_3 as GPIO: Bits 9:11 (mask: 0x00700000):
|
* use PSC6_1 and PSC6_3 as GPIO: Bits 9:11 (mask: 0x00700000):
|
||||||
|
|
|
@ -482,11 +482,11 @@
|
||||||
PLL_FWDDIVA_3 | PLL_FWDDIVB_3 | \
|
PLL_FWDDIVA_3 | PLL_FWDDIVB_3 | \
|
||||||
PLL_TUNE_15_M_40 | PLL_TUNE_VCO_LOW)
|
PLL_TUNE_15_M_40 | PLL_TUNE_VCO_LOW)
|
||||||
#define PLLMR0_266_66_33_33 (PLL_CPUDIV_1 | PLL_PLBDIV_4 | \
|
#define PLLMR0_266_66_33_33 (PLL_CPUDIV_1 | PLL_PLBDIV_4 | \
|
||||||
PLL_OPBDIV_2 | PLL_EXTBUSDIV_2 | \
|
PLL_OPBDIV_2 | PLL_EXTBUSDIV_2 | \
|
||||||
PLL_MALDIV_1 | PLL_PCIDIV_2)
|
PLL_MALDIV_1 | PLL_PCIDIV_2)
|
||||||
#define PLLMR1_266_66_33_33 (PLL_FBKDIV_8 | \
|
#define PLLMR1_266_66_33_33 (PLL_FBKDIV_8 | \
|
||||||
PLL_FWDDIVA_3 | PLL_FWDDIVB_3 | \
|
PLL_FWDDIVA_3 | PLL_FWDDIVB_3 | \
|
||||||
PLL_TUNE_15_M_40 | PLL_TUNE_VCO_LOW)
|
PLL_TUNE_15_M_40 | PLL_TUNE_VCO_LOW)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PLL Voltage Controlled Oscillator (VCO) definitions
|
* PLL Voltage Controlled Oscillator (VCO) definitions
|
||||||
|
|
|
@ -23,12 +23,10 @@
|
||||||
#ifndef _universe_h
|
#ifndef _universe_h
|
||||||
#define _universe_h
|
#define _universe_h
|
||||||
|
|
||||||
|
|
||||||
typedef struct _UNIVERSE UNIVERSE;
|
typedef struct _UNIVERSE UNIVERSE;
|
||||||
typedef struct _SLAVE_IMAGE SLAVE_IMAGE;
|
typedef struct _SLAVE_IMAGE SLAVE_IMAGE;
|
||||||
typedef struct _TDMA_CMD_PACKET TDMA_CMD_PACKET;
|
typedef struct _TDMA_CMD_PACKET TDMA_CMD_PACKET;
|
||||||
|
|
||||||
|
|
||||||
struct _SLAVE_IMAGE {
|
struct _SLAVE_IMAGE {
|
||||||
unsigned int ctl; /* Control */
|
unsigned int ctl; /* Control */
|
||||||
unsigned int bs; /* Base */
|
unsigned int bs; /* Base */
|
||||||
|
@ -148,10 +146,3 @@ struct _TDMA_CMD_PACKET {
|
||||||
#define PCI_MS_Mxx 0x03
|
#define PCI_MS_Mxx 0x03
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue