gxreg.h revision 235117
1180103Sdas/*-
2180103Sdas * Copyright (c) 2008-2012 Juli Mallett <jmallett@FreeBSD.org>
3180103Sdas * All rights reserved.
4180103Sdas *
5180103Sdas * Redistribution and use in source and binary forms, with or without
6180103Sdas * modification, are permitted provided that the following conditions
7180103Sdas * are met:
8180103Sdas * 1. Redistributions of source code must retain the above copyright
9180103Sdas *    notice, this list of conditions and the following disclaimer.
10180103Sdas * 2. Redistributions in binary form must reproduce the above copyright
11180103Sdas *    notice, this list of conditions and the following disclaimer in the
12180103Sdas *    documentation and/or other materials provided with the distribution.
13180103Sdas *
14180103Sdas * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15180103Sdas * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16180103Sdas * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17180103Sdas * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18180103Sdas * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19180103Sdas * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20180103Sdas * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21180103Sdas * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22180103Sdas * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23180103Sdas * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24180103Sdas * SUCH DAMAGE.
25180103Sdas *
26180103Sdas * $FreeBSD: head/sys/dev/gxemul/ether/gxreg.h 235117 2012-05-07 04:15:46Z jmallett $
27180103Sdas */
28180103Sdas
29180103Sdas#ifndef	_DEV_GXEMUL_ETHER_GXREG_H_
30180103Sdas#define	_DEV_GXEMUL_ETHER_GXREG_H_
31180103Sdas
32180103Sdas#define	GXEMUL_ETHER_DEV_BASE		(0x14000000)
33180103Sdas#define	GXEMUL_ETHER_DEV_IRQ		(3)
34180103Sdas
35180103Sdas#define	GXEMUL_ETHER_DEV_MTU		(0x4000)
36180103Sdas
37180103Sdas#define	GXEMUL_ETHER_DEV_BUFFER		(0x0000)
38180103Sdas#define	GXEMUL_ETHER_DEV_STATUS		(0x4000)
39180103Sdas#define	GXEMUL_ETHER_DEV_LENGTH		(0x4010)
40291840Sngie#define	GXEMUL_ETHER_DEV_COMMAND	(0x4020)
41291840Sngie#define	GXEMUL_ETHER_DEV_MAC		(0x4040)
42180103Sdas
43180103Sdas#define	GXEMUL_ETHER_DEV_FUNCTION(f)					\
44180103Sdas	(volatile uint64_t *)MIPS_PHYS_TO_DIRECT_UNCACHED(GXEMUL_ETHER_DEV_BASE + (f))
45180103Sdas#define	GXEMUL_ETHER_DEV_READ(f)					\
46180103Sdas	(volatile uint64_t)*GXEMUL_ETHER_DEV_FUNCTION(f)
47180103Sdas#define	GXEMUL_ETHER_DEV_WRITE(f, v)					\
48180103Sdas	*GXEMUL_ETHER_DEV_FUNCTION(f) = (v)
49180103Sdas
50180103Sdas#define	GXEMUL_ETHER_DEV_STATUS_RX_OK	(0x01)
51180103Sdas#define	GXEMUL_ETHER_DEV_STATUS_RX_MORE	(0x02)
52180103Sdas
53180103Sdas#define	GXEMUL_ETHER_DEV_COMMAND_RX	(0x00)
54180103Sdas#define	GXEMUL_ETHER_DEV_COMMAND_TX	(0x01)
55180103Sdas
56180103Sdas#endif /* !_DEV_GXEMUL_ETHER_GXREG_H_ */
57180103Sdas