diff options
| author | Wolfgang Denk <wd@denx.de> | 2007-11-26 19:15:04 +0100 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2007-11-26 19:15:04 +0100 | 
| commit | fe08fb658008cd4be54758faa5d382a2b3b1f86a (patch) | |
| tree | a932a892ff4702d91d51ea13cf81be4e4f6c9d27 /drivers/net/bcm570x_mm.h | |
| parent | cfa4c9d8996d5949f615553c220a06c9fe6395cc (diff) | |
| parent | 87ddedd6ad804427ce125ceaa076d7a4f74e9d5d (diff) | |
| download | olio-uboot-2014.01-fe08fb658008cd4be54758faa5d382a2b3b1f86a.tar.xz olio-uboot-2014.01-fe08fb658008cd4be54758faa5d382a2b3b1f86a.zip | |
Merge commit '87ddedd'
Diffstat (limited to 'drivers/net/bcm570x_mm.h')
| -rw-r--r-- | drivers/net/bcm570x_mm.h | 158 | 
1 files changed, 158 insertions, 0 deletions
| diff --git a/drivers/net/bcm570x_mm.h b/drivers/net/bcm570x_mm.h new file mode 100644 index 000000000..ff5302f47 --- /dev/null +++ b/drivers/net/bcm570x_mm.h @@ -0,0 +1,158 @@ + +/******************************************************************************/ +/*                                                                            */ +/* Broadcom BCM5700 Linux Network Driver, Copyright (c) 2000 Broadcom         */ +/* Corporation.                                                               */ +/* All rights reserved.                                                       */ +/*                                                                            */ +/* 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, located in the file LICENSE.                 */ +/*                                                                            */ +/******************************************************************************/ + +#ifndef MM_H +#define MM_H + +#define __raw_readl readl +#define __raw_writel writel + +#define BIG_ENDIAN_HOST 1 +#define readl(addr) (*(volatile unsigned int*)(addr)) +#define writel(b,addr) ((*(volatile unsigned int *) (addr)) = (b)) + +/* Define memory barrier function here if needed */ +#define wmb() +#define membar() +#include <common.h> +#include <asm/types.h> +#include "bcm570x_lm.h" +#include "bcm570x_queue.h" +#include "tigon3.h" +#include <pci.h> + +#define FALSE 0 +#define TRUE  1 +#define ERROR -1 + +#if DBG +#define STATIC +#else +#define STATIC static +#endif + +extern int MM_Packet_Desc_Size; + +#define MM_PACKET_DESC_SIZE MM_Packet_Desc_Size + +DECLARE_QUEUE_TYPE (UM_RX_PACKET_Q, MAX_RX_PACKET_DESC_COUNT + 1); + +#define MAX_MEM 16 + +/* Synch */ +typedef int mutex_t; +typedef int spinlock_t; + +/* Embedded device control */ +typedef struct _UM_DEVICE_BLOCK { +	LM_DEVICE_BLOCK lm_dev; +	pci_dev_t pdev; +	char *name; +	void *mem_list[MAX_MEM]; +	dma_addr_t dma_list[MAX_MEM]; +	int mem_size_list[MAX_MEM]; +	int mem_list_num; +	int mtu; +	int index; +	int opened; +	int delayed_link_ind;	/* Delay link status during initial load */ +	int adapter_just_inited;	/* the first few seconds after init. */ +	int spurious_int;	/* new -- unsupported */ +	int timer_interval; +	int adaptive_expiry; +	int crc_counter_expiry;	/* new -- unsupported */ +	int poll_tib_expiry;	/* new -- unsupported */ +	int tx_full; +	int tx_queued; +	int line_speed;		/* in Mbps, 0 if link is down */ +	UM_RX_PACKET_Q rx_out_of_buf_q; +	int rx_out_of_buf; +	int rx_low_buf_thresh;	/* changed to rx_buf_repl_thresh */ +	int rx_buf_repl_panic_thresh; +	int rx_buf_align;	/* new -- unsupported */ +	int do_global_lock; +	mutex_t global_lock; +	mutex_t undi_lock; +	long undi_flags; +	volatile int interrupt; +	int tasklet_pending; +	int tasklet_busy;	/* new -- unsupported */ +	int rx_pkt; +	int tx_pkt; +#ifdef NICE_SUPPORT		/* unsupported, this is a linux ioctl */ +	void (*nice_rx) (void *, void *); +	void *nice_ctx; +#endif				/* NICE_SUPPORT */ +	int rx_adaptive_coalesce; +	unsigned int rx_last_cnt; +	unsigned int tx_last_cnt; +	unsigned int rx_curr_coalesce_frames; +	unsigned int rx_curr_coalesce_ticks; +	unsigned int tx_curr_coalesce_frames;	/* new -- unsupported */ +#if TIGON3_DEBUG		/* new -- unsupported */ +	uint tx_zc_count; +	uint tx_chksum_count; +	uint tx_himem_count; +	uint rx_good_chksum_count; +#endif +	unsigned int rx_bad_chksum_count;	/* new -- unsupported */ +	unsigned int rx_misc_errors;	/* new -- unsupported */ +} UM_DEVICE_BLOCK, *PUM_DEVICE_BLOCK; + +/* Physical/PCI DMA address */ +typedef union { +	dma_addr_t dma_map; +} dma_map_t; + +/* Packet */ +typedef struct +    _UM_PACKET { +	LM_PACKET lm_packet; +	void *skbuff;		/* Address of packet buffer */ +} UM_PACKET, *PUM_PACKET; + +#define MM_ACQUIRE_UNDI_LOCK(_pDevice) +#define MM_RELEASE_UNDI_LOCK(_pDevice) +#define MM_ACQUIRE_INT_LOCK(_pDevice) +#define MM_RELEASE_INT_LOCK(_pDevice) +#define MM_UINT_PTR(_ptr)   ((unsigned long) (_ptr)) + +/* Macro for setting 64bit address struct */ +#define set_64bit_addr(paddr, low, high) \ +	(paddr)->Low = low;             \ +	(paddr)->High = high; + +/* Assume that PCI controller's view of host memory is same as host */ + +#define MEM_TO_PCI_PHYS(addr) (addr) + +extern void MM_SetAddr (LM_PHYSICAL_ADDRESS * paddr, dma_addr_t addr); +extern void MM_SetT3Addr (T3_64BIT_HOST_ADDR * paddr, dma_addr_t addr); +extern void MM_MapTxDma (PLM_DEVICE_BLOCK pDevice, +			 struct _LM_PACKET *pPacket, T3_64BIT_HOST_ADDR * paddr, +			 LM_UINT32 * len, int frag); +extern void MM_MapRxDma (PLM_DEVICE_BLOCK pDevice, +			 struct _LM_PACKET *pPacket, +			 T3_64BIT_HOST_ADDR * paddr); + +/* BSP needs to provide sysUsecDelay and sysSerialPrintString */ +extern void sysSerialPrintString (char *s); +#define MM_Wait(usec) udelay(usec) + +/* Define memory barrier function here if needed */ +#define wmb() + +#if 0 +#define cpu_to_le32(val) LONGSWAP(val) +#endif +#endif				/* MM_H */ |