[U-Boot-Users] PATCH - Gateworks Avila (Xscale IXP42x) support

I've tried to search the mailing list but was unable to do so. I am assuming that this board has no support at the momemt.
What is Avila ? =============== This is an affordable Xscale development platform as well as a usable, off-the-shelf Wireless AP/Router platform.
This platform is based on the IXDP425 but has some minor differences most of which are contained in the config file. This board has its own mach-type defined by Linux so I've added that to board/ixdp425/ixdp425.c and also put in the board information string.
More information on these boards can be found here:
http://www.gateworks.com/avila_processors.htm
Which tree does this apply to ? =============================== IXP custodian tree: u-boot-ixp.git
What is supported/tested with this patch ? ========================================== * Boot from flash (JFFS2 or raw image) * NPE Ethernet (you will need NPE microcode from Intel).
I am working on a patch for supporting the CF IDE interface on this board which I will submit separately.
Signed-off-by: Ranjit Deshpande ranjit@kenati.com =========================================================================== diff -purN u-boot/u-boot-ixp.git/board/ixdp425/ixdp425.c u-boot.avila/u-boot-ixp.git/board/ixdp425/ixdp425.c --- u-boot/u-boot-ixp.git/board/ixdp425/ixdp425.c 2007-06-06 07:26:56.000000000 -0700 +++ u-boot.avila/u-boot-ixp.git/board/ixdp425/ixdp425.c 2007-07-23 15:31:55.438517399 -0700 @@ -45,9 +45,14 @@ int board_post_init (void)
int board_init (void) { +#ifdef CONFIG_AVILA + /* arch number of Gateworks Avila */ + gd->bd->bi_arch_number = MACH_TYPE_AVILA; +#endif +#ifdef CONFIG_IXDP425 /* arch number of IXDP */ gd->bd->bi_arch_number = MACH_TYPE_IXDP425; - +#endif /* adress of boot parameters */ gd->bd->bi_boot_params = 0x00000100;
@@ -91,9 +96,29 @@ int checkboard(void)
#ifdef CONFIG_IXDPG425 puts("Board: IXDPG425 - Intel Network Gateway Reference Platform"); -#else +#endif +#ifdef CONFIG_IXDP425 puts("Board: IXDP425 - Intel Development Platform"); #endif +#ifdef CONFIG_AVILA + puts("Board: Gateworks Avila " +#ifdef CONFIG_AVILA_2342 + "2342" +#endif +#ifdef CONFIG_AVILA_2345 + "2345" +#endif +#ifdef CONFIG_AVILA_2347 + "2347" +#endif +#ifdef CONFIG_AVILA_2348_2 + "2348-2" +#endif +#ifdef CONFIG_AVILA_2348_4 + "2348-4" +#endif + ); +#endif
if (s != NULL) { puts(", serial# "); diff -purN u-boot/u-boot-ixp.git/include/configs/avila.h u-boot.avila/u-boot-ixp.git/include/configs/avila.h --- u-boot/u-boot-ixp.git/include/configs/avila.h 1969-12-31 16:00:00.000000000 -0800 +++ u-boot.avila/u-boot-ixp.git/include/configs/avila.h 2007-07-23 19:11:54.368379254 -0700 @@ -0,0 +1,223 @@ +/* + * (C) Copyright 2003 + * Kyle Harris, Nexus Technologies, Inc. kharris@nexus-tech.net + * + * (C) Copyright 2007 + * Ranjit Deshpande, Kenati Technologies, Inc. ranjit@kenati.com + * + * Configuation settings for the Gateworks Avila board. + * + * 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 __CONFIG_H +#define __CONFIG_H + +/* + * High Level Configuration Options + * (easy to change) + */ +#define CONFIG_IXP425 1 /* This is an IXP425 CPU */ +#define CONFIG_AVILA 1 /* on a Gateworks Avila board */ + +/* Define the sub-type for the Avila platform. */ +#undef CONFIG_AVILA_2342 1 +#undef CONFIG_AVILA_2345 +#undef CONFIG_AVILA_2347 +#undef CONFIG_AVILA_2348_2 +#define CONFIG_AVILA_2348_4 + +#define CONFIG_DISPLAY_CPUINFO 1 /* display cpu info (and speed) */ +#define CONFIG_DISPLAY_BOARDINFO 1 /* display board info */ + +/*************************************************************** + * U-boot generic defines start here. + ***************************************************************/ + +#undef CONFIG_USE_IRQ /* we don't need IRQ/FIQ stuff */ + +/* + * Size of malloc() pool + */ +#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 128*1024) +#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ + +/* allow to overwrite serial and ethaddr */ +#define CONFIG_ENV_OVERWRITE + +#define CONFIG_BAUDRATE 115200 + +#define CONFIG_COMMANDS (CONFIG_CMD_DFL | \ + CFG_CMD_PCI | \ + CFG_CMD_JFFS2) & \ + ~(CFG_CMD_ITEST | \ + CFG_CMD_NFS | \ + CFG_CMD_AUTOSCRIPT) + +#define CONFIG_PCI +#define CONFIG_NET_MULTI +#define CONFIG_EEPRO100 +/* This must be included AFTER the definition of CONFIG_COMMANDS (if any) */ +/* These are u-boot generic parameters */ +#include <cmd_confdefs.h> + +#define CONFIG_BOOTDELAY 3 +#define CONFIG_ETHADDR 08:00:3e:26:0a:5b +#define CONFIG_NETMASK 255.255.255.0 +#define CONFIG_IPADDR 192.168.0.21 +#define CONFIG_SERVERIP 192.168.0.148 +#define CONFIG_BOOTCOMMAND "bootm 50040000" +#define CONFIG_BOOTARGS "root=/dev/mtdblock2 rootfstype=cramfs console=ttyS0,115200" +#define CONFIG_CMDLINE_TAG + +#if (CONFIG_COMMANDS & CFG_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 + +/* + * Miscellaneous configurable options + */ +#define CFG_LONGHELP /* undef to save memory */ +#define CFG_PROMPT "=> " /* Monitor Command Prompt */ +#define CFG_CBSIZE 256 /* Console I/O Buffer Size */ +#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ +#define CFG_MAXARGS 16 /* max number of command args */ +#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ + +#define CFG_MEMTEST_START 0x00400000 /* memtest works on */ +#define CFG_MEMTEST_END 0x00800000 /* 4 ... 8 MB in DRAM */ + +#undef CFG_CLKS_IN_HZ /* everything, incl board info, in Hz */ + +#define CFG_LOAD_ADDR 0x00010000 /* default load address */ + +#define CFG_HZ 3333333 /* spec says 66.666 MHz, but it appears to be 33 */ + /* valid baudrates */ +#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } + +/* + * Stack sizes + * + * The stack sizes are set up in start.S using the settings below + */ +#define CONFIG_STACKSIZE (128*1024) /* regular stack */ +#ifdef CONFIG_USE_IRQ +#define CONFIG_STACKSIZE_IRQ (4*1024) /* IRQ stack */ +#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */ +#endif + +/*************************************************************** + * Platform/Board specific defines start here. + ***************************************************************/ + +/* + * Hardware drivers + */ + + +/* + * select serial console configuration + */ +#define CFG_IXP425_CONSOLE IXP425_UART1 /* we use UART1 for console */ + +/* + * Physical Memory Map + */ +#define CONFIG_NR_DRAM_BANKS 1 /* we have 2 banks of DRAM */ +#define PHYS_SDRAM_1 0x00000000 /* SDRAM Bank #1 */ + +#if defined (CONFIG_AVILA_2347) || defined (CONFIG_AVILA_2348_2) +#define PHYS_SDRAM_1_SIZE 0x02000000 /* 32 MB */ +#else +#define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */ +#endif + +/* CFI flash driver used, therefore size is ignored */ +#define PHYS_FLASH_1 0x50000000 /* Flash Bank #1 */ +#define PHYS_FLASH_SIZE 0x00800000 /* 8 MB */ +#define PHYS_FLASH_BANK_SIZE 0x00800000 /* 8 MB Banks */ +#define PHYS_FLASH_SECT_SIZE 0x00020000 /* 128 KB sectors (x1) */ + +#define CFG_DRAM_BASE 0x00000000 +#define CFG_DRAM_SIZE 0x04000000 + +#define CFG_FLASH_BASE PHYS_FLASH_1 +#define CFG_MONITOR_BASE CFG_FLASH_BASE +#define CFG_MONITOR_LEN (384 << 10) /* Reserve 256 kB for Monitor */ + +/* + * Expansion bus settings + */ +#define CFG_EXP_CS0 0xbcd23c42 + +/* + * SDRAM settings + */ +#define CFG_SDR_CONFIG 0xa +#define CFG_SDR_MODE_CONFIG 0x1 +#define CFG_SDRAM_REFRESH_CNT 0x81a + +/* + * GPIO settings + */ + +/* + * FLASH and environment organization + */ +/* + * FLASH and environment organization + */ +#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */ +#define CFG_MAX_FLASH_SECT 128 /* max number of sectors on one chip */ + +#define CFG_FLASH_CFI /* The flash is CFI compatible */ +#define CFG_FLASH_CFI_DRIVER /* Use common CFI driver */ +#define CFG_ENV_IS_IN_FLASH 1 + +#define CFG_FLASH_BANKS_LIST { PHYS_FLASH_1 } + +#define CFG_FLASH_CFI_WIDTH FLASH_CFI_16BIT /* no byte writes on IXP4xx */ + +#define CFG_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */ +#define CFG_FLASH_WRITE_TOUT 500 /* Timeout for Flash Write (in ms) */ + +#define CFG_FLASH_EMPTY_INFO /* print 'E' for empty sector on flinfo */ + +#define CFG_ENV_SECT_SIZE 0x20000 /* size of one complete sector */ +#define CFG_ENV_ADDR (PHYS_FLASH_1 + 0x60000) +#define CFG_ENV_SIZE 0x20000 /* Total Size of Environment Sector */ + +/* NPE Settings. Enable if you have downloaded the microcode for Ethernet */ +/* +#define CONFIG_IXP4XX_NPE 1 +#define CFG_NPE_NUMS 2 +#define CONFIG_HAS_ETH1 1 +#ifdef CONFIG_AVILA_2345 +#define CONFIG_PHY_ADDR 4 +#define CONFIG_PHY1_ADDR 5 +#else +#define CONFIG_PHY_ADDR 0 +#define CONFIG_PHY1_ADDR 1 +#endif +#define CONFIG_MII 1 +#define CFG_CACHELINE_SIZE 32 +*/ + +#endif /* __CONFIG_H */ diff -purN u-boot/u-boot-ixp.git/MAKEALL u-boot.avila/u-boot-ixp.git/MAKEALL --- u-boot/u-boot-ixp.git/MAKEALL 2007-06-06 07:26:56.000000000 -0700 +++ u-boot.avila/u-boot-ixp.git/MAKEALL 2007-07-23 19:13:11.297004839 -0700 @@ -230,7 +230,10 @@ LIST_pxa=" \ xsengine zylonite \ "
-LIST_ixp="ixdp425 ixdpg425 pdnb3 scpu" +LIST_ixp=" \ + avila ixdp425 ixdpg425 pdnb3 \ + scpu +"
LIST_arm=" \ diff -purN u-boot/u-boot-ixp.git/Makefile u-boot.avila/u-boot-ixp.git/Makefile --- u-boot/u-boot-ixp.git/Makefile 2007-06-06 07:26:56.000000000 -0700 +++ u-boot.avila/u-boot-ixp.git/Makefile 2007-07-23 15:16:43.276950219 -0700 @@ -2148,6 +2148,9 @@ SMN42_config : unconfig adsvix_config : unconfig @$(MKCONFIG) $(@:_config=) arm pxa adsvix
+avila_config : unconfig + @$(MKCONFIG) $(@:_config=) arm ixp ixdp425 + cerf250_config : unconfig @$(MKCONFIG) $(@:_config=) arm pxa cerf250

In message C2CB8ACB.C3FA%ranjit@kenati.com you wrote:
I've tried to search the mailing list but was unable to do so. I am assuming that this board has no support at the momemt.
What is Avila ?
This is an affordable Xscale development platform as well as a usable, off-the-shelf Wireless AP/Router platform.
This platform is based on the IXDP425 but has some minor differences most of which are contained in the config file. This board has its own mach-type defined by Linux so I've added that to board/ixdp425/ixdp425.c and also put in the board information string.
I don't think it is a good idea to add lots of #ifdefs for another board in some board specific file.
There are different boards, so they should have separate board specific files. If you find larger parts of common code, please feel free to factor this out.
As is, I don't want to accept this patch for the publich U-Boot tree.
Best regards,
Wolfgang Denk
participants (2)
-
Ranjit Deshpande
-
Wolfgang Denk