]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - include/configs/lwmon5.h
Merge remote-tracking branch 'u-boot-imx/master'
[karo-tx-uboot.git] / include / configs / lwmon5.h
index e0dbd6113c749fa9fe9a4bd435acc86c16e4a0db..58e72956908188b0c98991af83d7519e12f7782b 100644 (file)
 /*
- * (C) Copyright 2007-2008
+ * (C) Copyright 2007-2013
  * Stefan Roese, DENX Software Engineering, sr@denx.de.
  *
- * 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
+ * SPDX-License-Identifier:    GPL-2.0+
  */
 
-/************************************************************************
+/*
  * lwmon5.h - configuration for lwmon5 board
- ***********************************************************************/
+ */
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
-/*-----------------------------------------------------------------------
+/*
+ * Liebherr extra version info
+ */
+#define CONFIG_IDENT_STRING    " - v2.0"
+
+/*
  * High Level Configuration Options
- *----------------------------------------------------------------------*/
+ */
 #define CONFIG_LWMON5          1               /* Board is lwmon5      */
 #define CONFIG_440EPX          1               /* Specific PPC440EPx   */
 #define CONFIG_440             1               /* ... PPC440 family    */
-#define CONFIG_4xx             1               /* ... PPC4xx family    */
+
+#ifdef CONFIG_LCD4_LWMON5
+#define        CONFIG_SYS_TEXT_BASE    0x01000000 /* SPL U-Boot TEXT_BASE */
+#define CONFIG_HOSTNAME                lcd4_lwmon5
+#else
+#define CONFIG_SYS_TEXT_BASE   0xFFF80000
+#define CONFIG_HOSTNAME                lwmon5
+#endif
+
 #define CONFIG_SYS_CLK_FREQ    33300000        /* external freq to pll */
 
-#define CONFIG_BOARD_EARLY_INIT_F 1    /* Call board_early_init_f      */
-#define CONFIG_BOARD_POSTCLK_INIT 1    /* Call board_postclk_init      */
-#define CONFIG_MISC_INIT_R     1       /* Call misc_init_r             */
-#define CONFIG_BOARD_RESET     1       /* Call board_reset             */
+#define CONFIG_4xx_DCACHE              /* enable cache in SDRAM        */
+
+#define CONFIG_BOARD_EARLY_INIT_F      /* Call board_early_init_f      */
+#define CONFIG_BOARD_EARLY_INIT_R      /* Call board_early_init_r      */
+#define CONFIG_BOARD_POSTCLK_INIT      /* Call board_postclk_init      */
+#define CONFIG_MISC_INIT_R             /* Call misc_init_r             */
+#define CONFIG_BOARD_RESET             /* Call board_reset             */
 
-/*-----------------------------------------------------------------------
+/*
  * Base addresses -- Note these are effective addresses where the
  * actual resources get mapped (not physical addresses)
- *----------------------------------------------------------------------*/
-#define CONFIG_SYS_MONITOR_LEN         (512 * 1024)    /* Reserve 512 kB for Monitor   */
-#define CONFIG_SYS_MALLOC_LEN          (512 * 1024)    /* Reserve 512 kB for malloc()  */
+ */
+#define CONFIG_SYS_MONITOR_BASE                CONFIG_SYS_TEXT_BASE    /* Start of U-Boot      */
+#define CONFIG_SYS_MONITOR_LEN         0x80000
+#define CONFIG_SYS_MALLOC_LEN          (1 << 20)       /* Reserved for malloc  */
 
 #define CONFIG_SYS_BOOT_BASE_ADDR      0xf0000000
 #define CONFIG_SYS_SDRAM_BASE          0x00000000      /* _must_ be 0          */
 #define CONFIG_SYS_FLASH_BASE          0xf8000000      /* start of FLASH       */
-#define CONFIG_SYS_MONITOR_BASE        TEXT_BASE
-#define CONFIG_SYS_LIME_BASE_0         0xc0000000
-#define CONFIG_SYS_LIME_BASE_1         0xc1000000
-#define CONFIG_SYS_LIME_BASE_2         0xc2000000
-#define CONFIG_SYS_LIME_BASE_3         0xc3000000
-#define CONFIG_SYS_FPGA_BASE_0         0xc4000000
-#define CONFIG_SYS_FPGA_BASE_1         0xc4200000
+#define CONFIG_SYS_LIME_BASE_0         0xc0000000
+#define CONFIG_SYS_LIME_BASE_1         0xc1000000
+#define CONFIG_SYS_LIME_BASE_2         0xc2000000
+#define CONFIG_SYS_LIME_BASE_3         0xc3000000
+#define CONFIG_SYS_FPGA_BASE_0         0xc4000000
+#define CONFIG_SYS_FPGA_BASE_1         0xc4200000
 #define CONFIG_SYS_OCM_BASE            0xe0010000      /* ocm                  */
 #define CONFIG_SYS_PCI_BASE            0xe0000000      /* Internal PCI regs    */
 #define CONFIG_SYS_PCI_MEMBASE         0x80000000      /* mapped pci memory    */
