* 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.
diff --git a/include/asm-ppc/global_data.h b/include/asm-ppc/global_data.h
index 7cf234d..3470180 100644
--- a/include/asm-ppc/global_data.h
+++ b/include/asm-ppc/global_data.h
@@ -62,6 +62,9 @@
#if defined(CONFIG_SANDPOINT) || defined(CONFIG_MUSENKI)
void * console_addr;
#endif
+#ifdef CONFIG_AMIGAONEG3SE
+ unsigned long relocaddr; /* Start address of U-Boot in RAM */
+#endif
#if defined(CONFIG_LCD) || defined(CONFIG_VIDEO)
unsigned long fb_base; /* Base address of framebuffer memory */
#endif
diff --git a/include/cmd_boota.h b/include/cmd_boota.h
new file mode 100644
index 0000000..3ec3118
--- /dev/null
+++ b/include/cmd_boota.h
@@ -0,0 +1,42 @@
+/*
+ * (C) Copyright 2001
+ * Thomas Frieden, Hyperion Entertainment
+ * ThomasF@hyperion-entertainment.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+#ifndef _CMD_BOOTA_H
+#define _CMD_BOOTA_H
+
+#include <common.h>
+#include <command.h>
+
+#if defined(CONFIG_AMIGAONEG3SE) && (CONFIG_COMMANDS & CFG_CMD_BSP)
+#define CMD_TBL_BOOTA MK_CMD_TBL_ENTRY( \
+ "boota", 5, 3, 1, do_boota, \
+ "boota - boot an Amiga kernel\n", \
+ "address disk" \
+),
+
+int do_boota (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[] );
+#else
+#define CMD_TBL_BOOTA
+#endif
+
+#endif /* _CMD_BOOTA_H */
diff --git a/include/cmd_bsp.h b/include/cmd_bsp.h
index b39d50b..e4b1041 100644
--- a/include/cmd_bsp.h
+++ b/include/cmd_bsp.h
@@ -1,5 +1,5 @@
/*
- * (C) Copyright 2001
+ * (C) Copyright 2001, 2002
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*
* See file CREDITS for list of people who contributed to this
@@ -29,7 +29,7 @@
#if (CONFIG_COMMANDS & CFG_CMD_BSP)
-/* ----- LWMON -----------------------------------------------------------------
+/* ----- LWMON ---------------------------------------------------------
*/
#if defined(CONFIG_LWMON)
@@ -54,10 +54,9 @@
int do_lsb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
#endif /* CONFIG_LWMON */
-/* ----------------------------------------------------------------------------*/
+/* -------------------------------------------------------------------- */
-/* ----- PCU E -----------------------------------------------------------------
- */
+/* ----- PCU E -------------------------------------------------------- */
#if defined(CONFIG_PCU_E)
#define CMD_TBL_BSP MK_CMD_TBL_ENTRY( \
@@ -69,10 +68,9 @@
int do_puma (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
#endif /* CONFIG_PCU_E */
-/* ----------------------------------------------------------------------------*/
+/* -------------------------------------------------------------------- */
-/* ----- CCM/SCM ---------------------------------------------------------------
- */
+/* ----- CCM/SCM ------------------------------------------------------ */
#if defined(CONFIG_CCM) || defined(CONFIG_SCM)
#define CMD_TBL_BSP MK_CMD_TBL_ENTRY( \
@@ -85,10 +83,9 @@
int do_fpga (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
#endif /* CONFIG_CCM, CONFIG_SCM */
-/* ----------------------------------------------------------------------------*/
+/* -------------------------------------------------------------------- */
-/* ----- PIP405 -----------------------------------------------------------------
- */
+/* ----- PIP405 ------------------------------------------------------- */
#if defined(CONFIG_PIP405)
#define CMD_TBL_BSP MK_CMD_TBL_ENTRY( \
@@ -101,9 +98,9 @@
int do_pip405 (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
#endif /* CONFIG_PIP405 */
-/* ----------------------------------------------------------------------------*/
-/* ----- MIP405 -----------------------------------------------------------------
- */
+/* -------------------------------------------------------------------- */
+
+/* ----- MIP405 ------------------------------------------------------- */
#if defined(CONFIG_MIP405)
#define CMD_TBL_BSP MK_CMD_TBL_ENTRY( \
@@ -115,10 +112,9 @@
int do_mip405 (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
#endif /* CONFIG_MIP405 */
-/* ----------------------------------------------------------------------------*/
+/* -------------------------------------------------------------------- */
-/* ----- DASA_SIM ---------------------------------------------------------------
- */
+/* ----- DASA_SIM ----------------------------------------------------- */
#if defined(CONFIG_DASA_SIM)
#define CMD_TBL_BSP MK_CMD_TBL_ENTRY( \
@@ -130,10 +126,9 @@
int do_pci9054 (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
#endif /* CONFIG_DASA_SIM */
-/* ----------------------------------------------------------------------------*/
+/* -------------------------------------------------------------------- */
-/* ----- HYMOD -----------------------------------------------------------------
- */
+/* ----- HYMOD -------------------------------------------------------- */
#if defined(CONFIG_HYMOD)
#define CMD_TBL_BSP MK_CMD_TBL_ENTRY( \
@@ -171,8 +166,9 @@
int do_eecl (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
#endif /* CONFIG_HYMOD */
-/* ----------------------------------------------------------------------------*/
-/* CRAY405 (L1) */
+/* -------------------------------------------------------------------- */
+
+/* ----- CRAY405 (L1) ------------------------------------------------- */
#if defined (CONFIG_CRAYL1)
#define CMD_TBL_BSP MK_CMD_TBL_ENTRY( \
"L1cmd", 5, 4, 1, do_crayL1, \
@@ -182,10 +178,10 @@
),
int do_crayL1 (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
#endif /* CONFIG_CRAY405 */
-/* ----------------------------------------------------------------------------*/
+/* -------------------------------------------------------------------- */
+/* ----- EVB64260 ----------------------------------------------------- */
#if defined (CONFIG_EVB64260)
-/* ----- EVB64260 -------------------------------------------------------------*/
#ifdef CONFIG_ZUMA_V2
#define CMD_TBL_BSP ZUMA_TBL_ENTRY
@@ -218,9 +214,9 @@
#endif /* ZUMA_NTL */
#endif /* CONFIG_EVB64260 */
-/* ----------------------------------------------------------------------------*/
+/* -------------------------------------------------------------------- */
-/* -----W7O--------------------------------------------------------------------*/
+/* -----W7O------------------------------------------------------------ */
#if defined(CONFIG_W7O)
#define CMD_TBL_BSP MK_CMD_TBL_ENTRY( \
@@ -233,18 +229,18 @@
extern int do_vpd (cmd_tbl_t *, int, int, char *[]);
#endif /* CONFIG_W7O */
-/* ----------------------------------------------------------------------------*/
+/* -------------------------------------------------------------------- */
-/* ---- PCIPPC2 / PCIPPC6 -----------------------------------------------------*/
+/* ---- PCIPPC2 / PCIPPC6 --------------------------------------------- */
#if defined(CONFIG_PCIPPC2) || defined(CONFIG_PCIPPC6)
#if defined(CONFIG_WATCHDOG)
#define CMD_TBL_BSP MK_CMD_TBL_ENTRY( \
- "wd", 3, 2, 1, do_wd, \
- "wd - check and set watchdog\n", \
- "on - switch watchDog on\n" \
- "wd off - switch watchdog off\n" \
- "wd - print current status\n" \
+ "wd", 3, 2, 1, do_wd, \
+ "wd - check and set watchdog\n", \
+ "on - switch watchDog on\n" \
+ "wd off - switch watchdog off\n" \
+ "wd - print current status\n" \
),
extern int do_wd (cmd_tbl_t *, int, int, char *[]);
@@ -254,9 +250,9 @@
#endif /* CONFIG_WATCHDOG */
#endif /* CONFIG_PCIPPC2 , CONFIG_PCIPPC6 */
-/* ----------------------------------------------------------------------------*/
+/* -------------------------------------------------------------------- */
-/* ----- PN62 -----------------------------------------------------------------*/
+/* ----- PN62 --------------------------------------------------------- */
#if defined(CONFIG_PN62)
#define CMD_TBL_BSP MK_CMD_TBL_ENTRY( \
@@ -274,40 +270,46 @@
extern int do_loadpci (cmd_tbl_t *, int, int, char *[]);
extern int do_led (cmd_tbl_t *, int, int, char *[]);
#endif /* CONFIG_PN62 */
-/* ----------------------------------------------------------------------------*/
+/* -------------------------------------------------------------------- */
-/* ----- TRAB ------------------------------------------------------------------
- */
+/* ----- TRAB --------------------------------------------------------- */
#if defined(CONFIG_TRAB)
-#define CMD_TBL_BSP MK_CMD_TBL_ENTRY( \
- "kbd", 3, 1, 1, do_kbd, \
- "kbd - read keyboard status\n", \
- NULL \
+#define CMD_TBL_BSP MK_CMD_TBL_ENTRY( \
+ "kbd", 3, 1, 1, do_kbd, \
+ "kbd - read keyboard status\n", \
+ NULL \
),
int do_kbd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
#endif /* CONFIG_TRAB */
-/* ----------------------------------------------------------------------------*/
+/* -------------------------------------------------------------------- */
-#else
-#define CMD_TBL_BSP
-#endif /* CFG_CMD_BSP */
-
-/* ----- R360MPI ---------------------------------------------------------------
- */
+/* ----- R360MPI ------------------------------------------------------ */
#if defined(CONFIG_R360MPI)
-#define CMD_TBL_BSP MK_CMD_TBL_ENTRY( \
- "kbd", 3, 1, 1, do_kbd, \
- "kbd - read keyboard status\n", \
- NULL \
+#define CMD_TBL_BSP MK_CMD_TBL_ENTRY( \
+ "kbd", 3, 1, 1, do_kbd, \
+ "kbd - read keyboard status\n", \
+ NULL \
),
int do_kbd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
#endif /* CONFIG_R360MPI */
-/* ----------------------------------------------------------------------------*/
+/* -------------------------------------------------------------------- */
+
+/* ------ AMIGAONEG3SE ------------------------------------------------ */
+#if defined(CONFIG_AMIGAONEG3SE)
+
+#define CMD_TBL_BSP /* dummy */
+
+#endif /* AmigaOneG3SE */
+/* -------------------------------------------------------------------- */
+
+#else
+#define CMD_TBL_BSP
+#endif /* CFG_CMD_BSP */
#endif /* _CMD_BSP_H_ */
diff --git a/include/cmd_confdefs.h b/include/cmd_confdefs.h
index 25f386b..c462c3f 100644
--- a/include/cmd_confdefs.h
+++ b/include/cmd_confdefs.h
@@ -12,7 +12,7 @@
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
@@ -24,8 +24,8 @@
/*
* Definitions for Configuring the monitor commands
*/
-#ifndef _CMD_CONFIG_H
-#define _CMD_CONFIG_H
+#ifndef _CMD_CONFIG_H
+#define _CMD_CONFIG_H
/*
* Configurable monitor commands
@@ -42,27 +42,27 @@
#define CFG_CMD_ENV 0x00000100 /* saveenv */
#define CFG_CMD_KGDB 0x00000200 /* kgdb */
#define CFG_CMD_PCMCIA 0x00000400 /* PCMCIA support */
-#define CFG_CMD_IDE 0x00000800 /* IDE harddisk support */
-#define CFG_CMD_PCI 0x00001000 /* pciinfo */
-#define CFG_CMD_IRQ 0x00002000 /* irqinfo */
+#define CFG_CMD_IDE 0x00000800 /* IDE harddisk support */
+#define CFG_CMD_PCI 0x00001000 /* pciinfo */
+#define CFG_CMD_IRQ 0x00002000 /* irqinfo */
#define CFG_CMD_BOOTD 0x00004000 /* bootd */
#define CFG_CMD_CONSOLE 0x00008000 /* coninfo */
#define CFG_CMD_EEPROM 0x00010000 /* EEPROM read/write support */
-#define CFG_CMD_ASKENV 0x00020000 /* ask for env variable */
-#define CFG_CMD_RUN 0x00040000 /* run command in env variable */
-#define CFG_CMD_ECHO 0x00080000 /* echo arguments */
-#define CFG_CMD_I2C 0x00100000 /* I2C serial bus support */
-#define CFG_CMD_REGINFO 0x00200000 /* Register dump */
-#define CFG_CMD_IMMAP 0x00400000 /* IMMR dump support */
-#define CFG_CMD_DATE 0x00800000 /* support for RTC, date/time...*/
+#define CFG_CMD_ASKENV 0x00020000 /* ask for env variable */
+#define CFG_CMD_RUN 0x00040000 /* run command in env variable */
+#define CFG_CMD_ECHO 0x00080000 /* echo arguments */
+#define CFG_CMD_I2C 0x00100000 /* I2C serial bus support */
+#define CFG_CMD_REGINFO 0x00200000 /* Register dump */
+#define CFG_CMD_IMMAP 0x00400000 /* IMMR dump support */
+#define CFG_CMD_DATE 0x00800000 /* support for RTC, date/time...*/
#define CFG_CMD_DHCP 0x01000000 /* DHCP Support */
#define CFG_CMD_BEDBUG 0x02000000 /* Include BedBug Debugger */
-#define CFG_CMD_FDC 0x04000000 /* Floppy Disk Support */
-#define CFG_CMD_SCSI 0x08000000 /* SCSI Support */
-#define CFG_CMD_AUTOSCRIPT 0x10000000 /* Autoscript Support */
-#define CFG_CMD_MII 0x20000000 /* MII support */
+#define CFG_CMD_FDC 0x04000000 /* Floppy Disk Support */
+#define CFG_CMD_SCSI 0x08000000 /* SCSI Support */
+#define CFG_CMD_AUTOSCRIPT 0x10000000 /* Autoscript Support */
+#define CFG_CMD_MII 0x20000000 /* MII support */
#define CFG_CMD_SETGETDCR 0x40000000 /* DCR support on 4xx */
-#define CFG_CMD_BSP 0x80000000 /* Board Specific functions */
+#define CFG_CMD_BSP 0x80000000 /* Board Specific functions */
#define CFG_CMD_ELF 0x0000000100000000 /* ELF (VxWorks) load/boot cmd */
#define CFG_CMD_MISC 0x0000000200000000 /* Misc functions like sleep etc*/
@@ -70,13 +70,14 @@
#define CFG_CMD_DOC 0x0000000800000000 /* Disk-On-Chip Support */
#define CFG_CMD_JFFS2 0x0000001000000000 /* JFFS2 Support */
#define CFG_CMD_DTT 0x0000002000000000 /* Digital Therm and Thermostat */
-#define CFG_CMD_SDRAM 0x0000004000000000 /* SDRAM DIMM SPD info printout */
+#define CFG_CMD_SDRAM 0x0000004000000000 /* SDRAM DIMM SPD info printout */
#define CFG_CMD_DIAG 0x0000008000000000 /* Diagnostics */
-#define CFG_CMD_FPGA 0x0000010000000000 /* FPGA configuration Support */
+#define CFG_CMD_FPGA 0x0000010000000000 /* FPGA configuration Support */
#define CFG_CMD_HWFLOW 0x0000020000000000 /* RTS/CTS hw flow control */
#define CFG_CMD_SAVES 0x0000040000000000 /* save S record dump */
#define CFG_CMD_SPI 0x0000100000000000 /* SPI utility */
-#define CFG_CMD_FDOS 0x0000200000000000 /* Floppy DOS support */
+#define CFG_CMD_FDOS 0x0000200000000000 /* Floppy DOS support */
+#define CFG_CMD_VFD 0x0000400000000000 /* VFD support (TRAB) */
#define CFG_CMD_ALL 0xFFFFFFFFFFFFFFFF /* ALL commands */
@@ -96,7 +97,7 @@
CFG_CMD_EEPROM | \
CFG_CMD_ELF | \
CFG_CMD_FDC | \
- CFG_CMD_FDOS | \
+ CFG_CMD_FDOS | \
CFG_CMD_HWFLOW | \
CFG_CMD_I2C | \
CFG_CMD_IDE | \
@@ -107,7 +108,7 @@
CFG_CMD_MII | \
CFG_CMD_PCI | \
CFG_CMD_PCMCIA | \
- CFG_CMD_REGINFO | \
+ CFG_CMD_REGINFO | \
CFG_CMD_SAVES | \
CFG_CMD_SCSI | \
CFG_CMD_SDRAM | \
@@ -117,10 +118,10 @@
/* Default configuration
*/
-#define CONFIG_CMD_DFL (CFG_CMD_ALL & ~CFG_CMD_NONSTD)
+#define CONFIG_CMD_DFL (CFG_CMD_ALL & ~CFG_CMD_NONSTD)
#ifndef CONFIG_COMMANDS
-#define CONFIG_COMMANDS CONFIG_CMD_DFL
+#define CONFIG_COMMANDS CONFIG_CMD_DFL
#endif
diff --git a/include/cmd_menu.h b/include/cmd_menu.h
new file mode 100644
index 0000000..ad1bd7f
--- /dev/null
+++ b/include/cmd_menu.h
@@ -0,0 +1,42 @@
+/*
+ * (C) Copyright 2001
+ * Hans-Jörg Frieden, Hyperion Entertainment
+ * Hans-JoergF@hyperion-entertainment.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+#ifndef _CMD_MENU_H
+#define _CMD_MENU_H
+
+#include <common.h>
+#include <command.h>
+
+#if defined(CONFIG_AMIGAONEG3SE) && (CONFIG_COMMANDS & CFG_CMD_BSP)
+#define CMD_TBL_MENU MK_CMD_TBL_ENTRY( \
+ "menu", 3, 1, 1, do_menu, \
+ "menu - display BIOS setup menu\n", \
+ "" \
+),
+
+int do_menu( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[] );
+#else
+#define CMD_TBL_MENU
+#endif
+
+#endif /* _CMD_MENU_H */
diff --git a/include/common.h b/include/common.h
index a950cdc..d9d5702 100644
--- a/include/common.h
+++ b/include/common.h
@@ -81,6 +81,18 @@
/*
+ * General Purpose Utilities
+ */
+#define min(X, Y) \
+ ({ typeof (X) __x = (X), __y = (Y); \
+ (__x < __y) ? __x : __y; })
+
+#define max(X, Y) \
+ ({ typeof (X) __x = (X), __y = (Y); \
+ (__x > __y) ? __x : __y; })
+
+
+/*
* Function Prototypes
*/
diff --git a/include/configs/AmigaOneG3SE.h b/include/configs/AmigaOneG3SE.h
new file mode 100644
index 0000000..7e40c53
--- /dev/null
+++ b/include/configs/AmigaOneG3SE.h
@@ -0,0 +1,383 @@
+/*
+ * (C) Copyright 2002
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ *
+ * Configuration settings for the AmigaOneG3SE board.
+ *
+ */
+
+/* ------------------------------------------------------------------------- */
+
+/*
+ * board/config.h - configuration options, board specific
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+/*
+ * High Level Configuration Options
+ * (easy to change)
+ */
+
+#define CONFIG_AMIGAONEG3SE 1
+
+#define CONFIG_BOARD_PRE_INIT 1
+#define CONFIG_MISC_INIT_R 1
+
+#define CONFIG_VERY_BIG_RAM 1
+
+#define CONFIG_CONS_INDEX 1
+#define CONFIG_BAUDRATE 9600
+#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
+
+#undef CONFIG_CLOCKS_IN_MHZ /* clocks passed to Linux in Hz */
+
+#define CONFIG_BOOTARGS "root=/dev/ram rw ramdisk=4096"
+
+#define CONFIG_BOOTP_MASK (CONFIG_BOOTP_DEFAULT | \
+ CONFIG_BOOTP_BOOTFILESIZE)
+
+#define CONFIG_MAC_PARTITION
+#define CONFIG_DOS_PARTITION
+#define CONFIG_AMIGA_PARTITION
+
+#define CONFIG_COMMANDS (CONFIG_CMD_DFL | \
+ CFG_CMD_ASKENV | \
+ CFG_CMD_BSP | \
+ CFG_CMD_DATE | \
+ CFG_CMD_DHCP | \
+ CFG_CMD_ELF | \
+ CFG_CMD_NET | \
+ CFG_CMD_IDE | \
+ CFG_CMD_FDC | \
+ CFG_CMD_CACHE | \
+ CFG_CMD_CONSOLE| \
+ CFG_CMD_USB | \
+ CFG_CMD_BSP | \
+ CFG_CMD_PCI )
+
+/* CFG_CMD_MII | \ */
+
+#define CONFIG_PCI 1
+/* #define CONFIG_PCI_SCAN_SHOW 1 */
+#define CONFIG_PCI_PNP 1 /* PCI plug-and-play */
+
+/* This must be included AFTER the definition of CONFIG_COMMANDS (if any)
+ */
+#include <cmd_confdefs.h>
+
+
+/*
+ * Miscellaneous configurable options
+ */
+#define CFG_LONGHELP /* undef to save memory */
+#define CFG_PROMPT "=> " /* Monitor Command Prompt */
+
+#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
+/* #undef CFG_HUSH_PARSER */
+#ifdef CFG_HUSH_PARSER
+#define CFG_PROMPT_HUSH_PS2 "> "
+#endif
+#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
+
+/* Print Buffer Size
+ */
+#define CFG_PBSIZE (CFG_CBSIZE + sizeof(CFG_PROMPT) + 16)
+
+#define CFG_MAXARGS 64 /* max number of command args */
+#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
+#define CFG_LOAD_ADDR 0x00500000 /* Default load address */
+
+/*-----------------------------------------------------------------------
+ * Start addresses for the final memory configuration
+ * (Set up by the startup code)
+ * Please note that CFG_SDRAM_BASE _must_ start at 0
+ */
+#define CFG_SDRAM_BASE 0x00000000
+#define CFG_FLASH_BASE 0xFFF00000
+#define CFG_FLASH_MAX_SIZE 0x00080000
+/* Maximum amount of RAM.
+ */
+#define CFG_MAX_RAM_SIZE 0x80000000 /* 2G */
+
+#define CFG_RESET_ADDRESS 0xFFF00100
+
+#define CFG_MONITOR_BASE TEXT_BASE
+
+#define CFG_MONITOR_LEN (768 << 10) /* Reserve 512 kB for Monitor */
+#define CFG_MALLOC_LEN (2500 << 10) /* Reserve 128 kB for malloc() */
+
+#if CFG_MONITOR_BASE >= CFG_SDRAM_BASE && \
+ CFG_MONITOR_BASE < CFG_SDRAM_BASE + CFG_MAX_RAM_SIZE
+#define CFG_RAMBOOT
+#else
+#undef CFG_RAMBOOT
+#endif
+
+#define CFG_MEMTEST_START 0x00004000 /* memtest works on */
+#define CFG_MEMTEST_END 0x02000000 /* 0 ... 32 MB in DRAM */
+
+/*-----------------------------------------------------------------------
+ * Definitions for initial stack pointer and data area
+ */
+
+/* Size in bytes reserved for initial data
+ */
+#define CFG_INIT_RAM_ADDR 0x400000
+#define CFG_INIT_RAM_END 0x8000
+#define CFG_GBL_DATA_SIZE 128
+#define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
+#define CFG_INIT_SP_OFFSET CFG_GBL_DATA_OFFSET
+
+#define CFG_INIT_RAM_LOCK
+
+/*
+ * Temporary buffer for serial data until the real serial driver
+ * is initialised (memtest will destroy this buffer)
+ */
+#define CFG_SCONSOLE_ADDR CFG_INIT_RAM_ADDR
+#define CFG_SCONSOLE_SIZE 0x0002000
+
+/* SDRAM 0 - 256MB
+ */
+
+#define CFG_IBAT0L (CFG_SDRAM_BASE | BATL_PP_RW | BATL_CACHEINHIBIT)
+#define CFG_IBAT0U (CFG_SDRAM_BASE | BATU_BL_4M | BATU_VS | BATU_VP)
+#define CFG_DBAT0L (CFG_SDRAM_BASE | BATL_PP_RW | BATL_CACHEINHIBIT)
+#define CFG_DBAT0U CFG_IBAT0U
+
+/* SDRAM 1 - 256MB
+ */
+#define CFG_IBAT1L ((CFG_SDRAM_BASE+CFG_INIT_RAM_ADDR) | BATL_PP_RW) /* | BATL_CACHEINHIBIT) */
+#define CFG_IBAT1U ((CFG_SDRAM_BASE+CFG_INIT_RAM_ADDR) | BATU_BL_256M | BATU_VS | BATU_VP)
+#define CFG_DBAT1L ((CFG_SDRAM_BASE+CFG_INIT_RAM_ADDR + 0x20000) | BATL_PP_RW ) /* | BATL_CACHEINHIBIT) */
+#define CFG_DBAT1U ((CFG_SDRAM_BASE+CFG_INIT_RAM_ADDR + 0x20000) | BATU_BL_256M | BATU_VS | BATU_VP)
+
+/* Init RAM in the CPU DCache (no backing memory)
+ */
+#define CFG_DBAT2L (CFG_INIT_RAM_ADDR | BATL_PP_RW | BATL_MEMCOHERENCE)
+#define CFG_DBAT2U (CFG_INIT_RAM_ADDR | BATU_BL_128K | BATU_VS | BATU_VP)
+#define CFG_IBAT2L 0 /* CFG_DBAT2L */
+#define CFG_IBAT2U 0 /* CFG_DBAT2U */
+
+/* I/O and PCI memory at 0xf0000000
+ */
+#define CFG_DBAT3L (0xf0000000 | BATL_PP_RW | BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
+#define CFG_DBAT3U (0xf0000000 | BATU_BL_256M | BATU_VS | BATU_VP)
+
+#define CFG_IBAT3L (0xf0000000 | BATL_PP_RW | BATL_CACHEINHIBIT)
+#define CFG_IBAT3U (0xf0000000 | BATU_BL_256M | BATU_VS | BATU_VP)
+
+/*
+ * Low Level Configuration Settings
+ * (address mappings, register initial values, etc.)
+ */
+#define CFG_HZ 1000
+#define CFG_BUS_HZ 133000000 /* bus speed - 100 mhz */
+#define CFG_CPU_CLK 133000000
+#define CFG_BUS_CLK 133000000
+
+/*
+ * For booting Linux, the board info and command line data
+ * have to be in the first 8 MB of memory, since this is
+ * the maximum mapped by the Linux kernel during initialization.
+ */
+#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
+
+/*-----------------------------------------------------------------------
+ * FLASH organization
+ */
+#define CFG_MAX_FLASH_BANKS 1 /* Max number of flash banks */
+#define CFG_MAX_FLASH_SECT 8 /* Max number of sectors in one bank */
+
+#define CFG_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */
+#define CFG_FLASH_WRITE_TOUT 1000 /* Timeout for Flash Write (in ms) */
+
+/*
+ * Environment is stored in NVRAM.
+ */
+#define CFG_ENV_IS_IN_NVRAM 1
+#define CFG_ENV_ADDR 0xFD0E0000 /* This should be 0xFD0E0000, but we skip bytes to
+ * protect softex's settings for now.
+ * Original 768 bytes where not enough.
+ */
+#define CFG_ENV_SIZE 0x8000 /* Size of the Environment. See comment above */
+
+#define CFG_CONSOLE_IS_IN_ENV 1 /* stdin/stdout/stderr are in environment */
+#define CFG_CONSOLE_OVERWRITE_ROUTINE 1
+#define CONFIG_ENV_OVERWRITE 1
+
+/*-----------------------------------------------------------------------
+ * Cache Configuration
+ */
+#define CFG_CACHELINE_SIZE 32
+#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
+# define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
+#endif
+
+/*
+ * L2 cache
+ */
+#define CFG_L2
+#define L2_INIT (L2CR_L2SIZ_2M | L2CR_L2CLK_3 | L2CR_L2RAM_BURST | \
+ L2CR_L2OH_5 | L2CR_L2CTL | L2CR_L2WT)
+#define L2_ENABLE (L2_INIT | L2CR_L2E)
+
+/*
+ * Internal Definitions
+ *
+ * Boot Flags
+ */
+#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
+#define BOOTFLAG_WARM 0x02 /* Software reboot */
+
+
+/*-----------------------------------------------------------------------
+ * IDE ATAPI Configuration
+ */
+
+#define CONFIG_ATAPI 1
+#define CFG_IDE_MAXBUS 2
+#define CFG_IDE_MAXDEVICE 4
+#define CONFIG_ISO_PARTITION 1
+
+#define CFG_ATA_BASE_ADDR 0xFE000000 /* was: via_get_base_addr() */
+#define CFG_ATA_IDE0_OFFSET 0x1F0
+#define CFG_ATA_IDE1_OFFSET 0x170
+
+#define CFG_ATA_REG_OFFSET 0
+#define CFG_ATA_DATA_OFFSET 0
+#define CFG_ATA_ALT_OFFSET 0x0200
+
+/*-----------------------------------------------------------------------
+ * Disk-On-Chip configuration
+ */
+
+#define CFG_MAX_DOC_DEVICE 1 /* Max number of DOC devices */
+
+#define CFG_DOC_SUPPORT_2000
+#undef CFG_DOC_SUPPORT_MILLENNIUM
+
+/*-----------------------------------------------------------------------
+ RTC
+*/
+#define CONFIG_RTC_MC146818
+
+/*-----------------------------------------------------------------------
+ * NS16550 Configuration
+ */
+
+#define CFG_NS16550
+
+#define CFG_NS16550_COM1 0xFE0003F8
+#define CFG_NS16550_COM2 0xFE0002F8
+
+#define CFG_NS16550_REG_SIZE 1
+
+/* base address for ISA I/O
+ */
+#define CFG_ISA_IO_BASE_ADDRESS 0xFE000000
+
+/* ISA Interrupt stuff (taken from JWL) */
+
+#define ISA_INT1_OCW1 0x21
+#define ISA_INT2_OCW1 0xA1
+#define ISA_INT1_OCW2 0x20
+#define ISA_INT2_OCW2 0xA0
+#define ISA_INT1_OCW3 0x20
+#define ISA_INT2_OCW3 0xA0
+
+#define ISA_INT1_ICW1 0x20
+#define ISA_INT2_ICW1 0xA0
+#define ISA_INT1_ICW2 0x21
+#define ISA_INT2_ICW2 0xA1
+#define ISA_INT1_ICW3 0x21
+#define ISA_INT2_ICW3 0xA1
+#define ISA_INT1_ICW4 0x21
+#define ISA_INT2_ICW4 0xA1
+
+
+/*
+ * misc
+ */
+
+#define CONFIG_NET_MULTI
+#define CFG_BOARD_ASM_INIT
+#define CONFIG_LAST_STAGE_INIT
+
+/* #define CONFIG_ETHADDR 00:09:D2:10:00:76 */
+/* #define CONFIG_IPADDR 192.168.0.2 */
+/* #define CONFIG_NETMASK 255.255.255.240 */
+/* #define CONFIG_GATEWAYIP 192.168.0.3 */
+
+#define CONFIG_3COM
+/* #define CONFIG_BOOTP_RANDOM_DELAY */
+#define CONFIG_BOOTP_MASK (CONFIG_BOOTP_DEFAULT | \
+ CONFIG_BOOTP_BOOTFILESIZE)
+
+/*
+ * USB configuration
+ */
+#define CONFIG_USB_UHCI 1
+#define CONFIG_USB_STORAGE 1
+#define CONFIG_USB_KEYBOARD 1
+#define CFG_DEVICE_DEREGISTER 1 /* needed by CONFIG_USB_KEYBOARD */
+
+/*
+ * Autoboot stuff
+ */
+#define CONFIG_BOOTDELAY 5 /* Boot automatically after five seconds */
+#define CONFIG_PREBOOT ""
+#define CONFIG_BOOTCOMMAND "fdcboot; diskboot"
+#define CONFIG_MENUPROMPT "Press any key to interrupt autoboot: %2d "
+#define CONFIG_MENUKEY ' '
+#define CONFIG_MENUCOMMAND "menu"
+/* #define CONFIG_AUTOBOOT_KEYED */
+
+/*
+ * Extra ENV stuff
+ */
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ "stdout=vga\0" \
+ "stdin=ps2kbd\0" \
+ "ide_doreset=on\0" \
+ "ide_maxbus=2\0" \
+ "ide_cd_timeout=30\0" \
+ "menucmd=menu\0" \
+ "pci_irqa=9\0" \
+ "pci_irqa_select=edge\0" \
+ "pci_irqb=10\0" \
+ "pci_irqb_select=edge\0" \
+ "pci_irqc=11\0" \
+ "pci_irqc_select=edge\0" \
+ "pci_irqd=12\0" \
+ "pci_irqd_select=edge\0"
+
+
+/* #define CONFIG_MII 1 */
+/* #define CONFIG_BITBANGMII 1 */
+
+
+#endif /* __CONFIG_H */
diff --git a/include/configs/sbc8260.h b/include/configs/sbc8260.h
index ec60179..d47c208 100644
--- a/include/configs/sbc8260.h
+++ b/include/configs/sbc8260.h
@@ -239,12 +239,12 @@
#endif /* CONFIG_ETHER_ON_FCC, CONFIG_ETHER_INDEX */
/*
- * select SPI support configuration
+ * Select SPI support configuration
*/
-#undef CONFIG_SPI /* enable SPI driver */
+#undef CONFIG_SPI /* Disable SPI driver */
/*
- * select i2c support configuration
+ * Select i2c support configuration
*
* Supported configurations are {none, software, hardware} drivers.
* If the software driver is chosen, there are some additional
@@ -284,7 +284,10 @@
/* What should the console's baud rate be? */
#define CONFIG_BAUDRATE 9600
-/* Ethernet MAC address */
+/* Ethernet MAC address
+ * Note: We are using the EST Corporation OUI (00:a0:1e:xx:xx:xx)
+ * http://standards.ieee.org/regauth/oui/index.shtml
+ */
#define CONFIG_ETHADDR 00:a0:1e:a8:7b:cb
/*
@@ -299,19 +302,53 @@
/* Set to a positive value to delay for running BOOTCOMMAND */
#define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */
-#if 0
/* Be selective on what keys can delay or stop the autoboot process
* To stop use: " "
*/
-# define CONFIG_AUTOBOOT_KEYED
-# define CONFIG_AUTOBOOT_PROMPT "Autobooting in %d seconds, press \" \" to stop\n"
-# define CONFIG_AUTOBOOT_STOP_STR " "
-# undef CONFIG_AUTOBOOT_DELAY_STR
-# define DEBUG_BOOTKEYS 0
+#undef CONFIG_AUTOBOOT_KEYED
+#ifdef CONFIG_AUTOBOOT_KEYED
+# define CONFIG_AUTOBOOT_PROMPT "Autobooting in %d seconds, press \" \" to stop\n"
+# define CONFIG_AUTOBOOT_STOP_STR " "
+# undef CONFIG_AUTOBOOT_DELAY_STR
+# define DEBUG_BOOTKEYS 0
#endif
/* Define this to contain any number of null terminated strings that
* will be part of the default enviroment compiled into the boot image.
+ *
+ * Variable Usage
+ * -------------- -------------------------------------------------------
+ * serverip server IP address
+ * ipaddr my IP address
+ * reprog Reload flash with a new copy of U-Boot
+ * zapenv Erase the environment area in flash
+ * root-on-initrd Set the bootcmd variable to allow booting of an initial
+ * ram disk.
+ * root-on-nfs Set the bootcmd variable to allow booting of a NFS
+ * mounted root filesystem.
+ * boot-hook Convenient stub to do something useful before the
+ * bootm command is executed.
+ *
+ * Example usage of root-on-initrd and root-on-nfs :
+ *
+ * Note: The lines have been wrapped to improved its readability.
+ *
+ * => printenv bootcmd
+ * bootcmd=version;echo;bootp;setenv bootargs root=/dev/nfs rw
+ * nfsroot=$(serverip):$(rootpath)
+ * ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off;run boot-hook;bootm
+ *
+ * => run root-on-initrd
+ * => printenv bootcmd
+ * bootcmd=version;echo;bootp;setenv bootargs root=/dev/ram0 rw
+ * ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off;run boot-hook;bootm
+ *
+ * => run root-on-nfs
+ * => printenv bootcmd
+ * bootcmd=version;echo;bootp;setenv bootargs root=/dev/nfs rw
+ * nfsroot=$(serverip):$(rootpath)
+ * ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off;run boot-hook;bootm
+ *
*/
#define CONFIG_EXTRA_ENV_SETTINGS \
"serverip=192.168.123.201\0" \
@@ -328,22 +365,22 @@
"protect on 1:1\0" \
"root-on-initrd="\
"setenv bootcmd "\
- "version;" \
- "echo;" \
- "bootp;" \
+ "version\\;" \
+ "echo\\;" \
+ "bootp\\;" \
"setenv bootargs root=/dev/ram0 rw " \
- "ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off;" \
- "run boot-hook;" \
+ "ip=\\$(ipaddr):\\$(serverip):\\$(gatewayip):\\$(netmask):\\$(hostname)::off\\;" \
+ "run boot-hook\\;" \
"bootm\0" \
"root-on-nfs="\
"setenv bootcmd "\
- "version;" \
- "echo;" \
- "bootp;" \
+ "version\\;" \
+ "echo\\;" \
+ "bootp\\;" \
"setenv bootargs root=/dev/nfs rw " \
- "nfsroot=$(serverip):$(rootpath) " \
- "ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off\\;" \
- "run boot-hook;" \
+ "nfsroot=\\$(serverip):\\$(rootpath) " \
+ "ip=\\$(ipaddr):\\$(serverip):\\$(gatewayip):\\$(netmask):\\$(hostname)::off\\;" \
+ "run boot-hook\\;" \
"bootm\0" \
"boot-hook=echo boot-hook\0"
diff --git a/include/part.h b/include/part.h
index e43978c..9aa9f5a 100644
--- a/include/part.h
+++ b/include/part.h
@@ -51,6 +51,8 @@
#define PART_TYPE_MAC 0x01
#define PART_TYPE_DOS 0x02
#define PART_TYPE_ISO 0x03
+#define PART_TYPE_AMIGA 0x04
+
/* device types */
#define DEV_TYPE_UNKNOWN 0xff /* not connected */
#define DEV_TYPE_HARDDISK 0x00 /* harddisk */
@@ -94,6 +96,13 @@
int test_part_iso (block_dev_desc_t *dev_desc);
#endif
+#ifdef CONFIG_AMIGA_PARTITION
+/* disk/part_amiga.c */
+int get_partition_info_amiga (block_dev_desc_t * dev_desc, int part, disk_partition_t *info);
+void print_part_amiga (block_dev_desc_t *dev_desc);
+int test_part_amiga (block_dev_desc_t *dev_desc);
+#endif
+
#endif /* _PART_H */
diff --git a/include/pci.h b/include/pci.h
index 4875375..e5055b1 100644
--- a/include/pci.h
+++ b/include/pci.h
@@ -375,6 +375,7 @@
/* Used by ppc405 autoconfig*/
struct pci_region *pci_fb;
+ int current_busno;
};
extern __inline__ void pci_set_ops(struct pci_controller *hose,
@@ -457,7 +458,7 @@
pci_dev_t dev, int bars_num,
struct pci_region *mem,
struct pci_region *io);
-void pciauto_config_device(struct pci_controller *hose, pci_dev_t dev);
+int pciauto_config_device(struct pci_controller *hose, pci_dev_t dev);
extern pci_dev_t pci_find_device (unsigned int vendor, unsigned int device, int index);
extern pci_dev_t pci_find_devices (struct pci_device_id *ids, int index);
diff --git a/include/syscall.h b/include/syscall.h
index f80d550..9b9be0d 100644
--- a/include/syscall.h
+++ b/include/syscall.h
@@ -15,10 +15,13 @@
void mon_free_hdlr(int);
void *mon_malloc(size_t);
void mon_free(void*);
+void mon_udelay(unsigned long);
+unsigned long mon_get_timer(unsigned long);
#endif /* ifndef __ASSEMBLY__ */
-#define NR_SYSCALLS 9 /* number of syscalls */
+#define NR_SYSCALLS 11 /* number of syscalls */
+
/*
* Make sure these functions are in the same order as they
@@ -33,5 +36,7 @@
#define SYSCALL_FREE_HDLR 6
#define SYSCALL_MALLOC 7
#define SYSCALL_FREE 8
+#define SYSCALL_UDELAY 9
+#define SYSCALL_GET_TIMER 10
#endif