Merge branch 'master' of git://www.denx.de/git/u-boot-mpc86xx

master
Wolfgang Denk 17 years ago
commit 79d14faf54
  1. 5
      board/freescale/mpc8610hpcd/mpc8610hpcd.c
  2. 6
      board/freescale/mpc8641hpcn/mpc8641hpcn.c
  3. 14
      cpu/mpc86xx/cpu.c
  4. 1
      cpu/mpc86xx/interrupts.c
  5. 16
      include/asm-ppc/immap_86xx.h
  6. 3
      include/configs/MPC8610HPCD.h

@ -99,7 +99,10 @@ int checkboard(void)
volatile immap_t *immap = (immap_t *)CFG_IMMR; volatile immap_t *immap = (immap_t *)CFG_IMMR;
volatile ccsr_local_mcm_t *mcm = &immap->im_local_mcm; volatile ccsr_local_mcm_t *mcm = &immap->im_local_mcm;
puts("Board: MPC8610HPCD\n"); printf ("Board: MPC8610HPCD, System ID: 0x%02lx, "
"System Version: 0x%02lx, FPGA Version: 0x%02lx\n",
in8(PIXIS_BASE + PIXIS_ID), in8(PIXIS_BASE + PIXIS_VER),
in8(PIXIS_BASE + PIXIS_PVER));
mcm->abcr |= 0x00010000; /* 0 */ mcm->abcr |= 0x00010000; /* 0 */
mcm->hpmr3 = 0x80000008; /* 4c */ mcm->hpmr3 = 0x80000008; /* 4c */

@ -47,8 +47,10 @@ int board_early_init_f(void)
int checkboard(void) int checkboard(void)
{ {
puts("Board: MPC8641HPCN\n"); printf ("Board: MPC8641HPCN, System ID: 0x%02lx, "
"System Version: 0x%02lx, FPGA Version: 0x%02lx\n",
in8(PIXIS_BASE + PIXIS_ID), in8(PIXIS_BASE + PIXIS_VER),
in8(PIXIS_BASE + PIXIS_PVER));
return 0; return 0;
} }

@ -214,6 +214,20 @@ get_tbclk(void)
void void
watchdog_reset(void) watchdog_reset(void)
{ {
#if defined(CONFIG_MPC8610)
/*
* This actually feed the hard enabled watchdog.
*/
volatile immap_t *immap = (immap_t *)CFG_IMMR;
volatile ccsr_wdt_t *wdt = &immap->im_wdt;
volatile ccsr_gur_t *gur = &immap->im_gur;
u32 tmp = gur->pordevsr;
if (tmp & 0x4000) {
wdt->swsrr = 0x556c;
wdt->swsrr = 0xaa39;
}
#endif
} }
#endif /* CONFIG_WATCHDOG */ #endif /* CONFIG_WATCHDOG */

@ -36,6 +36,7 @@
#include <command.h> #include <command.h>
#include <asm/processor.h> #include <asm/processor.h>
#include <ppc_asm.tmpl> #include <ppc_asm.tmpl>
#include <watchdog.h>
unsigned long decrementer_count; /* count value for 1e6/HZ microseconds */ unsigned long decrementer_count; /* count value for 1e6/HZ microseconds */
unsigned long timestamp; unsigned long timestamp;

@ -1304,9 +1304,21 @@ typedef struct ccsr_gur {
uint lynxdcr1; /* 0xe0f08 - Lynx debug control register 1*/ uint lynxdcr1; /* 0xe0f08 - Lynx debug control register 1*/
int res14[6]; int res14[6];
uint ddrioovcr; /* 0xe0f24 - DDR IO Overdrive Control register */ uint ddrioovcr; /* 0xe0f24 - DDR IO Overdrive Control register */
char res15[61656]; char res15[216];
} ccsr_gur_t; } ccsr_gur_t;
/*
* Watchdog register block(0xe_4000-0xe_4fff)
*/
typedef struct ccsr_wdt {
uint res0;
uint swcrr; /* System watchdog control register */
uint swcnr; /* System watchdog count register */
char res1[2];
ushort swsrr; /* System watchdog service register */
char res2[4080];
} ccsr_wdt_t;
typedef struct immap { typedef struct immap {
ccsr_local_mcm_t im_local_mcm; ccsr_local_mcm_t im_local_mcm;
ccsr_ddr_t im_ddr1; ccsr_ddr_t im_ddr1;
@ -1330,6 +1342,8 @@ typedef struct immap {
char res5[389120]; char res5[389120];
ccsr_rio_t im_rio; ccsr_rio_t im_rio;
ccsr_gur_t im_gur; ccsr_gur_t im_gur;
char res6[12288];
ccsr_wdt_t im_wdt;
} immap_t; } immap_t;
extern immap_t *immr; extern immap_t *immr;

@ -485,7 +485,8 @@
#endif #endif
#undef CONFIG_WATCHDOG /* watchdog disabled */ #define CONFIG_WATCHDOG /* watchdog enabled */
#define CFG_WATCHDOG_FREQ 5000 /* Feed interval, 5s */
/*DIU Configuration*/ /*DIU Configuration*/
#define DIU_CONNECT_TO_DVI /* DIU controller connects to DVI encoder*/ #define DIU_CONNECT_TO_DVI /* DIU controller connects to DVI encoder*/

Loading…
Cancel
Save