-#define CONFIG_SYS_PCI_MEMBASE1        CONFIG_SYS_PCI_MEMBASE  + 0x10000000
-#define CONFIG_SYS_PCI_MEMBASE2        CONFIG_SYS_PCI_MEMBASE1 + 0x10000000
-#define CONFIG_SYS_PCI_MEMBASE3        CONFIG_SYS_PCI_MEMBASE2 + 0x10000000
-
-/* Don't change either of these */
-#define CONFIG_SYS_PERIPHERAL_BASE     0xef600000      /* internal peripherals */
+#define CONFIG_SYS_PCI_MEMBASE1                (CONFIG_SYS_PCI_MEMBASE  + 0x10000000)
+#define CONFIG_SYS_PCI_MEMBASE2                (CONFIG_SYS_PCI_MEMBASE1 + 0x10000000)
+#define CONFIG_SYS_PCI_MEMBASE3                (CONFIG_SYS_PCI_MEMBASE2 + 0x10000000)
 
+#ifndef CONFIG_LCD4_LWMON5
 #define CONFIG_SYS_USB2D0_BASE         0xe0000100
 #define CONFIG_SYS_USB_DEVICE          0xe0000000
 #define CONFIG_SYS_USB_HOST            0xe0000400
+#endif
 
-/*-----------------------------------------------------------------------
- * Initial RAM & stack pointer
- *----------------------------------------------------------------------*/
 /*
+ * Initial RAM & stack pointer
+ *
  * On LWMON5 we use D-cache as init-ram and stack pointer. We also move
  * the POST_WORD from OCM to a 440EPx register that preserves it's
  * content during reset (GPT0_COMP6). This way we reserve the OCM (16k)
  * for logbuffer only. (GPT0_COMP1-COMP5 are reserved for logbuffer header.)
  */
+#ifndef CONFIG_LCD4_LWMON5
 #define CONFIG_SYS_INIT_RAM_DCACHE     1               /* d-cache as init ram  */
 #define CONFIG_SYS_INIT_RAM_ADDR       0x70000000              /* DCache       */
-#define CONFIG_SYS_INIT_RAM_END        (4 << 10)
-#define CONFIG_SYS_GBL_DATA_SIZE       256             /* num bytes initial data*/
-#define CONFIG_SYS_GBL_DATA_OFFSET     (CONFIG_SYS_INIT_RAM_END - CONFIG_SYS_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_RAM_SIZE               (4 << 10)
+#define CONFIG_SYS_GBL_DATA_OFFSET     (CONFIG_SYS_INIT_RAM_SIZE - \
+                                        GENERATED_GBL_DATA_SIZE)
 #define CONFIG_SYS_INIT_SP_OFFSET      CONFIG_SYS_GBL_DATA_OFFSET
-#define CONFIG_SYS_POST_ALT_WORD_ADDR  (CONFIG_SYS_PERIPHERAL_BASE + GPT0_COMP6)
-                                               /* unused GPT0 COMP reg */
-#define CONFIG_SYS_MEM_TOP_HIDE        (4 << 10) /* don't use last 4kbytes     */
-                                       /* 440EPx errata CHIP 11        */
+#else
+#define CONFIG_SYS_INIT_RAM_ADDR       CONFIG_SYS_OCM_BASE
+#define CONFIG_SYS_INIT_RAM_SIZE       (4 << 10)
+#define CONFIG_SYS_GBL_DATA_OFFSET     (CONFIG_SYS_INIT_RAM_SIZE - \
+                                        GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_SP_OFFSET      (CONFIG_SYS_GBL_DATA_OFFSET - 0x4)
+#endif
+/* unused GPT0 COMP reg        */
+#define CONFIG_SYS_POST_WORD_ADDR      (CONFIG_SYS_PERIPHERAL_BASE + GPT0_COMP6)
 #define CONFIG_SYS_OCM_SIZE            (16 << 10)
+/* 440EPx errata CHIP 11: don't use last 4kbytes */
+#define CONFIG_SYS_MEM_TOP_HIDE                (4 << 10)
 
 /* Additional registers for watchdog timer post test */
-
 #define CONFIG_SYS_WATCHDOG_TIME_ADDR  (CONFIG_SYS_PERIPHERAL_BASE + GPT0_MASK2)
 #define CONFIG_SYS_WATCHDOG_FLAGS_ADDR (CONFIG_SYS_PERIPHERAL_BASE + GPT0_MASK1)
 #define CONFIG_SYS_DSPIC_TEST_ADDR     CONFIG_SYS_WATCHDOG_FLAGS_ADDR
 #define CONFIG_SYS_OCM_STATUS_FAIL     0x0000A300
 #define CONFIG_SYS_OCM_STATUS_MASK     0x0000FF00
 
-/*-----------------------------------------------------------------------
+/*
  * Serial Port
- *----------------------------------------------------------------------*/
+ */
+#define CONFIG_CONS_INDEX      2       /* Use UART1                    */
+#define CONFIG_SYS_NS16550
+#define CONFIG_SYS_NS16550_SERIAL
+#define CONFIG_SYS_NS16550_REG_SIZE    1
+#define CONFIG_SYS_NS16550_CLK         get_serial_clock()
 #undef CONFIG_SYS_EXT_SERIAL_CLOCK             /* no external clock provided   */
 #define CONFIG_BAUDRATE                115200
