|
@@ -29,6 +29,7 @@
|
|
|
#include <mpc83xx.h>
|
|
|
#include <ns16550.h>
|
|
|
#include <nand.h>
|
|
|
+#include <asm/io.h>
|
|
|
|
|
|
DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
|
@@ -91,6 +92,40 @@ void pci_init_board(void)
|
|
|
int misc_init_r(void)
|
|
|
{
|
|
|
int rc = 0;
|
|
|
+ immap_t *immap = (immap_t *) CONFIG_SYS_IMMR;
|
|
|
+ fsl_lbus_t *lbus = &immap->lbus;
|
|
|
+ u32 *mxmr = &lbus->mamr; /* Pointer to mamr */
|
|
|
+
|
|
|
+ /* UPM Table Configuration Code */
|
|
|
+ static uint UPMATable[] = {
|
|
|
+ /* Read Single-Beat (RSS) */
|
|
|
+ 0x0fff0c00, 0x0fffdc00, 0x0fff0c05, 0xfffffc00,
|
|
|
+ 0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc01,
|
|
|
+ /* Read Burst (RBS) */
|
|
|
+ 0x0fff0c00, 0x0ffcdc00, 0x0ffc0c00, 0x0ffc0f0c,
|
|
|
+ 0x0ffccf0c, 0x0ffc0f0c, 0x0ffcce0c, 0x3ffc0c05,
|
|
|
+ 0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc00,
|
|
|
+ 0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc01,
|
|
|
+ /* Write Single-Beat (WSS) */
|
|
|
+ 0x0ffc0c00, 0x0ffcdc00, 0x0ffc0c05, 0xfffffc00,
|
|
|
+ 0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc01,
|
|
|
+ /* Write Burst (WBS) */
|
|
|
+ 0x0ffc0c00, 0x0fffcc0c, 0x0fff0c00, 0x0fffcc00,
|
|
|
+ 0x0fff1c00, 0x0fffcf0c, 0x0fff0f0c, 0x0fffcf0c,
|
|
|
+ 0x0fff0c0c, 0x0fffcc0c, 0x0fff0c05, 0xfffffc00,
|
|
|
+ 0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc01,
|
|
|
+ /* Refresh Timer (RTS) */
|
|
|
+ 0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc00,
|
|
|
+ 0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc00,
|
|
|
+ 0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc01,
|
|
|
+ /* Exception Condition (EXS) */
|
|
|
+ 0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc01
|
|
|
+ };
|
|
|
+
|
|
|
+ upmconfig(UPMA, UPMATable, sizeof(UPMATable) / sizeof(UPMATable[0]));
|
|
|
+
|
|
|
+ /* Set LUPWAIT to be active low and enabled */
|
|
|
+ out_be32(mxmr, MxMR_UWPL | MxMR_GPL_x4DIS);
|
|
|
|
|
|
return rc;
|
|
|
}
|