Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src



"Antti Kantee" <pooka%netbsd.org@localhost> wrote:
> Add support for the Extensible MIPS ("eMIPS") platform.  The
> NetBSD/emips port runs on Xilinx and Beecube FPGA systems and the
> Giano system simulator.
> 
> eMIPS is a platform developed at Microsoft Research for researching
> reconfigurable computing.  eMIPS allows dynamic loading and scheduling
> of application-specific circuits for the purpose of accelerating
> computations based on the current workload.
> 
> NetBSD eMIPS support for NetBSD 4.x was written at Microsoft Research
> by Alessandro Forin and Neil Pittman.  Microsoft Corporation has
> donated full copyright to The NetBSD Foundation.
> 
> Platform support for eMIPS is the first part of Microsoft's
> contribution.  The second part includes the hardware accelerator
> framework and will be proposed on tech-kern soon.

Interesting!

> <...>
> cvs rdiff -u -r1.132 -r1.133 src/sys/arch/mips/mips/vm_machdep.c cvs rdiff -u 
> -r1.5 -r1.6

> +/*
> + * Make a kernel mapping valid for I/O, e.g. non-cachable.
> + * Alignment and length constraints are as-if NBPG==PAGE_SIZE.
> + */
> +int
> +ioaccess(vaddr_t vaddr, paddr_t paddr, vsize_t len)
> +{
> +
> +     while (len > PAGE_SIZE) {
> +             pmap_kenter_pa(vaddr, paddr, VM_PROT_WRITE, 0);
> +             len -= PAGE_SIZE;
> +             vaddr += PAGE_SIZE;
> +             paddr += PAGE_SIZE;
> +     }
> +
> +     if (len) {
> +             /* We could warn.. */
> +             pmap_kenter_pa(vaddr, paddr, VM_PROT_WRITE, 0);
> +     }
> +
> +     /* BUGBUG should use pmap_enter() instead and check results! */
> +     return 0;
> +}
> +
> +/*
> + * Opposite to the above: just forget the mapping.
> + */
> +int
> +iounaccess(vaddr_t vaddr, vsize_t len)
> +{
> +
> +     pmap_kremove(vaddr, len);
> +     return 0;
> +}

What is this miracle, however?

-- 
Mindaugas


Home | Main Index | Thread Index | Old Index