-#define CONFIG_SERIAL_MULTI     1
-/* define this if you want console on UART1 */
-#define CONFIG_UART1_CONSOLE   1       /* use UART1 as console         */
 
 #define CONFIG_SYS_BAUDRATE_TABLE                                              \
        {300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200}
 
-/*-----------------------------------------------------------------------
+/*
  * Environment
- *----------------------------------------------------------------------*/
-#define CONFIG_ENV_IS_IN_FLASH     1   /* use FLASH for environment vars       */
+ */
+#define CONFIG_ENV_IS_IN_FLASH         /* use FLASH for environment vars       */
 
-/*-----------------------------------------------------------------------
+/*
  * FLASH related
- *----------------------------------------------------------------------*/
-#define CONFIG_SYS_FLASH_CFI                           /* The flash is CFI compatible  */
+ */
+#define CONFIG_SYS_FLASH_CFI                   /* The flash is CFI compatible  */
 #define CONFIG_FLASH_CFI_DRIVER                        /* Use common CFI driver        */
 
 #define CONFIG_SYS_FLASH0              0xFC000000
 #define CONFIG_SYS_FLASH1              0xF8000000
 #define CONFIG_SYS_FLASH_BANKS_LIST    { CONFIG_SYS_FLASH1, CONFIG_SYS_FLASH0 }
 
-#define CONFIG_SYS_MAX_FLASH_BANKS     2       /* max number of memory banks           */
+#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT 2    /* max number of memory banks           */
 #define CONFIG_SYS_MAX_FLASH_SECT      512     /* max number of sectors on one chip    */
 
 #define CONFIG_SYS_FLASH_ERASE_TOUT    120000  /* Timeout for Flash Erase (in ms)      */
 #define CONFIG_SYS_FLASH_WRITE_TOUT    500     /* Timeout for Flash Write (in ms)      */
 
-#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1    /* use buffered writes (20x faster)     */
-#define CONFIG_SYS_FLASH_PROTECTION    1       /* use hardware flash protection        */
+#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE      /* use buffered writes (20x faster)     */
+#define CONFIG_SYS_FLASH_PROTECTION            /* use hardware flash protection        */
 
 #define CONFIG_SYS_FLASH_EMPTY_INFO            /* print 'E' for empty sector on flinfo */
-#define CONFIG_SYS_FLASH_QUIET_TEST    1       /* don't warn upon unknown flash        */
+#define CONFIG_SYS_FLASH_QUIET_TEST            /* don't warn upon unknown flash        */
 
 #define CONFIG_ENV_SECT_SIZE   0x40000 /* size of one complete sector          */
-#define CONFIG_ENV_ADDR                ((-CONFIG_SYS_MONITOR_LEN)-CONFIG_ENV_SECT_SIZE)
+#define CONFIG_ENV_ADDR                ((-CONFIG_SYS_MONITOR_LEN) - CONFIG_ENV_SECT_SIZE)
 #define        CONFIG_ENV_SIZE         0x2000  /* Total Size of Environment Sector     */
 
 /* Address and size of Redundant Environment Sector    */
-#define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR-CONFIG_ENV_SECT_SIZE)
+#define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR - CONFIG_ENV_SECT_SIZE)
 #define CONFIG_ENV_SIZE_REDUND (CONFIG_ENV_SIZE)
 
-/*-----------------------------------------------------------------------
+/*
  * DDR SDRAM
- *----------------------------------------------------------------------*/
-#define CONFIG_SYS_MBYTES_SDRAM        (256)           /* 256MB                        */
+ */
+#define CONFIG_SYS_MBYTES_SDRAM                256
 #define CONFIG_SYS_DDR_CACHED_ADDR     0x40000000      /* setup 2nd TLB cached here    */
-#define CONFIG_DDR_DATA_EYE    1               /* use DDR2 optimization        */
-#define CONFIG_DDR_ECC         1               /* enable ECC                   */
-#define CONFIG_SYS_POST_ECC_ON         CONFIG_SYS_POST_ECC
+#define CONFIG_DDR_DATA_EYE                    /* use DDR2 optimization        */
+#ifndef CONFIG_LCD4_LWMON5
+#define CONFIG_DDR_ECC                         /* enable ECC                   */
+#endif
 
+#ifndef CONFIG_LCD4_LWMON5
 /* POST support */
