* Patch by Thomas Frieden, 13 Nov 2002:
Add code for AmigaOne board
(preliminary merge to U-Boot, still WIP)
* Patch by Jon Diekema, 12 Nov 2002:
- Adding URL for IEEE OUI lookup
- Making the autoboot #defines dependent on CONFIG_AUTOBOOT_KEYED
being defined.
- In the CONFIG_EXTRA_ENV_SETTINGS #define, the root-on-initrd and
root-on-nfs macros are designed to switch how the default boot
method gets defined.
This commit is contained in:
@@ -44,6 +44,11 @@
|
||||
#include <74xx_7xx.h>
|
||||
#include <asm/cache.h>
|
||||
|
||||
#ifdef CONFIG_AMIGAONEG3SE
|
||||
#include "../board/MAI/AmigaOneG3SE/via686.h"
|
||||
#include "../board/MAI/AmigaOneG3SE/memio.h"
|
||||
#endif
|
||||
|
||||
cpu_t
|
||||
get_cpu_type(void)
|
||||
{
|
||||
@@ -218,12 +223,20 @@ do_reset (cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
|
||||
/*
|
||||
* For the 7400 the TB clock runs at 1/4 the cpu bus speed.
|
||||
*/
|
||||
unsigned long
|
||||
get_tbclk (void)
|
||||
#ifdef CONFIG_AMIGAONEG3SE
|
||||
unsigned long get_tbclk(void)
|
||||
{
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
return (gd->bus_clk / 4);
|
||||
}
|
||||
#else /* ! CONFIG_AMIGAONEG3SE */
|
||||
|
||||
unsigned long get_tbclk (void)
|
||||
{
|
||||
return CFG_BUS_HZ / 4;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_AMIGAONEG3SE */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
#if defined(CONFIG_WATCHDOG)
|
||||
|
||||
@@ -89,7 +89,7 @@ disable_interrupts(void)
|
||||
|
||||
int interrupt_init(void)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
#if defined(DEBUG) && !defined(CONFIG_AMIGAONEG3SE)
|
||||
printf("interrupt_init: GT main cause reg: %08x:%08x\n",
|
||||
GTREGREAD(LOW_INTERRUPT_CAUSE_REGISTER),
|
||||
GTREGREAD(HIGH_INTERRUPT_CAUSE_REGISTER));
|
||||
|
||||
@@ -25,6 +25,10 @@
|
||||
#include <74xx_7xx.h>
|
||||
#include <asm/processor.h>
|
||||
|
||||
#ifdef CONFIG_AMIGAONEG3SE
|
||||
#include "../board/MAI/AmigaOneG3SE/via686.h"
|
||||
#endif
|
||||
|
||||
static const int hid1_multipliers_x_10[] = {
|
||||
25, /* 0000 - 2.5x */
|
||||
75, /* 0001 - 7.5x */
|
||||
|
||||
@@ -45,7 +45,11 @@ extern unsigned long search_exception_table(unsigned long);
|
||||
|
||||
/* THIS NEEDS CHANGING to use the board info structure.
|
||||
*/
|
||||
#ifdef CONFIG_AMIGAONEG3SE
|
||||
#define END_OF_MEM (gd->bd->bi_memstart + gd->bd->bi_memsize)
|
||||
#else
|
||||
#define END_OF_MEM 0x02000000
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Trap & Exception support
|
||||
@@ -54,6 +58,9 @@ extern unsigned long search_exception_table(unsigned long);
|
||||
void
|
||||
print_backtrace(unsigned long *sp)
|
||||
{
|
||||
#ifdef CONFIG_AMIGAONEG3SE
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
#endif
|
||||
int cnt = 0;
|
||||
unsigned long i;
|
||||
|
||||
@@ -171,11 +178,25 @@ AlignmentException(struct pt_regs *regs)
|
||||
void
|
||||
ProgramCheckException(struct pt_regs *regs)
|
||||
{
|
||||
unsigned char *p = regs ? (unsigned char *)(regs->nip) : NULL;
|
||||
int i, j;
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
if (debugger_exception_handler && (*debugger_exception_handler)(regs))
|
||||
return;
|
||||
#endif
|
||||
show_regs(regs);
|
||||
|
||||
p = (unsigned char *) ((unsigned long)p & 0xFFFFFFE0);
|
||||
p -= 32;
|
||||
for (i = 0; i < 256; i+=16) {
|
||||
printf("%08x: ", (unsigned int)p+i);
|
||||
for (j = 0; j < 16; j++) {
|
||||
printf("%02x ", p[i+j]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
print_backtrace((unsigned long *)regs->gpr[1]);
|
||||
panic("Program Check Exception");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user