[PATCH 3/3] ARM: Add support for IXP4xx CPU and for Goramo Multilink router platform.

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Thu Jan 6 18:36:51 EST 2011


> +
> +/* offsets from start of flash ROM = 0x50000000 */
> +#define CFG_ETH0_ADDRESS     0x40 /* 6 bytes */
                           ^^^^^
whitespace please use tab for indent
> +#define CFG_ETH1_ADDRESS     0x46 /* 6 bytes */
> +#define CFG_REV              0x4C /* u32 */
> +#define CFG_SDRAM_SIZE       0x50 /* u32 */
> +#define CFG_SDRAM_CONF       0x54 /* u32 */
> +#define CFG_SDRAM_MODE       0x58 /* u32 */
> +#define CFG_SDRAM_REFRESH    0x5C /* u32 */
> +
> +#define CFG_HW_BITS          0x60 /* u32 */
> +#define  CFG_HW_USB_PORTS    0x00000007 /* 0 = no NEC chip, 1-5 = ports # */
> +#define  CFG_HW_HAS_PCI_SLOT 0x00000008
> +#define  CFG_HW_HAS_ETH0     0x00000010
> +#define  CFG_HW_HAS_ETH1     0x00000020
> +#define  CFG_HW_HAS_HSS0     0x00000040
> +#define  CFG_HW_HAS_HSS1     0x00000080
> +#define  CFG_HW_HAS_UART0    0x00000100
> +#define  CFG_HW_HAS_UART1    0x00000200
> +#define  CFG_HW_HAS_EEPROM   0x00000400
> +
> +#define ETH_ALEN             6
IIR we have a macro for it
> +
> +#define BAREBOX_START        0x00000
> +#define BAREBOX_LENGTH       0x34000
> +#define NPE_A_START          (BAREBOX_START + BAREBOX_LENGTH)
> +#define NPE_A_LENGTH         0x05000
> +#define NPE_B_START          (NPE_A_START + NPE_A_LENGTH)
> +#define NPE_B_LENGTH         0x03000
> +#define NPE_C_START          (NPE_B_START + NPE_B_LENGTH)
> +#define NPE_C_LENGTH         0x04000
> +#define NPE_ENV0_START       (NPE_C_START + NPE_C_LENGTH)
> +#define NPE_ENV0_LENGTH      0x20000
I prefer we use a fs to store it so we can share it Linux
with a cramfs at least
> +
> +static struct device_d cfi_dev = {
> +	.name     = "cfi_flash",
> +	.map_base = IXP4XX_EXP_BASE(0),
> +	.size     = 16 * 1024 * 1024,
> +};
> +
> +static struct eth_plat_info eth_pinfo[2] = {
> +	{
> +		.regs     = IXP4XX_EthB_BASE,
> +		.npe      = 1,
> +		.phy      = 0,
> +		.rxq      = 20,
> +		.txreadyq = 29,
> +	}, {
> +		.regs     = IXP4XX_EthC_BASE,
> +		.npe      = 2,
> +		.phy      = 1,
> +		.rxq      = 21,
> +		.txreadyq = 30,
> +	}
> +};
> +
> +
> +	sdram_dev.size = __raw_readl(IXP4XX_EXP_BASE(0) + CFG_SDRAM_SIZE);
how about check the data before register
and if not good use the minimum memory size for the hardware design
> +	i = register_device(&sdram_dev);
> +	if (i)
> +		goto out;
> +
> +	armlinux_add_dram(&sdram_dev);
> +	armlinux_set_bootparams((void *)(0x00000100));
> +	armlinux_set_architecture(MACH_TYPE_GORAMO_MLR);
> +
> +out:
> +	return i;
> +}

 +
> +static inline void qmgr_put_entry(unsigned int queue, u32 val)
> +{
> +#if DEBUG_QMGR
> +	BUG_ON(!qmgr_queue_descs[queue]); /* not yet requested */
> +
> +	fprintf(stderr, "Queue %s(%i) put %X\n",
> +		qmgr_queue_descs[queue], queue, val);
please use debug() instead of fprintf so no need of ifdef if no BUG_ON
and it will be good to be able to enable the DEBUG via Kconfig

please avoid the #if 0
if no need remove it or use a CONFIG

othersize looks fine

I will test it on the nslu2 later

Best Regards,
J.



More information about the barebox mailing list