1/* $NetBSD: ixp425_a4x_space.c,v 1.2 2005/12/11 12:16:51 christos Exp $ */ 2 3/* 4 * Copyright 2003 Wasabi Systems, Inc. 5 * All rights reserved. 6 * 7 * Written by Steve C. Woodford for Wasabi Systems, Inc. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 1. Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 2. Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * 3. All advertising materials mentioning features or use of this software 18 * must display the following acknowledgement: 19 * This product includes software developed for the NetBSD Project by 20 * Wasabi Systems, Inc. 21 * 4. The name of Wasabi Systems, Inc. may not be used to endorse 22 * or promote products derived from this software without specific prior 23 * written permission. 24 * 25 * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND 26 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 27 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 28 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL WASABI SYSTEMS, INC 29 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 30 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 31 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 33 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 34 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 * POSSIBILITY OF SUCH DAMAGE. 36 */ 37 38/* 39 * Bus space tag for 8/16-bit devices on 32-bit bus. 40 * all registers are located at the address of multiple of 4. 41 * 42 * Based on pxa2x0_a4x_space.c 43 */ 44 45#include <sys/cdefs.h> 46__FBSDID("$FreeBSD$"); 47 48#include <sys/param.h> 49#include <sys/systm.h> 50#include <sys/bus.h> 51 52#include <machine/pcb.h> 53 54#include <vm/vm.h> 55#include <vm/vm_kern.h> 56#include <vm/pmap.h> 57#include <vm/vm_page.h> 58#include <vm/vm_extern.h> 59 60#include <machine/bus.h> 61 62/* Prototypes for all the bus_space structure functions */ 63bs_protos(a4x); 64bs_protos(generic); 65 66struct bus_space ixp425_a4x_bs_tag = { 67 /* cookie */ 68 .bs_privdata = (void *) 0, 69 70 /* mapping/unmapping */ 71 .bs_map = generic_bs_map, 72 .bs_unmap = generic_bs_unmap, 73 .bs_subregion = generic_bs_subregion, 74 75 /* allocation/deallocation */ 76 .bs_alloc = generic_bs_alloc, /* XXX not implemented */ 77 .bs_free = generic_bs_free, /* XXX not implemented */ 78 79 /* barrier */ 80 .bs_barrier = generic_bs_barrier, 81 82 /* read (single) */ 83 .bs_r_1 = a4x_bs_r_1, 84 .bs_r_2 = a4x_bs_r_2, 85 .bs_r_4 = a4x_bs_r_4, 86 87 /* read multiple */ 88 .bs_rm_1 = a4x_bs_rm_1, 89 .bs_rm_2 = a4x_bs_rm_2, 90 91 /* read region */ 92 /* XXX not implemented */ 93 94 /* write (single) */ 95 .bs_w_1 = a4x_bs_w_1, 96 .bs_w_2 = a4x_bs_w_2, 97 .bs_w_4 = a4x_bs_w_4, 98 99 /* write multiple */ 100 .bs_wm_1 = a4x_bs_wm_1, 101 .bs_wm_2 = a4x_bs_wm_2, 102 103 /* write region */ 104 /* XXX not implemented */ 105 106 /* set multiple */ 107 /* XXX not implemented */ 108 109 /* set region */ 110 /* XXX not implemented */ 111 112 /* copy */ 113 /* XXX not implemented */ 114}; 115