xref: /freebsd/sys/riscv/riscv/busdma_machdep.c (revision 28029b68)
128029b68SRuslan Bukin /*-
228029b68SRuslan Bukin  * Copyright (c) 1997, 1998 Justin T. Gibbs.
328029b68SRuslan Bukin  *
428029b68SRuslan Bukin  * Redistribution and use in source and binary forms, with or without
528029b68SRuslan Bukin  * modification, are permitted provided that the following conditions
628029b68SRuslan Bukin  * are met:
728029b68SRuslan Bukin  * 1. Redistributions of source code must retain the above copyright
828029b68SRuslan Bukin  *    notice, this list of conditions, and the following disclaimer,
928029b68SRuslan Bukin  *    without modification, immediately at the beginning of the file.
1028029b68SRuslan Bukin  * 2. The name of the author may not be used to endorse or promote products
1128029b68SRuslan Bukin  *    derived from this software without specific prior written permission.
1228029b68SRuslan Bukin  *
1328029b68SRuslan Bukin  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1428029b68SRuslan Bukin  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1528029b68SRuslan Bukin  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1628029b68SRuslan Bukin  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
1728029b68SRuslan Bukin  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1828029b68SRuslan Bukin  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
1928029b68SRuslan Bukin  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2028029b68SRuslan Bukin  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2128029b68SRuslan Bukin  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2228029b68SRuslan Bukin  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2328029b68SRuslan Bukin  * SUCH DAMAGE.
2428029b68SRuslan Bukin  */
2528029b68SRuslan Bukin 
2628029b68SRuslan Bukin #include <sys/cdefs.h>
2728029b68SRuslan Bukin __FBSDID("$FreeBSD$");
2828029b68SRuslan Bukin 
2928029b68SRuslan Bukin #include <sys/param.h>
3028029b68SRuslan Bukin #include <sys/systm.h>
3128029b68SRuslan Bukin #include <sys/malloc.h>
3228029b68SRuslan Bukin #include <sys/bus.h>
3328029b68SRuslan Bukin #include <sys/kernel.h>
3428029b68SRuslan Bukin #include <sys/ktr.h>
3528029b68SRuslan Bukin #include <sys/lock.h>
3628029b68SRuslan Bukin #include <sys/memdesc.h>
3728029b68SRuslan Bukin #include <sys/mutex.h>
3828029b68SRuslan Bukin #include <sys/uio.h>
3928029b68SRuslan Bukin #include <vm/vm.h>
4028029b68SRuslan Bukin #include <vm/vm_extern.h>
4128029b68SRuslan Bukin #include <vm/pmap.h>
4228029b68SRuslan Bukin 
4328029b68SRuslan Bukin #include <machine/bus.h>
4428029b68SRuslan Bukin 
4528029b68SRuslan Bukin int
4628029b68SRuslan Bukin _bus_dmamap_load_phys(bus_dma_tag_t dmat, bus_dmamap_t map, vm_paddr_t buf,
4728029b68SRuslan Bukin     bus_size_t buflen, int flags, bus_dma_segment_t *segs, int *segp)
4828029b68SRuslan Bukin {
4928029b68SRuslan Bukin 
5028029b68SRuslan Bukin 	panic("busdma");
5128029b68SRuslan Bukin }
5228029b68SRuslan Bukin 
5328029b68SRuslan Bukin int
5428029b68SRuslan Bukin _bus_dmamap_load_ma(bus_dma_tag_t dmat, bus_dmamap_t map, struct vm_page **ma,
5528029b68SRuslan Bukin     bus_size_t tlen, int ma_offs, int flags, bus_dma_segment_t *segs,
5628029b68SRuslan Bukin     int *segp)
5728029b68SRuslan Bukin {
5828029b68SRuslan Bukin 
5928029b68SRuslan Bukin 	panic("busdma");
6028029b68SRuslan Bukin }
6128029b68SRuslan Bukin 
6228029b68SRuslan Bukin int
6328029b68SRuslan Bukin _bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf,
6428029b68SRuslan Bukin     bus_size_t buflen, pmap_t pmap, int flags, bus_dma_segment_t *segs,
6528029b68SRuslan Bukin     int *segp)
6628029b68SRuslan Bukin {
6728029b68SRuslan Bukin 
6828029b68SRuslan Bukin 	panic("busdma");
6928029b68SRuslan Bukin }
7028029b68SRuslan Bukin 
7128029b68SRuslan Bukin void
7228029b68SRuslan Bukin __bus_dmamap_waitok(bus_dma_tag_t dmat, bus_dmamap_t map,
7328029b68SRuslan Bukin     struct memdesc *mem, bus_dmamap_callback_t *callback, void *callback_arg)
7428029b68SRuslan Bukin {
7528029b68SRuslan Bukin 
7628029b68SRuslan Bukin 	panic("busdma");
7728029b68SRuslan Bukin }
7828029b68SRuslan Bukin 
7928029b68SRuslan Bukin bus_dma_segment_t *
8028029b68SRuslan Bukin _bus_dmamap_complete(bus_dma_tag_t dmat, bus_dmamap_t map,
8128029b68SRuslan Bukin     bus_dma_segment_t *segs, int nsegs, int error)
8228029b68SRuslan Bukin {
8328029b68SRuslan Bukin 
8428029b68SRuslan Bukin 	panic("busdma");
8528029b68SRuslan Bukin }
8628029b68SRuslan Bukin 
8728029b68SRuslan Bukin /*
8828029b68SRuslan Bukin  * Release the mapping held by map.
8928029b68SRuslan Bukin  */
9028029b68SRuslan Bukin void
9128029b68SRuslan Bukin _bus_dmamap_unload(bus_dma_tag_t dmat, bus_dmamap_t map)
9228029b68SRuslan Bukin {
9328029b68SRuslan Bukin 
9428029b68SRuslan Bukin 	panic("busdma");
9528029b68SRuslan Bukin }
9628029b68SRuslan Bukin 
9728029b68SRuslan Bukin void
9828029b68SRuslan Bukin _bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op)
9928029b68SRuslan Bukin {
10028029b68SRuslan Bukin 
10128029b68SRuslan Bukin 	panic("busdma");
10228029b68SRuslan Bukin }
103