-#define CONFIG_POST            (CONFIG_SYS_POST_CACHE    | \
-                                CONFIG_SYS_POST_CPU       | \
-                                CONFIG_SYS_POST_ECC_ON   | \
-                                CONFIG_SYS_POST_ETHER     | \
-                                CONFIG_SYS_POST_FPU       | \
-                                CONFIG_SYS_POST_I2C       | \
-                                CONFIG_SYS_POST_MEMORY   | \
-                                CONFIG_SYS_POST_OCM      | \
-                                CONFIG_SYS_POST_RTC      | \
-                                CONFIG_SYS_POST_SPR      | \
-                                CONFIG_SYS_POST_UART     | \
-                                CONFIG_SYS_POST_SYSMON   | \
-                                CONFIG_SYS_POST_WATCHDOG | \
-                                CONFIG_SYS_POST_DSP      | \
-                                CONFIG_SYS_POST_BSPEC1   | \
-                                CONFIG_SYS_POST_BSPEC2   | \
-                                CONFIG_SYS_POST_BSPEC3   | \
-                                CONFIG_SYS_POST_BSPEC4   | \
+#define CONFIG_POST            (CONFIG_SYS_POST_CACHE          | \
+                                CONFIG_SYS_POST_CPU            | \
+                                CONFIG_SYS_POST_ECC            | \
+                                CONFIG_SYS_POST_ETHER          | \
+                                CONFIG_SYS_POST_FPU            | \
+                                CONFIG_SYS_POST_I2C            | \
+                                CONFIG_SYS_POST_MEMORY         | \
+                                CONFIG_SYS_POST_OCM            | \
+                                CONFIG_SYS_POST_RTC            | \
+                                CONFIG_SYS_POST_SPR            | \
+                                CONFIG_SYS_POST_UART           | \
+                                CONFIG_SYS_POST_SYSMON         | \
+                                CONFIG_SYS_POST_WATCHDOG       | \
+                                CONFIG_SYS_POST_DSP            | \
+                                CONFIG_SYS_POST_BSPEC1         | \
+                                CONFIG_SYS_POST_BSPEC2         | \
+                                CONFIG_SYS_POST_BSPEC3         | \
+                                CONFIG_SYS_POST_BSPEC4         | \
                                 CONFIG_SYS_POST_BSPEC5)
 
-#define CONFIG_POST_WATCHDOG  {\
+/* Define here the base-addresses of the UARTs to test in POST */
+#define CONFIG_SYS_POST_UART_TABLE     { CONFIG_SYS_NS16550_COM1, \
+                       CONFIG_SYS_NS16550_COM2 }
+
+#define CONFIG_POST_UART  {                            \
+       "UART test",                                    \
+       "uart",                                         \
+       "This test verifies the UART operation.",       \
+       POST_RAM | POST_SLOWTEST | POST_ALWAYS | POST_MANUAL,   \
+       &uart_post_test,                                \
+       NULL,                                           \
+       NULL,                                           \
+       CONFIG_SYS_POST_UART                            \
+       }
+
+#define CONFIG_POST_WATCHDOG  {                                \
        "Watchdog timer test",                          \
        "watchdog",                                     \
        "This test checks the watchdog timer.",         \
        &lwmon5_watchdog_post_test,                     \
        NULL,                                           \
        NULL,                                           \
-       CONFIG_SYS_POST_WATCHDOG                                \
+       CONFIG_SYS_POST_WATCHDOG                        \
        }
 
-#define CONFIG_POST_BSPEC1    {\
+#define CONFIG_POST_BSPEC1    {                                \
        "dsPIC init test",                              \
        "dspic_init",                                   \
        "This test returns result of dsPIC READY test run earlier.",    \
        &dspic_init_post_test,                          \
        NULL,                                           \
        NULL,                                           \
-       CONFIG_SYS_POST_BSPEC1                                  \
+       CONFIG_SYS_POST_BSPEC1                          \
        }
 
-#define CONFIG_POST_BSPEC2    {\
+#define CONFIG_POST_BSPEC2    {                                \
        "dsPIC test",                                   \
        "dspic",                                        \
        "This test gets result of dsPIC POST and dsPIC version.",       \
        &dspic_post_test,                               \
        NULL,                                           \
        NULL,                                           \
-       CONFIG_SYS_POST_BSPEC2                                  \
+       CONFIG_SYS_POST_BSPEC2                          \
        }
 
-#define CONFIG_POST_BSPEC3    {\
+#define CONFIG_POST_BSPEC3    {                                \
        "FPGA test",                                    \
        "fpga",                                         \
        "This test checks FPGA registers and memory.",  \
-       POST_RAM | POST_ALWAYS,                         \
+       POST_RAM | POST_ALWAYS | POST_MANUAL,           \
        &fpga_post_test,                                \
        NULL,                                           \
        NULL,                                           \
-       CONFIG_SYS_POST_BSPEC3                                  \
+       CONFIG_SYS_POST_BSPEC3                          \
        }
 
-#define CONFIG_POST_BSPEC4    {\
+#define CONFIG_POST_BSPEC4    {                                \
        "GDC test",                                     \
        "gdc",                                          \
        "This test checks GDC registers and memory.",   \
-       POST_RAM | POST_ALWAYS,                         \
+       POST_RAM | POST_ALWAYS | POST_MANUAL,\
        &gdc_post_test,                                 \
        NULL,                                           \
        NULL,                                           \
-       CONFIG_SYS_POST_BSPEC4                                  \
+       CONFIG_SYS_POST_BSPEC4                          \
        }
 
-#define CONFIG_POST_BSPEC5    {\
+#define CONFIG_POST_BSPEC5    {                                \
        "SYSMON1 test",                                 \
        "sysmon1",                                      \
        "This test checks GPIO_62_EPX pin indicating power failure.",   \
        &sysmon1_post_test,                             \
        NULL,                                           \
        NULL,                                           \
