/*
- * (C) Copyright 2000
+ * (C) Copyright 2000 - 2002
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*
* See file CREDITS for list of people who contributed to this
#include <ppcboot.h>
#include <command.h>
-int checkcpu(long clock)
+int checkcpu (long clock)
{
- unsigned int pvr = get_pvr();
- unsigned int version = pvr >>16;
- unsigned int revision = pvr &0xffff;
- char buf[32];
+ unsigned int pvr = get_pvr ();
+ unsigned int version = pvr >> 16;
+ unsigned char revision;
+ char buf[32];
- switch(version)
- {
- case CPU_TYPE_8240:
- printf("MPC8240");
- break;
+ switch (version) {
+ case CPU_TYPE_8240:
+ printf ("MPC8240");
+ break;
- case CPU_TYPE_8245:
- printf("MPC8245");
- break;
+ case CPU_TYPE_8245:
+ printf ("MPC8245");
+ break;
- default:
- return -1; /*not valid for this source*/
- }
+ default:
+ return -1; /*not valid for this source */
+ }
- switch(revision)
- {
- default: /*currently no info on revision numbers*/
- printf(" Revision %d.%d",revision>>8, revision & 0xff);
- }
+ CONFIG_READ_BYTE (REVID, revision);
- printf(" at %s MHz:", strmhz(buf, clock));
+ if (revision) {
+ printf (" Revision %d.%d",
+ (revision & 0xf0) >> 4,
+ (revision & 0x0f));
+ } else {
+ return -1; /* no valid CPU revision info */
+ }
- printf(" %u kB I-Cache", checkicache() >> 10);
- printf(" %u kB D-Cache", checkdcache() >> 10);
+ printf (" at %s MHz:", strmhz (buf, clock));
- printf("\n");
+ printf (" %u kB I-Cache", checkicache () >> 10);
+ printf (" %u kB D-Cache", checkdcache () >> 10);
- return 0;
+ printf ("\n");
+
+ return 0;
}
/* ------------------------------------------------------------------------- */
/* L1 i-cache */
-int checkicache(void)
+int checkicache (void)
{
- /*TODO*/
- return 128*4*32;
+ /*TODO*/
+ return 128 * 4 * 32;
};
+
/* ------------------------------------------------------------------------- */
/* L1 d-cache */
-int checkdcache(void)
+int checkdcache (void)
{
- /*TODO*/
- return 128*4*32;
+ /*TODO*/
+ return 128 * 4 * 32;
};
/*------------------------------------------------------------------- */
-int do_reset (cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
+int do_reset (cmd_tbl_t * cmdtp, bd_t * bd, int flag, int argc,
+ char *argv[])
{
ulong msr, addr;
/* Interrupts and MMU off */
- __asm__ ("mtspr 81, 0" );
+ __asm__ ("mtspr 81, 0");
/* Interrupts and MMU off */
- __asm__ __volatile__ ("mfmsr %0" : "=r"(msr) : );
+ __asm__ __volatile__ ("mfmsr %0":"=r" (msr):);
+
msr &= ~0x1030;
- __asm__ __volatile__ ("mtmsr %0" : : "r"(msr) );
+ __asm__ __volatile__ ("mtmsr %0"::"r" (msr));
/*
* Trying to execute the next instruction at a non-existing address
addr = CFG_RESET_ADDRESS;
#else
/*
- * note: when CFG_MONITOR_BASE points to a RAM address, CFG_MONITOR_BASE
- * - sizeof (ulong) is usually a valid address. Better pick an address
- * known to be invalid on your system and assign it to CFG_RESET_ADDRESS.
- * "(ulong)-1" used to be a good choice for many systems...
+ * note: when CFG_MONITOR_BASE points to a RAM address,
+ * CFG_MONITOR_BASE - sizeof (ulong) is usually a valid
+ * address. Better pick an address known to be invalid on
+ * your system and assign it to CFG_RESET_ADDRESS.
+ * "(ulong)-1" used to be a good choice for many systems...
*/
addr = CFG_MONITOR_BASE - sizeof (ulong);
#endif
- ((void (*)(void ))addr)();
+ ((void (*)(void)) addr) ();
return 1;
}
*/
unsigned long get_tbclk (void)
{
- return ((get_bus_freq(0) + 2L) / 4L);
+ return ((get_bus_freq (0) + 2L) / 4L);
}
/* ------------------------------------------------------------------------- */
* writing it to config address, and swaps the value to big endian
* before returning to the caller.
*/
-unsigned int
-mpc824x_mpc107_getreg(unsigned int regNum)
+unsigned int mpc824x_mpc107_getreg (unsigned int regNum)
{
- unsigned int temp;
- /* swap the addr. to little endian */
- *(volatile unsigned int *)CHRP_REG_ADDR = PCISWAP(regNum);
- temp = *(volatile unsigned int *)CHRP_REG_DATA;
- return PCISWAP(temp); /* swap the data upon return */
+ unsigned int temp;
+
+ /* swap the addr. to little endian */
+ *(volatile unsigned int *) CHRP_REG_ADDR = PCISWAP (regNum);
+ temp = *(volatile unsigned int *) CHRP_REG_DATA;
+ return PCISWAP (temp); /* swap the data upon return */
}
/*
* the address to little endian before writing it to config address.
*/
-void
-mpc824x_mpc107_setreg(unsigned int regNum, unsigned int regVal)
+void mpc824x_mpc107_setreg (unsigned int regNum, unsigned int regVal)
{
- /* swap the addr. to little endian */
- *(volatile unsigned int *)CHRP_REG_ADDR = PCISWAP(regNum);
- *(volatile unsigned int *)CHRP_REG_DATA = PCISWAP(regVal);
- return;
+ /* swap the addr. to little endian */
+ *(volatile unsigned int *) CHRP_REG_ADDR = PCISWAP (regNum);
+ *(volatile unsigned int *) CHRP_REG_DATA = PCISWAP (regVal);
+ return;
}
/*
* Write a byte (8 bits) to a memory location.
*/
-void
-mpc824x_mpc107_write8(unsigned int addr, unsigned char data)
+void mpc824x_mpc107_write8 (unsigned int addr, unsigned char data)
{
- *(unsigned char*)addr = data;
- __asm__("sync");
+ *(unsigned char *) addr = data;
+ __asm__ ("sync");
}
+
/*
* Write a word (16 bits) to a memory location after the value
* has been byte swapped (big to little endian or vice versa)
*/
-void
-mpc824x_mpc107_write16(unsigned int address, unsigned short data)
+void mpc824x_mpc107_write16 (unsigned int address, unsigned short data)
{
- *(volatile unsigned short *)address = BYTE_SWAP_16_BIT(data);
- __asm__("sync");
+ *(volatile unsigned short *) address = BYTE_SWAP_16_BIT (data);
+ __asm__ ("sync");
}
/*
* has been byte swapped (big to little endian or vice versa)
*/
-void
-mpc824x_mpc107_write32(unsigned int address, unsigned int data)
+void mpc824x_mpc107_write32 (unsigned int address, unsigned int data)
{
- *(volatile unsigned int *)address = LONGSWAP(data);
- __asm__("sync");
+ *(volatile unsigned int *) address = LONGSWAP (data);
+ __asm__ ("sync");
}
/*
* Read a byte (8 bits) from a memory location.
*/
-unsigned char
-mpc824x_mpc107_read8(unsigned int addr)
+unsigned char mpc824x_mpc107_read8 (unsigned int addr)
{
- return *(volatile unsigned char*)addr;
+ return *(volatile unsigned char *) addr;
}
* Read a word (16 bits) from a memory location, and byte swap the
* value before returning to the caller.
*/
-unsigned short
-mpc824x_mpc107_read16(unsigned int address)
+unsigned short mpc824x_mpc107_read16 (unsigned int address)
{
- unsigned short retVal;
- retVal = BYTE_SWAP_16_BIT(*(unsigned short*)address);
- return retVal;
+ unsigned short retVal;
+
+ retVal = BYTE_SWAP_16_BIT (*(unsigned short *) address);
+ return retVal;
}
* Read a long word (32 bits) from a memory location, and byte
* swap the value before returning to the caller.
*/
-unsigned int
-mpc824x_mpc107_read32(unsigned int address)
+unsigned int mpc824x_mpc107_read32 (unsigned int address)
{
- unsigned int retVal;
- retVal = LONGSWAP(*(unsigned int *)address);
- return (retVal);
+ unsigned int retVal;
+
+ retVal = LONGSWAP (*(unsigned int *) address);
+ return (retVal);
}
* Output: The 32 bit little endian value of the register.
*/
-unsigned int
-mpc824x_eummbar_read(unsigned int regNum)
+unsigned int mpc824x_eummbar_read (unsigned int regNum)
{
- unsigned int temp;
- temp = *(volatile unsigned int *) (EUMBBAR_VAL + regNum) ;
- temp = PCISWAP(temp);
- return temp;
+ unsigned int temp;
+
+ temp = *(volatile unsigned int *) (EUMBBAR_VAL + regNum);
+ temp = PCISWAP (temp);
+ return temp;
}
* regVal - value to be written to the register.
*/
-void
-mpc824x_eummbar_write(unsigned int regNum, unsigned int regVal)
+void mpc824x_eummbar_write (unsigned int regNum, unsigned int regVal)
{
- *(volatile unsigned int *) (EUMBBAR_VAL + regNum) = PCISWAP(regVal);
- return;
+ *(volatile unsigned int *) (EUMBBAR_VAL + regNum) = PCISWAP (regVal);
+ return;
}
/* ------------------------------------------------------------------------- */