On 10:32 Fri 24 Jul     , Albin Tonnerre wrote:
> The Calao TNY-A9260 and TNY-9G20 are boards manufactured and sold by Calao
> Systems <http://www.calao-systems.com>. Their components are very
> similar to the AT91SAM9260EK board, so their configuration is based on
> the configuration of this board. There are however some differences:
> different clocks, no LCD, no ethernet. They also uses SPI EEPROM to store
> the environment.
eeprom for the env?
why not in the same storage as u-boot
> The SPI chip is a STM95080, and as it's used in a number of CALAO boards
> which should be supported soon, the corresponding spi_read and spi_write
> functions have been put in drivers/spi/eeprom_m95xxx.c
> 
> Signed-off-by: Albin Tonnerre <albin.tonne...@free-electrons.com>
> ---
> Changelog since v1:
>  - Make the Makefile less verbose
>  - Add error checking for the result of get_ram_size
>  - Remove definition of the ROUND macro in configs/tny_a9260.h
>  - Move the MAINTAINERS entry to the correct place
>  - Add support for TNY-A9G20 in the process. The board is similar
>    to the TNY-A9260 except for the CPU, so this only adds a couple
>    ifdefs
>  - Minor formatting changes in comments
please split in two patch one the the eeprom and one for the board
> 
>  MAINTAINERS                              |    4 +
>  MAKEALL                                  |    1 +
>  Makefile                                 |   18 ++++
>  board/calao/tny_a9260/Makefile           |   55 ++++++++++
>  board/calao/tny_a9260/config.mk          |    1 +
>  board/calao/tny_a9260/spi.c              |   50 +++++++++
>  board/calao/tny_a9260/tny_a9260.c        |  110 ++++++++++++++++++++
>  cpu/arm926ejs/at91/at91sam9260_devices.c |    2 +-
>  drivers/spi/Makefile                     |    1 +
>  drivers/spi/eeprom_m95xxx.c              |  115 +++++++++++++++++++++
>  include/configs/tny_a9260.h              |  165 
> ++++++++++++++++++++++++++++++
>  11 files changed, 521 insertions(+), 1 deletions(-)
>  create mode 100644 board/calao/tny_a9260/Makefile
>  create mode 100644 board/calao/tny_a9260/config.mk
>  create mode 100644 board/calao/tny_a9260/spi.c
>  create mode 100644 board/calao/tny_a9260/tny_a9260.c
>  create mode 100644 drivers/spi/eeprom_m95xxx.c
>  create mode 100644 include/configs/tny_a9260.h
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 17b2f9c..54477b3 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -675,6 +675,10 @@ Andrea Scian <andrea.sc...@dave-tech.it>
>  
>       B2              ARM7TDMI (S3C44B0X)
>  
> +Albin Tonnerre <albin.tonne...@free-electrons.com>
> +
> +     tny_a9260       ARM926EJS (AT91SAM9260 SoC)
> +
>  Greg Ungerer <greg.unge...@opengear.com>
>  
>       cm4008          ks8695p
> diff --git a/MAKEALL b/MAKEALL
> index d38904a..20b22a6 100755
> --- a/MAKEALL
> +++ b/MAKEALL
> @@ -602,6 +602,7 @@ LIST_at91="                       \
>       m501sk                  \
>       pm9261                  \
>       pm9263                  \
> +     tny_a9260       \
>  "
>  
>  #########################################################################
> diff --git a/Makefile b/Makefile
> index 2320db6..d9a093d 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -2811,6 +2811,24 @@ at91sam9g45ekes_config :       unconfig
>  pm9263_config        :       unconfig
>       @$(MKCONFIG) $(@:_config=) arm arm926ejs pm9263 ronetix at91
>  
> +tny_a9g20_nandflash_config \
> +tny_a9g20_eeprom_config \
> +tny_a9g20_config \
> +tny_a9260_nandflash_config \
> +tny_a9260_eeprom_config \
> +tny_a9260_config     :       unconfig
please add
        @mkdir $(obj)include
