[PATCH] myri10ge: define some previously hardwired firmware constants
Define some previously hardwired firmware constants. Signed-off-by: Brice Goglin <brice@myri.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
846050dd49
commit
e700f9f4a2
2 changed files with 23 additions and 8 deletions
|
@ -271,7 +271,7 @@ myri10ge_send_cmd(struct myri10ge_priv *mgp, u32 cmd,
|
||||||
struct mcp_cmd *buf;
|
struct mcp_cmd *buf;
|
||||||
char buf_bytes[sizeof(*buf) + 8];
|
char buf_bytes[sizeof(*buf) + 8];
|
||||||
struct mcp_cmd_response *response = mgp->cmd;
|
struct mcp_cmd_response *response = mgp->cmd;
|
||||||
char __iomem *cmd_addr = mgp->sram + MXGEFW_CMD_OFFSET;
|
char __iomem *cmd_addr = mgp->sram + MXGEFW_ETH_CMD;
|
||||||
u32 dma_low, dma_high, result, value;
|
u32 dma_low, dma_high, result, value;
|
||||||
int sleep_total = 0;
|
int sleep_total = 0;
|
||||||
|
|
||||||
|
@ -404,7 +404,7 @@ static void myri10ge_dummy_rdma(struct myri10ge_priv *mgp, int enable)
|
||||||
buf[4] = htonl(dma_low); /* dummy addr LSW */
|
buf[4] = htonl(dma_low); /* dummy addr LSW */
|
||||||
buf[5] = htonl(enable); /* enable? */
|
buf[5] = htonl(enable); /* enable? */
|
||||||
|
|
||||||
submit = mgp->sram + 0xfc01c0;
|
submit = mgp->sram + MXGEFW_BOOT_DUMMY_RDMA;
|
||||||
|
|
||||||
myri10ge_pio_copy(submit, &buf, sizeof(buf));
|
myri10ge_pio_copy(submit, &buf, sizeof(buf));
|
||||||
for (i = 0; mgp->cmd->data != MYRI10GE_NO_CONFIRM_DATA && i < 20; i++)
|
for (i = 0; mgp->cmd->data != MYRI10GE_NO_CONFIRM_DATA && i < 20; i++)
|
||||||
|
@ -600,7 +600,7 @@ static int myri10ge_load_firmware(struct myri10ge_priv *mgp)
|
||||||
buf[5] = htonl(8); /* where to copy to */
|
buf[5] = htonl(8); /* where to copy to */
|
||||||
buf[6] = htonl(0); /* where to jump to */
|
buf[6] = htonl(0); /* where to jump to */
|
||||||
|
|
||||||
submit = mgp->sram + 0xfc0000;
|
submit = mgp->sram + MXGEFW_BOOT_HANDOFF;
|
||||||
|
|
||||||
myri10ge_pio_copy(submit, &buf, sizeof(buf));
|
myri10ge_pio_copy(submit, &buf, sizeof(buf));
|
||||||
mb();
|
mb();
|
||||||
|
@ -1648,9 +1648,11 @@ static int myri10ge_open(struct net_device *dev)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mgp->mtrr >= 0) {
|
if (mgp->mtrr >= 0) {
|
||||||
mgp->tx.wc_fifo = (u8 __iomem *) mgp->sram + 0x200000;
|
mgp->tx.wc_fifo = (u8 __iomem *) mgp->sram + MXGEFW_ETH_SEND_4;
|
||||||
mgp->rx_small.wc_fifo = (u8 __iomem *) mgp->sram + 0x300000;
|
mgp->rx_small.wc_fifo =
|
||||||
mgp->rx_big.wc_fifo = (u8 __iomem *) mgp->sram + 0x340000;
|
(u8 __iomem *) mgp->sram + MXGEFW_ETH_RECV_SMALL;
|
||||||
|
mgp->rx_big.wc_fifo =
|
||||||
|
(u8 __iomem *) mgp->sram + MXGEFW_ETH_RECV_BIG;
|
||||||
} else {
|
} else {
|
||||||
mgp->tx.wc_fifo = NULL;
|
mgp->tx.wc_fifo = NULL;
|
||||||
mgp->rx_small.wc_fifo = NULL;
|
mgp->rx_small.wc_fifo = NULL;
|
||||||
|
@ -1841,7 +1843,8 @@ myri10ge_submit_req_wc(struct myri10ge_tx_buf *tx,
|
||||||
if (cnt > 0) {
|
if (cnt > 0) {
|
||||||
/* pad it to 64 bytes. The src is 64 bytes bigger than it
|
/* pad it to 64 bytes. The src is 64 bytes bigger than it
|
||||||
* needs to be so that we don't overrun it */
|
* needs to be so that we don't overrun it */
|
||||||
myri10ge_pio_copy(tx->wc_fifo + (cnt << 18), src, 64);
|
myri10ge_pio_copy(tx->wc_fifo + MXGEFW_ETH_SEND_OFFSET(cnt),
|
||||||
|
src, 64);
|
||||||
mb();
|
mb();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,7 +91,19 @@ struct mcp_kreq_ether_recv {
|
||||||
|
|
||||||
/* Commands */
|
/* Commands */
|
||||||
|
|
||||||
#define MXGEFW_CMD_OFFSET 0xf80000
|
#define MXGEFW_BOOT_HANDOFF 0xfc0000
|
||||||
|
#define MXGEFW_BOOT_DUMMY_RDMA 0xfc01c0
|
||||||
|
|
||||||
|
#define MXGEFW_ETH_CMD 0xf80000
|
||||||
|
#define MXGEFW_ETH_SEND_4 0x200000
|
||||||
|
#define MXGEFW_ETH_SEND_1 0x240000
|
||||||
|
#define MXGEFW_ETH_SEND_2 0x280000
|
||||||
|
#define MXGEFW_ETH_SEND_3 0x2c0000
|
||||||
|
#define MXGEFW_ETH_RECV_SMALL 0x300000
|
||||||
|
#define MXGEFW_ETH_RECV_BIG 0x340000
|
||||||
|
|
||||||
|
#define MXGEFW_ETH_SEND(n) (0x200000 + (((n) & 0x03) * 0x40000))
|
||||||
|
#define MXGEFW_ETH_SEND_OFFSET(n) (MXGEFW_ETH_SEND(n) - MXGEFW_ETH_SEND_4)
|
||||||
|
|
||||||
enum myri10ge_mcp_cmd_type {
|
enum myri10ge_mcp_cmd_type {
|
||||||
MXGEFW_CMD_NONE = 0,
|
MXGEFW_CMD_NONE = 0,
|
||||||
|
|
Loading…
Reference in a new issue