From: Mugunthan V N Date: Mon, 8 Jul 2013 10:34:37 +0000 (+0530) Subject: drivers: net: cpsw: remove hard coding bd ram for cpsw X-Git-Tag: v2013.10-rc1~22^2~68 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2bf36ac638ab2db9f0295aa47064976eeebf80c1;p=oweals%2Fu-boot.git drivers: net: cpsw: remove hard coding bd ram for cpsw BD ram address may vary in various SOC, so removing the hardcoding and passing the same information through platform data Signed-off-by: Mugunthan V N --- diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c index 7138d739e4..15e249d605 100644 --- a/board/ti/am335x/board.c +++ b/board/ti/am335x/board.c @@ -435,6 +435,7 @@ static struct cpsw_platform_data cpsw_data = { .ale_entries = 1024, .host_port_reg_ofs = 0x108, .hw_stats_reg_ofs = 0x900, + .bd_ram_ofs = 0x2000, .mac_control = (1 << 5), .control = cpsw_control, .host_port_num = 0, diff --git a/board/ti/ti814x/evm.c b/board/ti/ti814x/evm.c index 17fba5aecd..c469645ff3 100644 --- a/board/ti/ti814x/evm.c +++ b/board/ti/ti814x/evm.c @@ -207,6 +207,7 @@ static struct cpsw_platform_data cpsw_data = { .ale_entries = 1024, .host_port_reg_ofs = 0x28, .hw_stats_reg_ofs = 0x400, + .bd_ram_ofs = 0x2000, .mac_control = (1 << 5), .control = cpsw_control, .host_port_num = 0, diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c index 379b679d2e..dc0a2be23b 100644 --- a/drivers/net/cpsw.c +++ b/drivers/net/cpsw.c @@ -51,8 +51,6 @@ #define CPDMA_RXCP_VER1 0x160 #define CPDMA_RXCP_VER2 0x260 -#define CPDMA_RAM_ADDR 0x4a102000 - /* Descriptor mode bits */ #define CPDMA_DESC_SOP BIT(31) #define CPDMA_DESC_EOP BIT(30) @@ -984,12 +982,12 @@ int cpsw_register(struct cpsw_platform_data *data) return -ENOMEM; } - priv->descs = (void *)CPDMA_RAM_ADDR; priv->host_port = data->host_port_num; priv->regs = regs; priv->host_port_regs = regs + data->host_port_reg_ofs; priv->dma_regs = regs + data->cpdma_reg_ofs; priv->ale_regs = regs + data->ale_reg_ofs; + priv->descs = (void *)regs + data->bd_ram_ofs; int idx = 0; diff --git a/include/cpsw.h b/include/cpsw.h index 296b0e557f..743cb96e7e 100644 --- a/include/cpsw.h +++ b/include/cpsw.h @@ -39,6 +39,7 @@ struct cpsw_platform_data { int ale_entries; /* ale table size */ u32 host_port_reg_ofs; /* cpdma host port registers */ u32 hw_stats_reg_ofs; /* cpsw hw stats counters */ + u32 bd_ram_ofs; /* Buffer Descriptor RAM offset */ u32 mac_control; struct cpsw_slave_data *slave_data; void (*control)(int enabled);