Deleted Added
full compact
37c37
< __FBSDID("$FreeBSD: head/sys/arm/xscale/ixp425/ixp425_space.c 164426 2006-11-19 23:55:23Z sam $");
---
> __FBSDID("$FreeBSD: head/sys/arm/xscale/ixp425/ixp425_space.c 177887 2008-04-03 18:22:08Z raj $");
61d60
< bs_protos(ixp425);
70,72c69,71
< .bs_map = ixp425_bs_map,
< .bs_unmap = ixp425_bs_unmap,
< .bs_subregion = ixp425_bs_subregion,
---
> .bs_map = generic_bs_map,
> .bs_unmap = generic_bs_unmap,
> .bs_subregion = generic_bs_subregion,
75,76c74,75
< .bs_alloc = ixp425_bs_alloc,
< .bs_free = ixp425_bs_free,
---
> .bs_alloc = generic_bs_alloc,
> .bs_free = generic_bs_free,
79c78
< .bs_barrier = ixp425_bs_barrier,
---
> .bs_barrier = generic_bs_barrier,
132,215d130
<
< int
< ixp425_bs_map(void *t, bus_addr_t bpa, bus_size_t size,
< int cacheable, bus_space_handle_t *bshp)
< {
< const struct pmap_devmap *pd;
< vm_paddr_t startpa, endpa, pa, offset;
< vm_offset_t va;
< pt_entry_t *pte;
<
< if ((pd = pmap_devmap_find_pa(bpa, size)) != NULL) {
< /* Device was statically mapped. */
< *bshp = pd->pd_va + (bpa - pd->pd_pa);
< return (0);
< }
<
< endpa = round_page(bpa + size);
< offset = bpa & PAGE_MASK;
< startpa = trunc_page(bpa);
<
< va = kmem_alloc(kernel_map, endpa - startpa);
< if (va == 0)
< return (ENOMEM);
<
< *bshp = va + offset;
<
< for (pa = startpa; pa < endpa; pa += PAGE_SIZE, va += PAGE_SIZE) {
< pmap_kenter(va, pa);
< pte = vtopte(va);
< *pte &= ~L2_S_CACHE_MASK;
< PTE_SYNC(pte);
< }
<
< return (0);
< }
<
< void
< ixp425_bs_unmap(void *t, bus_space_handle_t h, bus_size_t size)
< {
< vm_offset_t va, endva;
<
< if (pmap_devmap_find_va((vm_offset_t)t, size) != NULL) {
< /* Device was statically mapped; nothing to do. */
< return;
< }
<
< endva = round_page((vm_offset_t)t + size);
< va = trunc_page((vm_offset_t)t);
<
< while (va < endva) {
< pmap_kremove(va);
< va += PAGE_SIZE;
< }
< kmem_free(kernel_map, va, endva - va);
< }
<
< int
< ixp425_bs_alloc(void *t, bus_addr_t rstart, bus_addr_t rend,
< bus_size_t size, bus_size_t alignment, bus_size_t boundary, int cacheable,
< bus_addr_t *bpap, bus_space_handle_t *bshp)
< {
< panic("ixp425_bs_alloc(): not implemented");
< }
<
< void
< ixp425_bs_free(void *t, bus_space_handle_t bsh, bus_size_t size)
< {
< panic("ixp425_bs_free(): not implemented");
< }
<
< int
< ixp425_bs_subregion(void *t, bus_space_handle_t bsh, bus_size_t offset,
< bus_size_t size, bus_space_handle_t *nbshp)
< {
< *nbshp = bsh + offset;
< return (0);
< }
<
< void
< ixp425_bs_barrier(void *t, bus_space_handle_t bsh, bus_size_t offset,
< bus_size_t len, int flags)
< {
< /* Nothing to do. */
< }