-       CONFIG_SYS_POST_BSPEC5                                  \
+       CONFIG_SYS_POST_BSPEC5                          \
        }
 
 #define CONFIG_SYS_POST_CACHE_ADDR     0x7fff0000 /* free virtual address      */
 #define CONFIG_ALT_LH_ADDR     (CONFIG_SYS_PERIPHERAL_BASE + GPT0_COMP1)
 #define CONFIG_ALT_LB_ADDR     (CONFIG_SYS_OCM_BASE)
 #define CONFIG_SYS_CONSOLE_IS_IN_ENV /* Otherwise it catches logbuffer as output */
+#endif
 
-/*-----------------------------------------------------------------------
+/*
  * I2C
- *----------------------------------------------------------------------*/
-#define CONFIG_HARD_I2C                1               /* I2C with hardware support    */
-#undef CONFIG_SOFT_I2C                         /* I2C bit-banged               */
-#define CONFIG_SYS_I2C_SPEED           100000          /* I2C speed and slave address  */
-#define CONFIG_SYS_I2C_SLAVE           0x7F
+ */
+#define CONFIG_SYS_I2C
+#define CONFIG_SYS_I2C_PPC4XX
+#define CONFIG_SYS_I2C_PPC4XX_CH0
+#define CONFIG_SYS_I2C_PPC4XX_SPEED_0          100000
+#define CONFIG_SYS_I2C_PPC4XX_SLAVE_0          0x7F
+
+#define CONFIG_SYS_I2C_RTC_ADDR        0x51    /* RTC                          */
+#define CONFIG_SYS_I2C_EEPROM_CPU_ADDR 0x52    /* EEPROM          (CPU Modul)  */
+#define CONFIG_SYS_I2C_EEPROM_MB_ADDR  0x53    /* EEPROM AT24C128 (MainBoard)  */
+#define CONFIG_SYS_I2C_DSPIC_ADDR      0x54    /* dsPIC                        */
+#define CONFIG_SYS_I2C_DSPIC_2_ADDR    0x55    /* dsPIC                        */
+#define CONFIG_SYS_I2C_DSPIC_KEYB_ADDR 0x56    /* dsPIC                        */
+#define CONFIG_SYS_I2C_DSPIC_IO_ADDR   0x57    /* dsPIC                        */
 
-#define CONFIG_SYS_I2C_EEPROM_ADDR     0x53    /* EEPROM AT24C128              */
 #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2       /* Bytes of address             */
 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 6    /* The Atmel AT24C128 has       */
                                        /* 64 byte page write mode using*/
                                        /* last 6 bits of the address   */
 #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS  10   /* and takes up to 10 msec */
+#define CONFIG_SYS_EEPROM_PAGE_WRITE_ENABLE
+
+#define CONFIG_RTC_PCF8563                     /* enable Philips PCF8563 RTC   */
+#define CONFIG_SYS_I2C_RTC_ADDR                0x51    /* Philips PCF8563 RTC address  */
+#define CONFIG_SYS_I2C_KEYBD_ADDR      0x56    /* PIC LWE keyboard             */
+#define CONFIG_SYS_I2C_DSPIC_IO_ADDR   0x57    /* PIC I/O addr               */
 
-#define CONFIG_RTC_PCF8563     1               /* enable Philips PCF8563 RTC   */
-#define CONFIG_SYS_I2C_RTC_ADDR        0x51            /* Philips PCF8563 RTC address  */
-#define CONFIG_SYS_I2C_KEYBD_ADDR      0x56            /* PIC LWE keyboard             */
-#define CONFIG_SYS_I2C_DSPIC_IO_ADDR   0x57            /* PIC I/O addr               */
+#define CONFIG_SYS_POST_I2C_ADDRS      {CONFIG_SYS_I2C_RTC_ADDR,       \
+                                        CONFIG_SYS_I2C_EEPROM_CPU_ADDR,\
+                                        CONFIG_SYS_I2C_EEPROM_MB_ADDR, \
+                                        CONFIG_SYS_I2C_DSPIC_ADDR,     \
+                                        CONFIG_SYS_I2C_DSPIC_2_ADDR,   \
+                                        CONFIG_SYS_I2C_DSPIC_KEYB_ADDR,\
+                                        CONFIG_SYS_I2C_DSPIC_IO_ADDR }
+
+/*
+ * Pass open firmware flat tree
+ */
+#define CONFIG_OF_LIBFDT
+#define CONFIG_OF_BOARD_SETUP
+/* Update size in "reg" property of NOR FLASH device tree nodes */
+#define CONFIG_FDT_FIXUP_NOR_FLASH_SIZE
+
+#define CONFIG_FIT                     /* enable FIT image support     */
 
 #define        CONFIG_POST_KEY_MAGIC   "3C+3E" /* press F3 + F5 keys to force POST */
