]> git.sur5r.net Git - u-boot/commitdiff
Merge branch 'master' of git://git.denx.de/u-boot-arm
authorTom Rini <trini@ti.com>
Mon, 5 Nov 2012 14:42:00 +0000 (07:42 -0700)
committerTom Rini <trini@ti.com>
Mon, 5 Nov 2012 14:42:00 +0000 (07:42 -0700)
1  2 
MAINTAINERS
Makefile
README
board/ti/am335x/board.c
boards.cfg
drivers/mmc/fsl_esdhc.c
drivers/serial/serial_ns16550.c
include/configs/am335x_evm.h

diff --combined MAINTAINERS
index 2daee7d2edb21a473de344c07426d22feda6c996,12fa853cac9f948f4c72903ff016953a8a62cfea..c43057484c2fc01c1e830bb0bff0a3060edf50bc
@@@ -104,6 -104,8 +104,6 @@@ Wolfgang Denk <wd@denx.de
  
        ARIA            MPC5121e
  
 -      AMX860          MPC860
 -      ETX094          MPC850
        FPS850L         MPC850
        FPS860L         MPC860
        ICU862          MPC862
        IVMS8           MPC860
        IVMS8_128       MPC860
        IVMS8_256       MPC860
 -      LANTEC          MPC850
        LWMON           MPC823
        R360MPI         MPC823
        RRvision        MPC823
        TQM855L         MPC855
        TQM860L         MPC860
        TQM860L_FEC     MPC860
 -      c2mon           MPC855
        hermes          MPC860
        lwmon           MPC823
  
@@@ -223,6 -227,7 +223,6 @@@ Wolfgang Grandegger <wg@denx.de
  
        PN62            MPC8240
        IPHASE4539      MPC8260
 -      SCM             MPC8260
  
  Anatolij Gustschin <agust@denx.de>
  
@@@ -538,6 -543,7 +538,6 @@@ Unknown / orphaned boards
        FADS850SAR      MPC8xx
        FADS860T        MPC8xx
        GENIETV         MPC8xx
 -      IAD210          MPC8xx
        MBX             MPC8xx
        MBX860T         MPC8xx
        NX823           MPC8xx
@@@ -565,6 -571,10 +565,10 @@@ Albert ARIBAUD <albert.u.boot@aribaud.n
  
        edminiv2        ARM926EJS (Orion5x SoC)
  
+ Raphael Assenat <raph@8d.com>
+       eco5pk          ARM ARMV7 (AM35x SoC)
  Stefano Babic <sbabic@denx.de>
  
        ea20            davinci
@@@ -896,6 -906,10 +900,10 @@@ Michal Simek <monstr@monstr.eu
  
        zynq            ARM ARMV7 (Zynq SoC)
  
+ Lucas Stach <dev@lynxeye.de>
+       colibri_t20_iris        Tegra20 (ARM7 & A9 Dual Core)
  Nick Thompson <nick.thompson@gefanuc.com>
  
        da830evm        ARM926EJS (DA830/OMAP-L137)
@@@ -1005,6 -1019,10 +1013,10 @@@ Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj
  
        armadillo-800eva        R8A7740 (RMOBILE SoC)
  
+ Pali Rohár <pali.rohar@gmail.com>
+       nokia_rx51      ARM ARMV7 (OMAP34xx SoC)
  -------------------------------------------------------------------------
  
  Unknown / orphaned boards:
diff --combined Makefile
index e144eb13caa6da6fc46a3b8823a442b8d045d7b5,216ad02e05af532f6951ed5f75ee9f3a41f62bd0..9dc89f938c56954dda780ed675160501a23fa6c0
+++ b/Makefile
  # MA 02111-1307 USA
  #
  
 -VERSION = 2012
 -PATCHLEVEL = 10
 +VERSION = 2013
 +PATCHLEVEL = 01
  SUBLEVEL =
 -EXTRAVERSION =
 +EXTRAVERSION = -rc1
  ifneq "$(SUBLEVEL)" ""
  U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
  else
@@@ -260,8 -260,7 +260,8 @@@ LIBS-y += drivers/net/npe/libnpe.
  endif
  LIBS-$(CONFIG_OF_EMBED) += dts/libdts.o
  LIBS-y += arch/$(ARCH)/lib/lib$(ARCH).o
 -LIBS-y += fs/cbfs/libcbfs.o \
 +LIBS-y += fs/libfs.o \
 +      fs/cbfs/libcbfs.o \
        fs/cramfs/libcramfs.o \
        fs/ext4/libext4fs.o \
        fs/fat/libfat.o \
