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