-#if 0
-#define        CONFIG_AUTOBOOT_KEYED           /* Enable "password" protection */
-#define CONFIG_AUTOBOOT_PROMPT \
-       "\nEnter password - autoboot in %d sec...\n", bootdelay
-#define CONFIG_AUTOBOOT_DELAY_STR      "  "    /* "password"   */
-#endif
 
 #define        CONFIG_PREBOOT          "setenv bootdelay 15"
 
        ""
 #define CONFIG_BOOTCOMMAND     "run flash_self"
 
-#if 0
-#define CONFIG_BOOTDELAY       -1      /* autoboot disabled            */
-#else
 #define CONFIG_BOOTDELAY       5       /* autoboot after 5 seconds     */
-#endif
 
 #define CONFIG_LOADS_ECHO      1       /* echo on for serial download  */
 #define CONFIG_SYS_LOADS_BAUD_CHANGE   1       /* allow baudrate change        */
 
+#define CONFIG_PPC4xx_EMAC
 #define        CONFIG_IBM_EMAC4_V4     1
 #define CONFIG_MII             1       /* MII PHY management           */
 #define CONFIG_PHY_ADDR                3       /* PHY address, See schematics  */
 #define CONFIG_HAS_ETH0
 #define CONFIG_SYS_RX_ETH_BUFFER       32      /* Number of ethernet rx buffers & descriptors */
 
-#define CONFIG_NET_MULTI       1
 #define CONFIG_HAS_ETH1                1       /* add support for "eth1addr"   */
 #define CONFIG_PHY1_ADDR       1
 
 /* Video console */
 #define CONFIG_VIDEO
 #define CONFIG_VIDEO_MB862xx
+#define CONFIG_VIDEO_MB862xx_ACCEL
 #define CONFIG_CFB_CONSOLE
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_CONSOLE_EXTRA_INFO
 #define VIDEO_FB_16BPP_PIXEL_SWAP
+#define VIDEO_FB_16BPP_WORD_SWAP
 
 #define CONFIG_VGA_AS_SINGLE_DEVICE
 #define CONFIG_VIDEO_SW_CURSOR
 #define CONFIG_SPLASH_SCREEN
 
-/* USB */
-#ifdef CONFIG_440EPX
-#define CONFIG_USB_OHCI
+#ifndef CONFIG_LCD4_LWMON5
+/*
+ * USB/EHCI
+ */
+#define CONFIG_USB_EHCI                        /* Enable EHCI USB support      */
+#define CONFIG_USB_EHCI_PPC4XX         /* on PPC4xx platform           */
+#define CONFIG_SYS_PPC4XX_USB_ADDR     0xe0000300
+#define CONFIG_EHCI_MMIO_BIG_ENDIAN
+#define CONFIG_EHCI_DESC_BIG_ENDIAN
+#define CONFIG_EHCI_HCD_INIT_AFTER_RESET /* re-init HCD after CMD_RESET */
 #define CONFIG_USB_STORAGE
 
-/* Comment this out to enable USB 1.1 device */
-#define USB_2_0_DEVICE
-
-#endif /* CONFIG_440EPX */
-
 /* Partitions */
 #define CONFIG_MAC_PARTITION
 #define CONFIG_DOS_PARTITION
 #define CONFIG_ISO_PARTITION
+#endif
 
 /*
  * BOOTP options
 #define CONFIG_CMD_FAT
 #define CONFIG_CMD_I2C
 #define CONFIG_CMD_IRQ
-#define CONFIG_CMD_LOG
 #define CONFIG_CMD_MII
 #define CONFIG_CMD_NET
 #define CONFIG_CMD_NFS
-#define CONFIG_CMD_PCI
 #define CONFIG_CMD_PING
 #define CONFIG_CMD_REGINFO
 #define CONFIG_CMD_SDRAM
 #define CONFIG_CMD_BMP
 #endif
 
+#ifndef CONFIG_LCD4_LWMON5
 #ifdef CONFIG_440EPX
 #define CONFIG_CMD_USB
 #endif
+#endif
 
-/*-----------------------------------------------------------------------
+/*
  * Miscellaneous configurable options
- *----------------------------------------------------------------------*/
+ */
 #define CONFIG_SUPPORT_VFAT
 
 #define CONFIG_SYS_LONGHELP                    /* undef to save memory         */
-#define CONFIG_SYS_PROMPT              "=> "   /* Monitor Command Prompt       */
 
 #define CONFIG_SYS_HUSH_PARSER         1       /* Use the HUSH parser          */
-#ifdef CONFIG_SYS_HUSH_PARSER
-#define        CONFIG_SYS_PROMPT_HUSH_PS2      "> "
-#endif
 
 #if defined(CONFIG_CMD_KGDB)
 #define CONFIG_SYS_CBSIZE              1024    /* Console I/O Buffer Size      */
 #define CONFIG_SYS_LOAD_ADDR           0x100000  /* default load address       */
 #define CONFIG_SYS_EXTBDINFO           1       /* To use extended board_into (bd_t) */
 
-#define CONFIG_SYS_HZ                  1000    /* decrementer freq: 1 ms ticks */
-
 #define CONFIG_CMDLINE_EDITING 1       /* add command line history     */
 #define CONFIG_LOOPW            1       /* enable loopw command         */
 #define CONFIG_MX_CYCLIC        1       /* enable mdc/mwc commands      */
 #define CONFIG_VERSION_VARIABLE 1      /* include version env variable */
 
