Works fine! Thanks.

Acked-by: Matthias Fuchs <matthias.fu...@esd.eu>

On Monday 20 July 2009 08:26, Stefan Roese wrote:
> This patch adds a generic command for programming I2C bootstrap
> eeproms on PPC4xx. An implementation for Canyonlands board is
> included.
> 
> The command name is intentionally chosen not to be PPC4xx specific.
> This way other CPU's/SoC's can implement a similar command under
> the same name, perhaps with a different syntax.
> 
> Usage on Canyonlands:
> 
> => chip_config
> Available configurations (I2C address 0x52):
> 600-nor          - NOR  CPU: 600 PLB: 200 OPB: 100 EBC: 100
> 600-nand         - NAND CPU: 600 PLB: 200 OPB: 100 EBC: 100
> 800-nor          - NOR  CPU: 800 PLB: 200 OPB: 100 EBC: 100
> 800-nand         - NAND CPU: 800 PLB: 200 OPB: 100 EBC: 100
> 1000-nor         - NOR  CPU:1000 PLB: 200 OPB: 100 EBC: 100
> 1000-nand        - NAND CPU:1000 PLB: 200 OPB: 100 EBC: 100
> 1066-nor         - NOR  CPU:1066 PLB: 266 OPB:  88 EBC:  88 ***
> 1066-nand        - NAND CPU:1066 PLB: 266 OPB:  88 EBC:  88
> => chip_config 600-nor
> Using configuration:
> 600-nor          - NOR  CPU: 600 PLB: 200 OPB: 100 EBC: 100
> done (dump via 'i2c md 52 0.1 10')
> Reset the board for the changes to take effect
> 
> Other 4xx boards will be migrated to use this command soon
> as well.
> 
> Signed-off-by: Stefan Roese <s...@denx.de>
> Signed-off-by: Dirk Eibach <eib...@gdsys.de>
> Cc: Matthias Fuchs <matthias.fu...@esd.eu>
> ---
> v5:
> - Removed bogus lines from commit text
> 
> v4:
> - Command name changed from cpu_config to chip_config
> - Used eeprom_read/eeprom_write if available
> - Added CONFIG_4xx_CONFIG_I2C_EEPROM_OFFSET
> 
> v3:
> - Line length of one printf reduced
> 
> v2:
> - Patch authorship changes to Stefan
> - s-o-b from Dirk added
> - Added current configuration detection
> - Minor coding style cleanup
> 
>  board/amcc/canyonlands/Makefile      |    5 +-
>  board/amcc/canyonlands/bootstrap.c   |  195 
> ----------------------------------
>  board/amcc/canyonlands/chip_config.c |   55 ++++++++++
>  cpu/ppc4xx/Makefile                  |    3 +
>  cpu/ppc4xx/cmd_chip_config.c         |  142 ++++++++++++++++++++++++
>  include/asm-ppc/ppc4xx_config.h      |   42 +++++++
>  include/configs/canyonlands.h        |    6 +
>  7 files changed, 251 insertions(+), 197 deletions(-)
>  delete mode 100644 board/amcc/canyonlands/bootstrap.c
>  create mode 100644 board/amcc/canyonlands/chip_config.c
>  create mode 100644 cpu/ppc4xx/cmd_chip_config.c
>  create mode 100644 include/asm-ppc/ppc4xx_config.h
> 
> diff --git a/board/amcc/canyonlands/Makefile b/board/amcc/canyonlands/Makefile
> index 2aeead6..12f8a64 100644
> --- a/board/amcc/canyonlands/Makefile
> +++ b/board/amcc/canyonlands/Makefile
> @@ -25,10 +25,11 @@ include $(TOPDIR)/config.mk
>  
>  LIB  = $(obj)lib$(BOARD).a
>  
> -COBJS        := $(BOARD).o
> -COBJS        += bootstrap.o
> +COBJS-y      := $(BOARD).o
> +COBJS-$(CONFIG_CMD_CHIP_CONFIG) += chip_config.o
>  SOBJS        := init.o
>  
> +COBJS   := $(COBJS-y)
>  SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
>  OBJS := $(addprefix $(obj),$(COBJS))
>  SOBJS        := $(addprefix $(obj),$(SOBJS))
> diff --git a/board/amcc/canyonlands/bootstrap.c 
> b/board/amcc/canyonlands/bootstrap.c
> deleted file mode 100644
> index 6dc2cca..0000000
> --- a/board/amcc/canyonlands/bootstrap.c
> +++ /dev/null
> @@ -1,195 +0,0 @@
> -/*
> - * (C) Copyright 2008
> - * Stefan Roese, DENX Software Engineering, s...@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
> - *
> - */
> -
> -#include <common.h>
> -#include <command.h>
> -#include <i2c.h>
> -#include <asm/io.h>
> -
> -/*
> - * NOR and NAND boot options change bytes 5, 6, 8, 9, 11. The
> - * values are independent of the rest of the clock settings.
> - */
> -
> -#define NAND_COMPATIBLE      0x01
> -#define NOR_COMPATIBLE  0x02
> -
> -#define I2C_EEPROM_ADDR 0x52
> -
> -static char *config_labels[] = {
> -     "CPU: 600 PLB: 200 OPB: 100 EBC: 100",
> -     "CPU: 800 PLB: 200 OPB: 100 EBC: 100",
> -     "CPU:1000 PLB: 200 OPB: 100 EBC: 100",
> -     "CPU:1066 PLB: 266 OPB:  88 EBC:  88",
> -     NULL
> -};
> -
> -static u8 boot_configs[][17] = {
> -     {
> -             (NAND_COMPATIBLE | NOR_COMPATIBLE),
> -             0x86, 0x80, 0xce, 0x1f, 0x79, 0x80, 0x00, 0xa0, 0x40, 0x08,
> -             0x23, 0x50, 0x0d, 0x05, 0x00, 0x00
> -     },
> -     {
> -             (NAND_COMPATIBLE | NOR_COMPATIBLE),
> -             0x86, 0x80, 0xba, 0x14, 0x99, 0x80, 0x00, 0xa0, 0x40, 0x08,
> -             0x23, 0x50, 0x0d, 0x05, 0x00, 0x00
> -     },
> -     {
> -             (NAND_COMPATIBLE | NOR_COMPATIBLE),
> -             0x86, 0x82, 0x96, 0x19, 0xb9, 0x80, 0x00, 0xa0, 0x40, 0x08,
> -             0x23, 0x50, 0x0d, 0x05, 0x00, 0x00
> -     },
> -     {
> -             (NAND_COMPATIBLE | NOR_COMPATIBLE),
> -             0x86, 0x80, 0xb3, 0x01, 0x9d, 0x80, 0x00, 0xa0, 0x40, 0x08,
> -             0x23, 0x50, 0x0d, 0x05, 0x00, 0x00
> -     },
> -     {
> -             0,
> -             0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
> -     }
> -};
> -
> -/*
> - * Bytes 5,6,8,9,11 change for NAND boot
> - */
> -#if 0
> -/*
> - * Values for 512 page size NAND chips, not used anymore, just
> - * keep them here for reference
> - */
> -static u8 nand_boot[] = {
> -     0x90, 0x01,  0xa0, 0x68, 0x58
> -};
> -#else
> -/*
> - * Values for 2k page size NAND chips
> - */
> -static u8 nand_boot[] = {
> -     0x90, 0x01,  0xa0, 0xe8, 0x58
> -};
> -#endif
> -
> -static int do_bootstrap(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
> -{
> -     u8 *buf, b_nand;
> -     int x, y, nbytes, selcfg;
> -     extern char console_buffer[];
> -
> -     if (argc < 2) {
> -             cmd_usage(cmdtp);
> -             return 1;
> -     }
> -
> -     if ((strcmp(argv[1], "nor") != 0) &&
> -         (strcmp(argv[1], "nand") != 0)) {
> -             printf("Unsupported boot-device - only nor|nand support\n");
> -             return 1;
> -     }
> -
> -     /* set the nand flag based on provided input */
> -     if ((strcmp(argv[1], "nand") == 0))
> -             b_nand = 1;
> -     else
> -             b_nand = 0;
> -
> -     printf("Available configurations: \n\n");
> -
> -     if (b_nand) {
> -             for(x = 0, y = 0; boot_configs[x][0] != 0; x++) {
> -                     /* filter on nand compatible */
> -                     if (boot_configs[x][0] & NAND_COMPATIBLE) {
> -                             printf(" %d - %s\n", (y+1), config_labels[x]);
> -                             y++;
> -                     }
> -             }
> -     } else {
> -             for(x = 0, y = 0; boot_configs[x][0] != 0; x++) {
> -                     /* filter on nor compatible */
> -                     if (boot_configs[x][0] & NOR_COMPATIBLE) {
> -                             printf(" %d - %s\n", (y+1), config_labels[x]);
> -                             y++;
> -                     }
> -             }
> -     }
> -
> -     do {
> -             nbytes = readline(" Selection [1-x / quit]: ");
> -
> -             if (nbytes) {
> -                     if (strcmp(console_buffer, "quit") == 0)
> -                             return 0;
> -                     selcfg = simple_strtol(console_buffer, NULL, 10);
> -                     if ((selcfg < 1) || (selcfg > y))
> -                             nbytes = 0;
> -             }
> -     } while (nbytes == 0);
> -
> -
> -     y = (selcfg - 1);
> -
> -     for (x = 0; boot_configs[x][0] != 0; x++) {
> -             if (b_nand) {
> -                     if (boot_configs[x][0] & NAND_COMPATIBLE) {
> -                             if (y > 0)
> -                                     y--;
> -                             else if (y < 1)
> -                                     break;
> -                     }
> -             } else {
> -                     if (boot_configs[x][0] & NOR_COMPATIBLE) {
> -                             if (y > 0)
> -                                     y--;
> -                             else if (y < 1)
> -                                     break;
> -                     }
> -             }
> -     }
> -
> -     buf = &boot_configs[x][1];
> -
> -     if (b_nand) {
> -             buf[5] = nand_boot[0];
> -             buf[6] = nand_boot[1];
> -             buf[8] = nand_boot[2];
> -             buf[9] = nand_boot[3];
> -             buf[11] = nand_boot[4];
> -     }
> -
> -     if (i2c_write(I2C_EEPROM_ADDR, 0, 1, buf, 16) != 0)
> -             printf("Error writing to EEPROM at address 0x%x\n", 
> I2C_EEPROM_ADDR);
> -     udelay(CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS * 1000);
> -
> -     printf("Done\n");
> -     printf("Please power-cycle the board for the changes to take effect\n");
> -
> -     return 0;
> -}
> -
> -U_BOOT_CMD(
> -     bootstrap,      2,      0,      do_bootstrap,
> -     "program the I2C bootstrap EEPROM",
> -     "<nand|nor> - strap to boot from NAND or NOR flash"
> -);
> diff --git a/board/amcc/canyonlands/chip_config.c 
> b/board/amcc/canyonlands/chip_config.c
> new file mode 100644
> index 0000000..8504171
> --- /dev/null
> +++ b/board/amcc/canyonlands/chip_config.c
> @@ -0,0 +1,55 @@
> +/*
> + * (C) Copyright 2008-2009
> + * Stefan Roese, DENX Software Engineering, s...@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
> + *
> + */
> +
> +#include <common.h>
> +#include <asm/ppc4xx_config.h>
> +
> +struct ppc4xx_config ppc4xx_config_val[] = {
> +     { "600-nor", "NOR  CPU: 600 PLB: 200 OPB: 100 EBC: 100",
> +       { 0x86, 0x80, 0xce, 0x1f, 0x79, 0x80, 0x00, 0xa0,
> +         0x40, 0x08, 0x23, 0x50, 0x0d, 0x05, 0x00, 0x00 } },
> +     { "600-nand", "NAND CPU: 600 PLB: 200 OPB: 100 EBC: 100",
> +       { 0x86, 0x80, 0xce, 0x1f, 0x79, 0x90, 0x01, 0xa0,
> +         0xa0, 0xe8, 0x23, 0x58, 0x0d, 0x05, 0x00, 0x00 } },
> +     { "800-nor", "NOR  CPU: 800 PLB: 200 OPB: 100 EBC: 100",
> +       { 0x86, 0x80, 0xba, 0x14, 0x99, 0x80, 0x00, 0xa0,
> +         0x40, 0x08, 0x23, 0x50, 0x0d, 0x05, 0x00, 0x00 } },
> +     { "800-nand", "NAND CPU: 800 PLB: 200 OPB: 100 EBC: 100",
> +       { 0x86, 0x80, 0xba, 0x14, 0x99, 0x90, 0x01, 0xa0,
> +         0xa0, 0xe8, 0x23, 0x58, 0x0d, 0x05, 0x00, 0x00 } },
> +     { "1000-nor", "NOR  CPU:1000 PLB: 200 OPB: 100 EBC: 100",
> +       { 0x86, 0x82, 0x96, 0x19, 0xb9, 0x80, 0x00, 0xa0,
> +         0x40, 0x08, 0x23, 0x50, 0x0d, 0x05, 0x00, 0x00 } },
> +     { "1000-nand", "NAND CPU:1000 PLB: 200 OPB: 100 EBC: 100",
> +       { 0x86, 0x82, 0x96, 0x19, 0xb9, 0x90, 0x01, 0xa0,
> +         0xa0, 0xe8, 0x23, 0x58, 0x0d, 0x05, 0x00, 0x00 } },
> +     { "1066-nor", "NOR  CPU:1066 PLB: 266 OPB:  88 EBC:  88",
> +       { 0x86, 0x80, 0xb3, 0x01, 0x9d, 0x80, 0x00, 0xa0,
> +         0x40, 0x08, 0x23, 0x50, 0x0d, 0x05, 0x00, 0x00 } },
> +     { "1066-nand", "NAND CPU:1066 PLB: 266 OPB:  88 EBC:  88",
> +       { 0x86, 0x80, 0xb3, 0x01, 0x9d, 0x90, 0x01, 0xa0,
> +         0xa0, 0xe8, 0x23, 0x58, 0x0d, 0x05, 0x00, 0x00 } },
> +};
> +
> +int ppc4xx_config_count = ARRAY_SIZE(ppc4xx_config_val);
> diff --git a/cpu/ppc4xx/Makefile b/cpu/ppc4xx/Makefile
> index 6f52dfd..2050b17 100644
> --- a/cpu/ppc4xx/Makefile
> +++ b/cpu/ppc4xx/Makefile
> @@ -41,6 +41,9 @@ endif
>  COBJS        += 4xx_pci.o
>  COBJS        += 4xx_pcie.o
>  COBJS        += bedbug_405.o
> +ifdef CONFIG_CMD_CHIP_CONFIG
> +COBJS        += cmd_chip_config.o
> +endif
>  COBJS        += commproc.o
>  COBJS        += cpu.o
>  COBJS        += cpu_init.o
> diff --git a/cpu/ppc4xx/cmd_chip_config.c b/cpu/ppc4xx/cmd_chip_config.c
> new file mode 100644
> index 0000000..d360d5b
> --- /dev/null
> +++ b/cpu/ppc4xx/cmd_chip_config.c
> @@ -0,0 +1,142 @@
> +/*
> + * (C) Copyright 2008-2009
> + * Stefan Roese, DENX Software Engineering, s...@denx.de.
> + *
> + * (C) Copyright 2009
> + * Dirk Eibach,  Guntermann & Drunck GmbH, eib...@gdsys.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
> + *
> + */
> +
> +#include <common.h>
> +#include <command.h>
> +#include <i2c.h>
> +#include <asm/ppc4xx_config.h>
> +#include <asm/io.h>
> +
> +static void print_configs(int cur_config_nr)
> +{
> +     int i;
> +
> +     for (i = 0; i < ppc4xx_config_count; i++) {
> +             printf("%-16s - %s", ppc4xx_config_val[i].label,
> +                    ppc4xx_config_val[i].description);
> +             if (i == cur_config_nr)
> +                     printf(" ***");
> +             printf("\n");
> +     }
> +
> +}
> +
> +static int do_chip_config(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
> +{
> +     int i;
> +     int ret;
> +     int cur_config_nr = -1;
> +     u8 cur_config[CONFIG_4xx_CONFIG_BLOCKSIZE];
> +
> +#ifdef CONFIG_CMD_EEPROM
> +     ret = eeprom_read(CONFIG_4xx_CONFIG_I2C_EEPROM_ADDR,
> +                       CONFIG_4xx_CONFIG_I2C_EEPROM_OFFSET,
> +                       cur_config, CONFIG_4xx_CONFIG_BLOCKSIZE);
> +#else
> +     ret = i2c_read(CONFIG_4xx_CONFIG_I2C_EEPROM_ADDR,
> +                    CONFIG_4xx_CONFIG_I2C_EEPROM_OFFSET,
> +                    1, cur_config, CONFIG_4xx_CONFIG_BLOCKSIZE);
> +#endif
> +     if (ret) {
> +             printf("Error reading EEPROM at addr 0x%x\n",
> +                    CONFIG_4xx_CONFIG_I2C_EEPROM_ADDR);
> +             return -1;
> +     }
> +
> +     /*
> +      * Search the current configuration
> +      */
> +     for (i = 0; i < ppc4xx_config_count; i++) {
> +             if (memcmp(cur_config, ppc4xx_config_val[i].val,
> +                        CONFIG_4xx_CONFIG_BLOCKSIZE) == 0)
> +                     cur_config_nr = i;
> +     }
> +
> +     if (cur_config_nr == -1) {
> +             printf("Warning: The I2C bootstrap values don't match any"
> +                    " of the available options!\n");
> +             printf("I2C bootstrap EEPROM values are (I2C address 
> 0x%02x):\n",
> +                     CONFIG_4xx_CONFIG_I2C_EEPROM_ADDR);
> +             for (i = 0; i < CONFIG_4xx_CONFIG_BLOCKSIZE; i++) {
> +                     printf("%02x ", cur_config[i]);
> +             }
> +             printf("\n");
> +     }
> +
> +     if (argc < 2) {
> +             printf("Available configurations (I2C address 0x%02x):\n",
> +                    CONFIG_4xx_CONFIG_I2C_EEPROM_ADDR);
> +             print_configs(cur_config_nr);
> +             return 0;
> +     }
> +
> +     for (i = 0; i < ppc4xx_config_count; i++) {
> +             /*
> +              * Search for configuration name/label
> +              */
> +             if (strcmp(argv[1], ppc4xx_config_val[i].label) == 0) {
> +                     printf("Using configuration:\n%-16s - %s\n",
> +                            ppc4xx_config_val[i].label,
> +                            ppc4xx_config_val[i].description);
> +
> +#ifdef CONFIG_CMD_EEPROM
> +                     ret = eeprom_write(CONFIG_4xx_CONFIG_I2C_EEPROM_ADDR,
> +                                        CONFIG_4xx_CONFIG_I2C_EEPROM_OFFSET,
> +                                        ppc4xx_config_val[i].val,
> +                                        CONFIG_4xx_CONFIG_BLOCKSIZE);
> +#else
> +                     ret = i2c_write(CONFIG_4xx_CONFIG_I2C_EEPROM_ADDR,
> +                                     CONFIG_4xx_CONFIG_I2C_EEPROM_OFFSET,
> +                                     1, ppc4xx_config_val[i].val,
> +                                     CONFIG_4xx_CONFIG_BLOCKSIZE);
> +#endif
> +                     udelay(CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS * 1000);
> +                     if (ret) {
> +                             printf("Error updating EEPROM at addr 0x%x\n",
> +                                    CONFIG_4xx_CONFIG_I2C_EEPROM_ADDR);
> +                             return -1;
> +                     }
> +
> +                     printf("done (dump via 'i2c md %x 0.1 %x')\n",
> +                            CONFIG_4xx_CONFIG_I2C_EEPROM_ADDR,
> +                            CONFIG_4xx_CONFIG_BLOCKSIZE);
> +                     printf("Reset the board for the changes to"
> +                            " take effect\n");
> +                     return 0;
> +             }
> +     }
> +
> +     printf("Configuration %s not found!\n", argv[1]);
> +     print_configs(cur_config_nr);
> +     return -1;
> +}
> +
> +U_BOOT_CMD(
> +     chip_config,    2,      0,      do_chip_config,
> +     "program the I2C bootstrap EEPROM",
> +     "[config-label]"
> +);
> diff --git a/include/asm-ppc/ppc4xx_config.h b/include/asm-ppc/ppc4xx_config.h
> new file mode 100644
> index 0000000..49acb60
> --- /dev/null
> +++ b/include/asm-ppc/ppc4xx_config.h
> @@ -0,0 +1,42 @@
> +/*
> + * (C) Copyright 2008-2009
> + * Stefan Roese, DENX Software Engineering, s...@denx.de.
> + *
> + * (C) Copyright 2009
> + * Dirk Eibach,  Guntermann & Drunck GmbH, eib...@gdsys.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
> + *
> + */
> +
> +#ifndef __PPC4xx_CONFIG_H
> +#define __PPC4xx_CONFIG_H
> +
> +#include <common.h>
> +
> +struct ppc4xx_config {
> +     char label[16];
> +     char description[64];
> +     u8 val[CONFIG_4xx_CONFIG_BLOCKSIZE];
> +};
> +
> +extern struct ppc4xx_config ppc4xx_config_val[];
> +extern int ppc4xx_config_count;
> +
> +#endif /* __PPC4xx_CONFIG_H */
> diff --git a/include/configs/canyonlands.h b/include/configs/canyonlands.h
> index d22d411..217a8ee 100644
> --- a/include/configs/canyonlands.h
> +++ b/include/configs/canyonlands.h
> @@ -330,6 +330,11 @@
>  #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS    3
>  #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS        10
>  
> +/* I2C bootstrap EEPROM */
> +#define CONFIG_4xx_CONFIG_I2C_EEPROM_ADDR    0x52
> +#define CONFIG_4xx_CONFIG_I2C_EEPROM_OFFSET  0
> +#define CONFIG_4xx_CONFIG_BLOCKSIZE          16
> +
>  /* I2C SYSMON (LM75, AD7414 is almost compatible)                    */
>  #define CONFIG_DTT_LM75              1               /* ON Semi's LM75       
> */
>  #define CONFIG_DTT_AD7414    1               /* use AD7414           */
> @@ -442,6 +447,7 @@
>  /*
>   * Commands additional to the ones defined in amcc-common.h
>   */
> +#define CONFIG_CMD_CHIP_CONFIG
>  #if defined(CONFIG_ARCHES)
>  #define CONFIG_CMD_DTT
>  #define CONFIG_CMD_PCI

-- 
-------------------------------------------------------------------------
Dipl.-Ing. Matthias Fuchs
Head of System Design

esd electronic system design gmbh
Vahrenwalder Str. 207 - 30165 Hannover - GERMANY
Phone: +49-511-37298-0 - Fax: +49-511-37298-68
Please visit our homepage http://www.esd.eu
Quality Products - Made in Germany
-------------------------------------------------------------------------
Geschäftsführer: Klaus Detering, Dr. Werner Schulze
Amtsgericht Hannover HRB 51373 - VAT-ID DE 115672832
-------------------------------------------------------------------------
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to