summaryrefslogtreecommitdiff
path: root/sys/dev/pci/pciide_geode_reg.h
blob: ed176cc880b156fcf861171dac1a449efa865371 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/*	$NetBSD: pciide_geode_reg.h,v 1.6 2009/10/19 18:41:15 bouyer Exp $	*/

/*
 * Copyright (c) 2004 Manuel Bouyer.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 */

#define CS5530_PIO_REG(chan, drv)	(0x20 + (chan) * 0x10 + (drv) * 0x8)
#define CS5530_DMA_REG(chan, drv)	(0x24 + (chan) * 0x10 + (drv) * 0x8)
#define CS5530_DMA_REG_PIO_FORMAT	0x80000000 /* select PIO format 1 */
#define CS5530_DMA_REG_UDMA		0x00100000 /* enable Ultra-DMA */

/*
 * Recommended values from the cs5530 data sheet.
 * Note that the udma values include CS5530_DMA_REG_UDMA.
 * However, from the datasheet bits 30-21 should be reserved, yet
 * geode_udma sets bit 23 to 1. I don't know if it's the definition of
 * DMA_REG_UDMA which is wrong (bit 23 instead of 20) or these values.
 */
static const int32_t geode_cs5530_pio[] __unused =
    {0x9172d132, 0x21717121, 0x00803020, 0x20102010, 0x00100010};
static const int32_t geode_cs5530_dma[] __unused =
    {0x00077771, 0x00012121, 0x00002020};
static const int32_t geode_cs5530_udma[] __unused =
    {0x00921250, 0x00911140, 0x00911030};

#define SC1100_PIO_REG(chan, drv)	(0x40 + (chan) * 0x10 + (drv) * 0x8)
#define SC1100_DMA_REG(chan, drv)	(0x44 + (chan) * 0x10 + (drv) * 0x8)

/* Timings from FreeBSD */
static const int32_t geode_sc1100_pio[] __unused =
    {0x9172d132, 0x21717121, 0x00803020, 0x20102010, 0x00100010, 0x00803020,
     0x20102010, 0x00100010, 0x00100010, 0x00100010, 0x00100010};
static const int32_t geode_sc1100_dma[] __unused =
    {0x80077771, 0x80012121, 0x80002020};
static const int32_t geode_sc1100_udma[] __unused =
    {0x80921250, 0x80911140, 0x80911030};
ight'> non-connected sockets. 2009-01-30Call soisconnected() in PRU_CONNECT for udp sockets too.pooka 2009-01-27* read TCP sockets in cluster-sized chunks instead of IP_MAXPACKET.pooka (it might be a better to chain a few clusters into the iov instead of just one since we are making the syscall anyway) * don't overwrite the useful error value 2009-01-27Hold softnet_lock only when we need it.pooka 2009-01-26* support PRU_SOCK/PEERADDRpooka * soisdisconnected() TCP sockets if read returns a non-transient error or 0 2009-01-26Convert compile-time SOCKIN_NOTHREADS into runtime rump_threads check.pooka 2008-12-18__KERNEL_RCSIDpooka 2008-11-26Add dummy pr_ctloutput. I'm sure I had one at some point, sincepooka it's required for rump_nfs to work, but I guess I lost it somewhere. (yes, it should actually be implemented also) 2008-11-25Make sockin radix-capable.pooka 2008-11-25Support PRU_BIND / PRU_LISTEN / PRU_ACCEPT in sockin.pooka 2008-10-26Remove trailing whitespace.minskim 2008-10-16appease 64bit gccpooka 2008-10-15Mostly support TCP, mostly meaning "client-side TCP", since listen,pooka accept etc. is not supported yet. Disconnect is not really supported either, but doesn't matter in most cases. 2008-10-02Add a very simplistic PF_INET/SOCK_DGRAM domain/proto implementation,pooka which delegates the work to host kernel sockets. This does not run the entire kernel TCP/IP stack in userspace and therefore does not require the ability to send or receive raw packets. This implies that root priviledges are not required. As already said above, only supports UDPv4 for now. Extending should be easy.