Page MenuHomeFreeBSD

D38944.id118931.diff
No OneTemporary

D38944.id118931.diff

diff --git a/sys/arm64/arm64/nexus.c b/sys/arm64/arm64/nexus.c
--- a/sys/arm64/arm64/nexus.c
+++ b/sys/arm64/arm64/nexus.c
@@ -83,6 +83,10 @@
struct resource_list nx_resources;
};
+static int force_np;
+SYSCTL_INT(_kern, OID_AUTO, force_nonposted, CTLFLAG_RDTUN, &force_np, 0,
+ "Force all devices to use non-posted device memory");
+
#define DEVTONX(dev) ((struct nexus_device *)device_get_ivars(dev))
static struct rman mem_rman;
@@ -373,7 +377,7 @@
{
struct resource_map_request args;
struct resource_map map;
- int err;
+ int err, use_np;
if ((err = rman_activate_resource(r)) != 0)
return (err);
@@ -386,7 +390,13 @@
case SYS_RES_MEMORY:
if ((rman_get_flags(r) & RF_UNMAPPED) == 0) {
resource_init_map_request(&args);
- if ((flags & BUS_SPACE_MAP_NONPOSTED) != 0)
+ use_np = (flags & BUS_SPACE_MAP_NONPOSTED) != 0 ||
+ force_np;
+ if (!use_np)
+ resource_int_value(device_get_name(child),
+ device_get_unit(child), "force_nonposted",
+ &use_np);
+ if (use_np)
args.memattr = VM_MEMATTR_DEVICE_NP;
err = nexus_map_resource(bus, child, type, r, &args,
&map);

File Metadata

Mime Type
text/plain
Expires
Tue, Mar 3, 3:38 AM (5 h, 57 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29180965
Default Alt Text
D38944.id118931.diff (1 KB)

Event Timeline