Lines Matching +full:0 +full:- +full:9 +full:a +full:- +full:z

11 /* The Amiganet is a Zorro-II board made by Hydra Systems. It contains a    */
12 /* NS8390 NIC (network interface controller) clone, 16 or 64K on-board RAM */
13 /* and 10BASE-2 (thin coax) and AUI connectors. */
33 #define EI_SHIFT(x) (ei_local->reg_offset[x])
40 "8390.c:v1.10cvs 9/23/94 Donald Becker (becker@cesdis.gsfc.nasa.gov)\n";
44 #define NE_EN0_DCFG (0x0e*2)
46 #define NESM_START_PG 0x0 /* First page of TX buffer */
47 #define NESM_STOP_PG 0x40 /* Last page +1 of RX ring */
49 #define HYDRA_NIC_BASE 0xffe1
50 #define HYDRA_ADDRPROM 0xffc0
51 #define HYDRA_VERSION "v3.0alpha"
53 #define WORDSWAP(a) ((((a)>>8)&0xff) | ((a)<<8)) argument
56 static int hydra_init_one(struct zorro_dev *z,
58 static int hydra_init(struct zorro_dev *z);
68 static void hydra_remove_one(struct zorro_dev *z);
72 { 0 }
83 static int hydra_init_one(struct zorro_dev *z, in hydra_init_one() argument
88 if (!request_mem_region(z->resource.start, 0x10000, "Hydra")) in hydra_init_one()
89 return -EBUSY; in hydra_init_one()
90 if ((err = hydra_init(z))) { in hydra_init_one()
91 release_mem_region(z->resource.start, 0x10000); in hydra_init_one()
92 return -EBUSY; in hydra_init_one()
94 return 0; in hydra_init_one()
112 static int hydra_init(struct zorro_dev *z) in hydra_init() argument
115 unsigned long board = (unsigned long)ZTWO_VADDR(z->resource.start); in hydra_init()
123 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, in hydra_init()
124 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e, in hydra_init()
127 dev = ____alloc_ei_netdev(0); in hydra_init()
129 return -ENOMEM; in hydra_init()
131 for (j = 0; j < ETH_ALEN; j++) in hydra_init()
132 dev->dev_addr[j] = *((u8 *)(board + HYDRA_ADDRPROM + 2*j)); in hydra_init()
135 z_writeb(0x4b, ioaddr + NE_EN0_DCFG); in hydra_init()
139 dev->base_addr = ioaddr; in hydra_init()
140 dev->irq = IRQ_AMIGA_PORTS; in hydra_init()
146 return -EAGAIN; in hydra_init()
163 dev->netdev_ops = &hydra_netdev_ops; in hydra_init()
164 __NS8390_init(dev, 0); in hydra_init()
173 zorro_set_drvdata(z, dev); in hydra_init()
176 dev->name, &z->resource, dev->dev_addr); in hydra_init()
178 return 0; in hydra_init()
184 return 0; in hydra_open()
193 return 0; in hydra_close()
204 int nic_base = dev->base_addr; in hydra_get_8390_hdr()
206 unsigned long hdr_start= (nic_base-HYDRA_NIC_BASE) + in hydra_get_8390_hdr()
207 ((ring_page - NESM_START_PG)<<8); in hydra_get_8390_hdr()
220 unsigned long nic_base = dev->base_addr; in hydra_block_input()
221 unsigned long mem_base = nic_base - HYDRA_NIC_BASE; in hydra_block_input()
222 unsigned long xfer_start = mem_base + ring_offset - (NESM_START_PG<<8); in hydra_block_input()
228 int semi_count = (mem_base + (NESM_STOP_PG<<8)) - xfer_start; in hydra_block_input()
230 z_memcpy_fromio(skb->data,xfer_start,semi_count); in hydra_block_input()
231 count -= semi_count; in hydra_block_input()
232 z_memcpy_fromio(skb->data+semi_count, mem_base, count); in hydra_block_input()
234 z_memcpy_fromio(skb->data, xfer_start,count); in hydra_block_input()
241 unsigned long nic_base = dev->base_addr; in hydra_block_output()
242 unsigned long mem_base = nic_base - HYDRA_NIC_BASE; in hydra_block_output()
247 z_memcpy_toio(mem_base+((start_page - NESM_START_PG)<<8), buf, count); in hydra_block_output()
250 static void hydra_remove_one(struct zorro_dev *z) in hydra_remove_one() argument
252 struct net_device *dev = zorro_get_drvdata(z); in hydra_remove_one()
256 release_mem_region(ZTWO_PADDR(dev->base_addr)-HYDRA_NIC_BASE, 0x10000); in hydra_remove_one()