@@@ -516,17 -515,18 +516,18 @@@ $(obj)u-boot.spr:       $(obj)u-boot.img $(ob
  
  ifeq ($(SOC),tegra20)
  ifeq ($(CONFIG_OF_SEPARATE),y)
- $(obj)u-boot-dtb-tegra.bin:   $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin $(obj)u-boot.dtb
-               $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(CONFIG_SYS_TEXT_BASE) -O binary $(obj)spl/u-boot-spl $(obj)spl/u-boot-spl-pad.bin
-               cat $(obj)spl/u-boot-spl-pad.bin $(obj)u-boot.bin $(obj)u-boot.dtb > $@
-               rm $(obj)spl/u-boot-spl-pad.bin
+ nodtb=dtb
+ dtbfile=$(obj)u-boot.dtb
  else
- $(obj)u-boot-nodtb-tegra.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin
+ nodtb=nodtb
+ dtbfile=
+ endif
+ $(obj)u-boot-$(nodtb)-tegra.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin $(dtbfile)
                $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(CONFIG_SYS_TEXT_BASE) -O binary $(obj)spl/u-boot-spl $(obj)spl/u-boot-spl-pad.bin
-               cat $(obj)spl/u-boot-spl-pad.bin $(obj)u-boot.bin > $@
+               cat $(obj)spl/u-boot-spl-pad.bin $(obj)u-boot.bin $(dtbfile) > $@
                rm $(obj)spl/u-boot-spl-pad.bin
  endif
- endif
  
  ifeq ($(CONFIG_SANDBOX),y)
  GEN_UBOOT = \
diff --combined README
index 8141068e4f71d7a41385b22b28219fbdc848b73c,2572add57303c5596d87d740f63edd4a494c48e9..afdf591c623f6cfa5c507d6918e738dea12b2c79
--- 1/README
--- 2/README
+++ b/README
@@@ -661,6 -661,10 +661,10 @@@ The following options need to be config
                                                additional board info beside
                                                the logo
  
+               When CONFIG_CFB_CONSOLE_ANSI is defined, console will support
+               a limited number of ANSI escape sequences (cursor control,
+               erase functions and limited graphics rendition control).
                When CONFIG_CFB_CONSOLE is defined, video console is
                default i/o. Serial console can be forced with
                environment 'console=serial'.
                CONFIG_CMD_EEPROM       * EEPROM read/write support
                CONFIG_CMD_ELF          * bootelf, bootvx
                CONFIG_CMD_EXPORTENV    * export the environment
 +              CONFIG_CMD_EXT2         * ext2 command support
 +              CONFIG_CMD_EXT4         * ext4 command support
                CONFIG_CMD_SAVEENV        saveenv
                CONFIG_CMD_FDC          * Floppy Disk Support
 -              CONFIG_CMD_FAT          * FAT partition support
 +              CONFIG_CMD_FAT          * FAT command support
                CONFIG_CMD_FDOS         * Dos diskette Support
                CONFIG_CMD_FLASH          flinfo, erase, protect
                CONFIG_CMD_FPGA           FPGA device initialization support
                devices.
                CONFIG_SYS_SCSI_SYM53C8XX_CCF to fix clock timing (80Mhz)
  
 +                The environment variable 'scsidevs' is set to the number of
 +                SCSI devices found during the last scan.
 +
  - NETWORK Support (PCI):
                CONFIG_E1000
                Support for Intel 8254x/8257x gigabit chips.
@@@ -2187,8 -2186,8 +2191,8 @@@ CBFS (Coreboot Filesystem) suppor
                following board configurations are known to be
                "pRAM-clean":
  
 -                      ETX094, IVMS8, IVML24, SPD8xx, TQM8xxL,
 -                      HERMES, IP860, RPXlite, LWMON, LANTEC,
 +                      IVMS8, IVML24, SPD8xx, TQM8xxL,
 +                      HERMES, IP860, RPXlite, LWMON,
                        FLAGADM, TQM8260
  
  - Error Recovery:
                - CONFIG_SYS_VENDOR
                - CONFIG_SYS_SOC
  
 +              CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
 +
 +              Define this in order to add variables describing certain
 +              run-time determined information about the hardware to the
 +              environment.  These will be named board_name, board_rev.
 +
  - DataFlash Support:
                CONFIG_HAS_DATAFLASH
  
diff --combined board/ti/am335x/board.c
index 1f0b1a72d1de1905129917c3bba6ae11a8e0b95c,e5ad76e9a05b6a379ce7543e34e879476438ac88..b56a801a4d040965e0aa682dc314dcd2a87e2a08
@@@ -68,6 -68,11 +68,11 @@@ static inline int board_is_evm_sk(void
        return !strncmp("A335X_SK", header.name, HDR_NAME_LEN);
  }
  
+ static inline int board_is_idk(void)
+ {
+       return !strncmp(header.config, "SKU#02", 6);
+ }
  /*
   * Read header information from EEPROM into global structure.
   */
@@@ -242,7 -247,24 +247,24 @@@ void s_init(void
        /* UART softreset */
        u32 regVal;
  
+ #ifdef CONFIG_SERIAL1
        enable_uart0_pin_mux();
+ #endif /* CONFIG_SERIAL1 */
+ #ifdef CONFIG_SERIAL2
+       enable_uart1_pin_mux();
+ #endif /* CONFIG_SERIAL2 */
+ #ifdef CONFIG_SERIAL3
+       enable_uart2_pin_mux();
+ #endif /* CONFIG_SERIAL3 */
+ #ifdef CONFIG_SERIAL4
+       enable_uart3_pin_mux();
+ #endif /* CONFIG_SERIAL4 */
+ #ifdef CONFIG_SERIAL5
+       enable_uart4_pin_mux();
+ #endif /* CONFIG_SERIAL5 */
+ #ifdef CONFIG_SERIAL6
+       enable_uart5_pin_mux();
+ #endif /* CONFIG_SERIAL6 */
  
        regVal = readl(&uart_base->uartsyscfg);
        regVal |= UART_RESET;
@@@ -299,26 -321,6 +321,26 @@@ int board_init(void
        return 0;
  }
  
 +#ifdef CONFIG_BOARD_LATE_INIT
 +int board_late_init(void)
 +{
 +#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
 +      char safe_string[HDR_NAME_LEN + 1];
 +
 +      /* Now set variables based on the header. */
 +      strncpy(safe_string, (char *)header.name, sizeof(header.name));
 +      safe_string[sizeof(header.name)] = 0;
 +      setenv("board_name", safe_string);
 +
 +      strncpy(safe_string, (char *)header.version, sizeof(header.version));
 +      safe_string[sizeof(header.version)] = 0;
 +      setenv("board_rev", safe_string);
 +#endif
 +
 +      return 0;
 +}
 +#endif
 +
  #ifdef CONFIG_DRIVER_TI_CPSW
  static void cpsw_control(int enabled)
  {
@@@ -381,7 -383,7 +403,7 @@@ int board_eth_init(bd_t *bis
                        return -1;
        }
  
-       if (board_is_bone() || board_is_bone_lt()) {
+       if (board_is_bone() || board_is_bone_lt() || board_is_idk()) {
                writel(MII_MODE_ENABLE, &cdev->miisel);
                cpsw_slaves[0].phy_if = cpsw_slaves[1].phy_if =
                                PHY_INTERFACE_MODE_MII;
diff --combined boards.cfg
index 0ecd1b8ea139aa4d717d70cf3959dc4286ed7d91,25c53d40d26aedd160b10dc4e6f8f8f269fdeb82..4dd989383c28af863d2ebcb876fc13553931c6c4
@@@ -225,7 -225,12 +225,12 @@@ versatileqemu                ar
  integratorap_cm946es         arm         arm946es    integrator          armltd         -               integratorap:CM946ES
  integratorcp_cm946es         arm         arm946es    integrator          armltd         -               integratorcp:CM946ES
  ca9x4_ct_vxp                 arm         armv7       vexpress            armltd
- am335x_evm                   arm         armv7       am335x              ti             am33xx
+ am335x_evm                   arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL1,CONS_INDEX=1
+ am335x_evm_uart1             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL2,CONS_INDEX=2
+ am335x_evm_uart2             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL3,CONS_INDEX=3
+ am335x_evm_uart3             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL4,CONS_INDEX=4
+ am335x_evm_uart4             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL5,CONS_INDEX=5
+ am335x_evm_uart5             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL6,CONS_INDEX=6
  highbank                     arm         armv7       highbank            -              highbank
  mx51_efikamx                 arm         armv7       mx51_efikamx        genesi         mx5           mx51_efikamx:MACH_TYPE=MACH_TYPE_MX51_EFIKAMX,IMX_CONFIG=board/genesi/mx51_efikamx/imximage_mx.cfg
  mx51_efikasb                 arm         armv7       mx51_efikamx        genesi         mx5           mx51_efikamx:MACH_TYPE=MACH_TYPE_MX51_EFIKASB,IMX_CONFIG=board/genesi/mx51_efikamx/imximage_sb.cfg
@@@ -240,6 -245,7 +245,7 @@@ mx6qarm2                     ar
  mx6qsabreauto                arm         armv7       mx6qsabreauto       freescale      mx6           mx6qsabreauto:IMX_CONFIG=board/freescale/mx6qsabreauto/imximage.cfg
  mx6qsabrelite                arm         armv7       mx6qsabrelite       freescale      mx6           mx6qsabrelite:IMX_CONFIG=board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg
  mx6qsabresd                  arm         armv7       mx6qsabresd         freescale      mx6           mx6qsabresd:IMX_CONFIG=board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg
+ eco5pk                       arm         armv7       eco5pk              8dtech         omap3
  cm_t35                       arm         armv7       cm_t35              -              omap3
  omap3_overo                  arm         armv7       overo               -              omap3
  omap3_pandora                arm         armv7       pandora             -              omap3
@@@ -264,6 -270,7 +270,7 @@@ devkit8000                   ar
  mcx                          arm         armv7       mcx                 htkw           omap3
  tricorder                    arm         armv7       tricorder           corscience     omap3
  twister                      arm         armv7       twister             technexion     omap3
+ nokia_rx51                   arm         armv7       rx51                nokia          omap3
  omap4_panda                  arm         armv7       panda               ti             omap4
  omap4_sdp4430                arm         armv7       sdp4430             ti             omap4
  omap5_evm                    arm         armv7       omap5_evm           ti           omap5
@@@ -278,6 -285,7 +285,7 @@@ harmony                      ar
  seaboard                     arm         armv7:arm720t seaboard          nvidia         tegra20
  ventana                      arm         armv7:arm720t ventana           nvidia         tegra20
  whistler                     arm         armv7:arm720t whistler          nvidia         tegra20
+ colibri_t20_iris             arm         armv7:arm720t colibri_t20_iris  toradex        tegra20
  u8500_href                   arm         armv7       u8500               st-ericsson    u8500
  snowball                     arm         armv7       snowball               st-ericsson    u8500
  kzm9g                        arm         armv7       kzm9g               kmc            rmobile
@@@ -625,6 -633,7 +633,6 @@@ PQ2FADS-ZU_lowboot           powerp
  VoVPN-GW_66MHz               powerpc     mpc8260     vovpn-gw            funkwerk       -           VoVPN-GW:CLKIN_66MHz
  mgcoge                       powerpc     mpc8260     km82xx              keymile        -           km82xx:MGCOGE
  mgcoge3ne                    powerpc     mpc8260     km82xx              keymile        -           km82xx:MGCOGE3NE
 -SCM                          powerpc     mpc8260     -                   siemens
  TQM8255_AA                   powerpc     mpc8260     tqm8260             tqc            -           TQM8260:MPC8255,300MHz
  TQM8260_AA                   powerpc     mpc8260     tqm8260             tqc            -           TQM8260:MPC8260,200MHz
  TQM8260_AB                   powerpc     mpc8260     tqm8260             tqc            -           TQM8260:MPC8260,200MHz,L2_CACHE,BUSMODE_60x
@@@ -860,8 -869,11 +868,8 @@@ Adder87x                     powerp
  AdderII                      powerpc     mpc8xx      adder               -              -           Adder:MPC852T
  AdderUSB                     powerpc     mpc8xx      adder               -              -           Adder
  ADS860                       powerpc     mpc8xx      fads
 -c2mon                        powerpc     mpc8xx
  cogent_mpc8xx                powerpc     mpc8xx      cogent
 -EP88x                        powerpc     mpc8xx      ep88x
  ESTEEM192E                   powerpc     mpc8xx      esteem192e
 -ETX094                       powerpc     mpc8xx      etx094
  FADS823                      powerpc     mpc8xx      fads
  FADS850SAR                   powerpc     mpc8xx      fads
  FADS860T                     powerpc     mpc8xx      fads
@@@ -879,6 -891,7 +887,6 @@@ IVML24_256                   powerp
  IVMS8                        powerpc     mpc8xx      ivm                 -              -           IVMS8:IVMS8_16M
  IVMS8_128                    powerpc     mpc8xx      ivm                 -              -           IVMS8:IVMS8_32M
  IVMS8_256                    powerpc     mpc8xx      ivm                 -              -           IVMS8:IVMS8_64M
 -LANTEC                       powerpc     mpc8xx      lantec
  lwmon                        powerpc     mpc8xx
  MBX                          powerpc     mpc8xx      mbx8xx
  MBX860T                      powerpc     mpc8xx      mbx8xx
@@@ -925,6 -938,7 +933,6 @@@ KUP4K                        powerp
  KUP4X                        powerpc     mpc8xx      kup4x               kup
  ELPT860                      powerpc     mpc8xx      elpt860             LEOX
  uc100                        powerpc     mpc8xx      -                   manroland
 -IAD210                       powerpc     mpc8xx      -                   siemens
  QS823                        powerpc     mpc8xx      qs850               snmc
  QS850                        powerpc     mpc8xx      qs850               snmc
  QS860T                       powerpc     mpc8xx      qs860t              snmc
@@@ -950,6 -964,7 +958,6 @@@ TQM885D                      powerp
  TTTech                       powerpc     mpc8xx      tqm8xx              tqc            -           TQM823L:LCD,SHARP_LQ104V7DS01
  virtlab2                     powerpc     mpc8xx      tqm8xx              tqc
  wtk                          powerpc     mpc8xx      tqm8xx              tqc            -           TQM823L:LCD,SHARP_LQ065T9DR51U
 -AMX860                       powerpc     mpc8xx      amx860              westel
  csb272                       powerpc     ppc4xx
  csb472                       powerpc     ppc4xx
  G2000                        powerpc     ppc4xx      g2000
diff --combined drivers/mmc/fsl_esdhc.c
index 301dd8c7b9151a9c74097b976a4fe6ea0e97dd7c,aa6a9f13ea3621617a27c35f7aba6454d9828013..e93e38ac4346fdebe203621aa5eac95e9355e660
@@@ -68,7 -68,7 +68,7 @@@ struct fsl_esdhc 
  };
  
  /* Return the XFERTYP flags for a given command and data packet */
 -uint esdhc_xfertyp(struct mmc_cmd *cmd, struct mmc_data *data)
 +static uint esdhc_xfertyp(struct mmc_cmd *cmd, struct mmc_data *data)
  {
        uint xfertyp = 0;
  
@@@ -412,10 -412,10 +412,10 @@@ esdhc_send_cmd(struct mmc *mmc, struct 
  
  static void set_sysctl(struct mmc *mmc, uint clock)
  {
-       int sdhc_clk = gd->sdhc_clk;
        int div, pre_div;
        struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
        volatile struct fsl_esdhc *regs = (struct fsl_esdhc *)cfg->esdhc_base;
+       int sdhc_clk = cfg->sdhc_clk;
        uint clk;
  
        if (clock < mmc->f_min)
@@@ -598,6 -598,7 +598,7 @@@ int fsl_esdhc_mmc_init(bd_t *bis
        cfg = malloc(sizeof(struct fsl_esdhc_cfg));
        memset(cfg, 0, sizeof(struct fsl_esdhc_cfg));
        cfg->esdhc_base = CONFIG_SYS_FSL_ESDHC_ADDR;
+       cfg->sdhc_clk = gd->sdhc_clk;
        return fsl_esdhc_initialize(bis, cfg);
  }
  
index bf280baab21ceb8b5878d77b4d24ba3dfd410760,5fb38410a8420f4d07740eba25c1b165aea5ebf9..c1c0134bcb3fdd8ec7e6c8a93e9f463291b5b9ca
@@@ -34,7 -34,7 +34,7 @@@
  DECLARE_GLOBAL_DATA_PTR;
  
  #if !defined(CONFIG_CONS_INDEX)
- #elif (CONFIG_CONS_INDEX < 1) || (CONFIG_CONS_INDEX > 4)
+ #elif (CONFIG_CONS_INDEX < 1) || (CONFIG_CONS_INDEX > 6)
  #error        "Invalid console index value."
  #endif
  
  #error        "Console port 3 defined but not configured."
  #elif CONFIG_CONS_INDEX == 4 && !defined(CONFIG_SYS_NS16550_COM4)
  #error        "Console port 4 defined but not configured."
+ #elif CONFIG_CONS_INDEX == 5 && !defined(CONFIG_SYS_NS16550_COM5)
+ #error        "Console port 5 defined but not configured."
+ #elif CONFIG_CONS_INDEX == 6 && !defined(CONFIG_SYS_NS16550_COM6)
+ #error        "Console port 6 defined but not configured."
  #endif
  
  /* Note: The port number specified in the functions is 1 based.
   *     the array is 0 based.
   */
- static NS16550_t serial_ports[4] = {
+ static NS16550_t serial_ports[6] = {
  #ifdef CONFIG_SYS_NS16550_COM1
        (NS16550_t)CONFIG_SYS_NS16550_COM1,
  #else
        NULL,
  #endif
  #ifdef CONFIG_SYS_NS16550_COM4
-       (NS16550_t)CONFIG_SYS_NS16550_COM4
+       (NS16550_t)CONFIG_SYS_NS16550_COM4,
+ #else
+       NULL,
+ #endif
+ #ifdef CONFIG_SYS_NS16550_COM5
+       (NS16550_t)CONFIG_SYS_NS16550_COM5,
+ #else
+       NULL,
+ #endif
+ #ifdef CONFIG_SYS_NS16550_COM6
+       (NS16550_t)CONFIG_SYS_NS16550_COM6
  #else
        NULL
  #endif
  
  /* Multi serial device functions */
  #define DECLARE_ESERIAL_FUNCTIONS(port) \
 -    int  eserial##port##_init (void) {\
 -      int clock_divisor; \
 -      clock_divisor = calc_divisor(serial_ports[port-1]); \
 -      NS16550_init(serial_ports[port-1], clock_divisor); \
 -      return(0);}\
 -    void eserial##port##_setbrg (void) {\
 -      serial_setbrg_dev(port);}\
 -    int  eserial##port##_getc (void) {\
 -      return serial_getc_dev(port);}\
 -    int  eserial##port##_tstc (void) {\
 -      return serial_tstc_dev(port);}\
 -    void eserial##port##_putc (const char c) {\
 -      serial_putc_dev(port, c);}\
 -    void eserial##port##_puts (const char *s) {\
 -      serial_puts_dev(port, s);}
 +      static int  eserial##port##_init(void) \
 +      { \
 +              int clock_divisor; \
 +              clock_divisor = calc_divisor(serial_ports[port-1]); \
 +              NS16550_init(serial_ports[port-1], clock_divisor); \
 +              return 0 ; \
 +      } \
 +      static void eserial##port##_setbrg(void) \
 +      { \
 +              serial_setbrg_dev(port); \
 +      } \
 +      static int  eserial##port##_getc(void) \
 +      { \
 +              return serial_getc_dev(port); \
 +      } \
 +      static int  eserial##port##_tstc(void) \
 +      { \
 +              return serial_tstc_dev(port); \
 +      } \
 +      static void eserial##port##_putc(const char c) \
 +      { \
 +              serial_putc_dev(port, c); \
 +      } \
 +      static void eserial##port##_puts(const char *s) \
 +      { \
 +              serial_puts_dev(port, s); \
 +      }
  
  /* Serial device descriptor */
  #define INIT_ESERIAL_STRUCTURE(port, __name) {        \
@@@ -243,6 -245,12 +257,12 @@@ struct serial_device eserial3_device 
  DECLARE_ESERIAL_FUNCTIONS(4);
  struct serial_device eserial4_device =
        INIT_ESERIAL_STRUCTURE(4, "eserial3");
+ DECLARE_ESERIAL_FUNCTIONS(5);
+ struct serial_device eserial5_device =
+       INIT_ESERIAL_STRUCTURE(5, "eserial4");
+ DECLARE_ESERIAL_FUNCTIONS(6);
+ struct serial_device eserial6_device =
+       INIT_ESERIAL_STRUCTURE(6, "eserial5");
  
  __weak struct serial_device *default_serial_console(void)
  {
        return &eserial3_device;
  #elif CONFIG_CONS_INDEX == 4
        return &eserial4_device;
+ #elif CONFIG_CONS_INDEX == 5
+       return &eserial5_device;
+ #elif CONFIG_CONS_INDEX == 6
+       return &eserial6_device;
  #else
  #error "Bad CONFIG_CONS_INDEX."
  #endif
@@@ -273,4 -285,10 +297,10 @@@ void ns16550_serial_initialize(void
  #if defined(CONFIG_SYS_NS16550_COM4)
        serial_register(&eserial4_device);
  #endif
+ #if defined(CONFIG_SYS_NS16550_COM5)
+       serial_register(&eserial5_device);
+ #endif
+ #if defined(CONFIG_SYS_NS16550_COM6)
+       serial_register(&eserial6_device);
+ #endif
  }
index 6e9aada53ab78b01b188b46036054b01abd61be7,cdb6697890c935ce91364a552ffc53044a4810d2..b6e48f8a63e0b01818884e31334554ed1692096a
@@@ -29,7 -29,6 +29,7 @@@
  #define CONFIG_SYS_LONGHELP           /* undef to save memory */
  #define CONFIG_SYS_HUSH_PARSER                /* use "hush" command parser */
  #define CONFIG_SYS_PROMPT             "U-Boot# "
 +#define CONFIG_BOARD_LATE_INIT
  #define CONFIG_SYS_NO_FLASH
  #define MACH_TYPE_TIAM335EVM          3589    /* Until the next sync */
  #define CONFIG_MACH_TYPE              MACH_TYPE_TIAM335EVM
  
  /* set to negative value for no autoboot */
  #define CONFIG_BOOTDELAY              1
 +#define CONFIG_ENV_VARS_UBOOT_CONFIG
 +#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
  #define CONFIG_EXTRA_ENV_SETTINGS \
        "loadaddr=0x80200000\0" \
        "fdtaddr=0x80F80000\0" \
        "rdaddr=0x81000000\0" \
        "bootfile=/boot/uImage\0" \
 +      "fdtfile=\0" \
        "console=ttyO0,115200n8\0" \
        "optargs=\0" \
        "mmcdev=0\0" \
        "ramboot=echo Booting from ramdisk ...; " \
                "run ramargs; " \
                "bootm ${loadaddr}\0" \
 +      "findfdt="\
 +              "if test $board_name = A335BONE; then " \
 +                      "setenv fdtfile am335x-bone.dtb; fi; " \
 +              "if test $board_name = A33515BB; then " \
 +                      "setenv fdtfile am335x-evm.dtb; fi; " \
 +              "if test $board_name = A335X_SK; then " \
 +                      "setenv fdtfile am335x-evmsk.dtb; fi\0" \
  
  #define CONFIG_BOOTCOMMAND \
        "mmc dev ${mmcdev}; if mmc rescan; then " \
  /* NS16550 Configuration */
  #define CONFIG_SYS_NS16550
  #define CONFIG_SYS_NS16550_SERIAL
+ #define CONFIG_SERIAL_MULTI
  #define CONFIG_SYS_NS16550_REG_SIZE   (-4)
  #define CONFIG_SYS_NS16550_CLK                (48000000)
  #define CONFIG_SYS_NS16550_COM1               0x44e09000      /* Base EVM has UART0 */
+ #define CONFIG_SYS_NS16550_COM2               0x48022000      /* UART1 */
+ #define CONFIG_SYS_NS16550_COM3               0x48024000      /* UART2 */
+ #define CONFIG_SYS_NS16550_COM4               0x481a6000      /* UART3 */
+ #define CONFIG_SYS_NS16550_COM5               0x481a8000      /* UART4 */
+ #define CONFIG_SYS_NS16550_COM6               0x481aa000      /* UART5 */
  
  /* I2C Configuration */
  #define CONFIG_I2C
  #define CONFIG_SYS_BAUDRATE_TABLE     { 110, 300, 600, 1200, 2400, \
  4800, 9600, 14400, 19200, 28800, 38400, 56000, 57600, 115200 }
  
- /*
-  * select serial console configuration
-  */
- #define CONFIG_SERIAL1                        1
- #define CONFIG_CONS_INDEX             1
+ #define CONFIG_ENV_OVERWRITE          1
  #define CONFIG_SYS_CONSOLE_INFO_QUIET
  
  #define CONFIG_ENV_IS_NOWHERE