-/*-----------------------------------------------------------------------
- * PCI stuff
- *----------------------------------------------------------------------*/
-/* General PCI */
-#define CONFIG_PCI                     /* include pci support          */
-#undef CONFIG_PCI_PNP                  /* do (not) pci plug-and-play   */
-#define CONFIG_PCI_SCAN_SHOW           /* show pci devices on startup  */
-#define CONFIG_SYS_PCI_TARGBASE        0x80000000 /* PCIaddr mapped to CONFIG_SYS_PCI_MEMBASE*/
-
-/* Board-specific PCI */
-#define CONFIG_SYS_PCI_TARGET_INIT
-#define CONFIG_SYS_PCI_MASTER_INIT
-
-#define CONFIG_SYS_PCI_SUBSYS_VENDORID 0x10e8  /* AMCC                         */
-#define CONFIG_SYS_PCI_SUBSYS_ID       0xcafe  /* Whatever                     */
+#define CONFIG_SYS_CONSOLE_INFO_QUIET  /* don't print console @ startup*/
 
+#ifndef CONFIG_LCD4_LWMON5
+#ifndef DEBUG
 #define CONFIG_HW_WATCHDOG     1       /* Use external HW-Watchdog     */
+#endif
 #define CONFIG_WD_PERIOD       40000   /* in usec */
 #define CONFIG_WD_MAX_RATE     66600   /* in ticks */
+#endif
 
 /*
  * 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.
+ * have to be in the first 16 MB of memory, since this is
+ * the maximum mapped by the 40x Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ           (8 << 20)       /* Initial Memory map for Linux */
+#define CONFIG_SYS_BOOTMAPSZ           (16 << 20) /* Initial Memory map for Linux */
+#define CONFIG_SYS_BOOTM_LEN           (16 << 20) /* Increase max gunzip size */
 
-/*-----------------------------------------------------------------------
+/*
  * External Bus Controller (EBC) Setup
- *----------------------------------------------------------------------*/
+ */
 #define CONFIG_SYS_FLASH               CONFIG_SYS_FLASH_BASE
 
 /* Memory Bank 0 (NOR-FLASH) initialization                                    */
-#define CONFIG_SYS_EBC_PB0AP           0x03050200
+#define CONFIG_SYS_EBC_PB0AP           0x03000280
 #define CONFIG_SYS_EBC_PB0CR           (CONFIG_SYS_FLASH | 0xfc000)
 
 /* Memory Bank 1 (Lime) initialization                                         */
 #define CONFIG_SYS_EBC_PB1AP           0x01004380
-#define CONFIG_SYS_EBC_PB1CR           (CONFIG_SYS_LIME_BASE_0 | 0xdc000)
+#define CONFIG_SYS_EBC_PB1CR           (CONFIG_SYS_LIME_BASE_0 | 0xbc000)
 
 /* Memory Bank 2 (FPGA) initialization                                         */
 #define CONFIG_SYS_EBC_PB2AP           0x01004400
 
 #define CONFIG_SYS_EBC_CFG             0xb8400000
 
-/*-----------------------------------------------------------------------
+/*
  * Graphics (Fujitsu Lime)
- *----------------------------------------------------------------------*/
+ */
 /* SDRAM Clock frequency adjustment register */
 #define CONFIG_SYS_LIME_SDRAM_CLOCK    0xC1FC0038
+#if 1 /* 133MHz is not tested enough, use 100MHz for now */
 /* Lime Clock frequency is to set 100MHz */
 #define CONFIG_SYS_LIME_CLOCK_100MHZ   0x00000
-#if 0
+#else
 /* Lime Clock frequency for 133MHz */
 #define CONFIG_SYS_LIME_CLOCK_133MHZ   0x10000
 #endif
 
 /* SDRAM Parameter register */
 #define CONFIG_SYS_LIME_MMR            0xC1FCFFFC
-/* SDRAM parameter value; was 0x414FB7F2, caused several vertical bars
-   and pixel flare on display when 133MHz was configured. According to
-   SDRAM chip datasheet CAS Latency is 3 for 133MHz and -75 Speed Grade */
+/*
+ * SDRAM parameter value; was 0x414FB7F2, caused several vertical bars
+ * and pixel flare on display when 133MHz was configured. According to
+ * SDRAM chip datasheet CAS Latency is 3 for 133MHz and -75 Speed
+ * Grade
+ */
 #ifdef CONFIG_SYS_LIME_CLOCK_133MHZ
-#define CONFIG_SYS_LIME_MMR_VALUE      0x414FB7F3
+#define CONFIG_SYS_MB862xx_MMR 0x414FB7F3
+#define CONFIG_SYS_MB862xx_CCF CONFIG_SYS_LIME_CLOCK_133MHZ
 #else
-#define CONFIG_SYS_LIME_MMR_VALUE      0x414FB7F2
+#define CONFIG_SYS_MB862xx_MMR 0x414FB7F2
+#define CONFIG_SYS_MB862xx_CCF CONFIG_SYS_LIME_CLOCK_100MHZ
 #endif
 
