mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
Use pmap_change_attr() to setup a write combine attribute for our
device memory, rather than relying on the less reliable MTRR method used by mem_range_attr_set(). Glanced at by: jhb
This commit is contained in:
parent
ca222e2e54
commit
c2c14a696c
1 changed files with 14 additions and 1 deletions
|
|
@ -80,6 +80,10 @@ __FBSDID("$FreeBSD$");
|
|||
#include <vm/vm.h> /* for pmap_mapdev() */
|
||||
#include <vm/pmap.h>
|
||||
|
||||
#if defined(__i386) || defined(__amd64)
|
||||
#include <machine/specialreg.h>
|
||||
#endif
|
||||
|
||||
#include <dev/mxge/mxge_mcp.h>
|
||||
#include <dev/mxge/mcp_gen_header.h>
|
||||
#include <dev/mxge/if_mxge_var.h>
|
||||
|
|
@ -146,8 +150,17 @@ mxge_enable_wc(mxge_softc_t *sc)
|
|||
vm_offset_t len;
|
||||
int err, action;
|
||||
|
||||
pa = rman_get_start(sc->mem_res);
|
||||
len = rman_get_size(sc->mem_res);
|
||||
#if defined(__i386) || defined(__amd64)
|
||||
err = pmap_change_attr((vm_offset_t) sc->sram,
|
||||
len, PAT_WRITE_COMBINING);
|
||||
if (err == 0)
|
||||
return;
|
||||
else
|
||||
device_printf(sc->dev, "pmap_change_attr failed, %d\n",
|
||||
err);
|
||||
#endif
|
||||
pa = rman_get_start(sc->mem_res);
|
||||
mrdesc.mr_base = pa;
|
||||
mrdesc.mr_len = len;
|
||||
mrdesc.mr_flags = MDF_WRITECOMBINE;
|
||||
|
|
|
|||
Loading…
Reference in a new issue