otherwise the out of tree build will not work
> +     @if [ "$(findstring _nandflash,$@)" ] ; then \
> +             echo "#define CONFIG_ENV_IS_IN_NAND"    
> >>$(obj)include/config.h ; \
> +     else \
> +             echo "#define CONFIG_ENV_IS_IN_EEPROM"  
> >>$(obj)include/config.h ; \
> +     fi;
> +     @if [ "$(findstring _a9g20,$@)" ] ; then \
> +             echo "#define CONFIG_TNY_A9G20" >>$(obj)include/config.h ; \
> +     else \
> +             echo "#define CONFIG_TNY_A9260" >>$(obj)include/config.h ; \
> +     fi;
> +     @$(MKCONFIG) -a tny_a9260 arm arm926ejs tny_a9260 calao at91
> +
>  ########################################################################
>  ## ARM Integrator boards - see doc/README-integrator for more info.
>  integratorap_config  \
<snip>
> +
> +int board_init(void)
> +{
> +     /* Enable Ctrlc */
> +     console_init_f();
> +
> +#if defined(CONFIG_TNY_A9260)
> +     gd->bd->bi_arch_number = MACH_TYPE_TNY_A9260;
> +#elif defined(CONFIG_TNY_A9G20)
> +     gd->bd->bi_arch_number = MACH_TYPE_TNY_A9G20;
> +#endif
> +     /* adress of boot parameters */
> +     gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
> +
> +     at91_serial_hw_init();
> +     tny_a9260_nand_hw_init();
> +     at91_spi0_hw_init(1 << 5 | 1 << 1);
you can remove the 1 << 1 as the dataflash driver is deprecated now
> +     return 0;
> +}
> +
> +int dram_init(void)
> +{
> +     gd->bd->bi_dram[0].start = PHYS_SDRAM;
> +     if(get_ram_size((long *) PHYS_SDRAM, PHYS_SDRAM_SIZE) != 
> PHYS_SDRAM_SIZE)
> +             return -1;
> +
> +     gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
> +     return 0;
> +}
> diff --git a/cpu/arm926ejs/at91/at91sam9260_devices.c 
> b/cpu/arm926ejs/at91/at91sam9260_devices.c
> index 5309ba2..f86cb99 100644
<qnip>
> +
> +/* SPI EEPROM */
> +#define CONFIG_SPI
> +#define CONFIG_CMD_SPI
> +#define CONFIG_ATMEL_SPI
> +#define CONFIG_SYS_SPI_WRITE_TOUT            (5*CONFIG_SYS_HZ)
> +#define AT91_SPI_CLK                 15000000
no need please remove
> +
> +#define CONFIG_CMD_EEPROM
> +#define CONFIG_M95XXX_SPI
> +#define CONFIG_SYS_EEPROM_SIZE 0x10000
> +#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 5
> +
> +/* NAND flash */
> +#define CONFIG_CMD_NAND
> +#define CONFIG_NAND_ATMEL
> +#define CONFIG_SYS_MAX_NAND_DEVICE           1
> +#define CONFIG_SYS_NAND_BASE                 0x40000000
> +#define CONFIG_SYS_NAND_DBW_8                        1
> +/* our ALE is AD21 */
> +#define CONFIG_SYS_NAND_MASK_ALE             (1 << 21)
> +/* our CLE is AD22 */
> +#define CONFIG_SYS_NAND_MASK_CLE             (1 << 22)
> +#define CONFIG_SYS_NAND_ENABLE_PIN           AT91_PIN_PC14
> +#define CONFIG_SYS_NAND_READY_PIN            AT91_PIN_PC13
> +
> +/* NOR flash - no real flash on this board */
> +#define CONFIG_SYS_NO_FLASH                  1
> +
> +#define CONFIG_DOS_PARTITION         1
> +#define CONFIG_CMD_FAT                       1
> +
> +#define CONFIG_SYS_LOAD_ADDR                 0x22000000      /* load address 
> */
> +
> +#define CONFIG_SYS_MEMTEST_START             PHYS_SDRAM
> +#define CONFIG_SYS_MEMTEST_END                       0x23e00000
> +
> +/* Env in EEPROM, bootstrap + u-boot in NAND*/
> +#ifdef CONFIG_ENV_IS_IN_EEPROM
> +#define CONFIG_ENV_OFFSET            0x20
> +#define CONFIG_ENV_SIZE              0x1000
> +#endif
> +
> +/* Env, bootstrap and u-boot in NAND */
> +#ifdef CONFIG_ENV_IS_IN_NAND
> +#define CONFIG_ENV_OFFSET 0x60000
> +#define CONFIG_ENV_OFFSET_REDUND 0x80000
> +#define CONFIG_ENV_SIZE 0x20000
> +#endif
> +
> +#define CONFIG_BOOTCOMMAND   "nboot 0x21000000 0 400000"
> +#define CONFIG_BOOTARGS     "console=ttyS0,115200 " \
whispace please fix and so on
> +                            "root=/dev/mtdblock1 " \
> +                            "mtdparts=atmel_nand:16M(kernel)ro," \
> +                            "120M(rootfs),-(other) " \
> +                            "rw rootfstype=jffs2"
> +
> +#define CONFIG_BAUDRATE              115200
> +#define CONFIG_SYS_BAUDRATE_TABLE    {115200 , 19200, 38400, 57600, 9600 }
> +
Best Regards,
J.
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to