-/*-----------------------------------------------------------------------
+/*
  * GPIO Setup
- *----------------------------------------------------------------------*/
+ */
 #define CONFIG_SYS_GPIO_PHY1_RST       12
 #define CONFIG_SYS_GPIO_FLASH_WP       14
 #define CONFIG_SYS_GPIO_PHY0_RST       22
+#define CONFIG_SYS_GPIO_PERM_VOLT_FEED 49
 #define CONFIG_SYS_GPIO_DSPIC_READY    51
+#define CONFIG_SYS_GPIO_CAN_ENABLE     53
+#define CONFIG_SYS_GPIO_LSB_ENABLE     54
 #define CONFIG_SYS_GPIO_EEPROM_EXT_WP  55
 #define CONFIG_SYS_GPIO_HIGHSIDE       56
 #define CONFIG_SYS_GPIO_EEPROM_INT_WP  57
 #define CONFIG_SYS_GPIO_SYSMON_STATUS  62
 #define CONFIG_SYS_GPIO_WATCHDOG       63
 
-/*-----------------------------------------------------------------------
+/* On LCD4, GPIO49 has to be configured to 0 instead of 1 */
+#ifdef CONFIG_LCD4_LWMON5
+#define GPIO49_VAL     0
+#else
+#define GPIO49_VAL     1
+#endif
+
+/*
  * PPC440 GPIO Configuration
  */
 #define CONFIG_SYS_4xx_GPIO_TABLE { /*   Out             GPIO  Alternate1      Alternate2      Alternate3 */ \
 {GPIO1_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO46 UIC_IRQ(7)    DMA_REQ(0)      */      \
 {GPIO1_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO47 UIC_IRQ(8)    DMA_ACK(0)      */      \
 {GPIO1_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO48 UIC_IRQ(9)    DMA_EOT/TC(0)   */      \
-{GPIO1_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_1}, /* GPIO49  Unselect via TraceSelect Bit */      \
+{GPIO1_BASE, GPIO_OUT, GPIO_SEL , GPIO49_VAL}, /* GPIO49  Unselect via TraceSelect Bit */      \
 {GPIO1_BASE, GPIO_IN,  GPIO_SEL , GPIO_OUT_0}, /* GPIO50  Unselect via TraceSelect Bit */      \
 {GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO51  Unselect via TraceSelect Bit */      \
 {GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO52  Unselect via TraceSelect Bit */      \
 }                                                                                      \
 }
 
-/*
- * Internal Definitions
- *
- * Boot Flags
- */
-#define BOOTFLAG_COLD  0x01            /* Normal Power-On: Boot from FLASH     */
-#define BOOTFLAG_WARM  0x02            /* Software reboot                      */
-
 #if defined(CONFIG_CMD_KGDB)
 #define CONFIG_KGDB_BAUDRATE   230400  /* speed to run kgdb serial port */
-#define CONFIG_KGDB_SER_INDEX  2           /* which serial port to use */
 #endif
+
+/*
+ * SPL related defines
+ */
+#ifdef CONFIG_LCD4_LWMON5
+#define CONFIG_SPL_FRAMEWORK
+#define CONFIG_SPL_BOARD_INIT
+#define CONFIG_SPL_NOR_SUPPORT
+#define CONFIG_SPL_TEXT_BASE           0xffff0000 /* last 64 KiB for SPL */
+#define CONFIG_SYS_SPL_MAX_LEN         (64 << 10)
+#define CONFIG_UBOOT_PAD_TO            458752  /* decimal for 'dd' */
+#define        CONFIG_SPL_START_S_PATH "arch/powerpc/cpu/ppc4xx"
+#define CONFIG_SPL_LDSCRIPT    "arch/powerpc/cpu/ppc4xx/u-boot-spl.lds"
+#define CONFIG_SPL_LIBCOMMON_SUPPORT   /* image.c */
+#define CONFIG_SPL_LIBGENERIC_SUPPORT  /* string.c */
+#define CONFIG_SPL_SERIAL_SUPPORT
+
+/* Place BSS for SPL near end of SDRAM */
+#define CONFIG_SPL_BSS_START_ADDR      ((256 - 1) << 20)
+#define CONFIG_SPL_BSS_MAX_SIZE                (64 << 10)
+
+#define CONFIG_SPL_OS_BOOT
+/* Place patched DT blob (fdt) at this address */
+#define CONFIG_SYS_SPL_ARGS_ADDR       0x01800000
+
+#define CONFIG_SPL_TARGET              "u-boot-img-spl-at-end.bin"
+
+/* Settings for real U-Boot to be loaded from NOR flash */
+#define CONFIG_SYS_UBOOT_BASE          (-CONFIG_SYS_MONITOR_LEN)
+#define CONFIG_SYS_UBOOT_START         0x01002100
+
+#define CONFIG_SYS_OS_BASE             0xf8000000
+#define CONFIG_SYS_FDT_BASE            0xf87c0000
+#endif
+
 #endif /* __CONFIG_H */