MODULE_PARM_DESC(disable_vendor_specific,
                "Limit commands to the publicly specified set\n");
 
+static unsigned long override_dsm_mask;
+module_param(override_dsm_mask, ulong, S_IRUGO);
+MODULE_PARM_DESC(override_dsm_mask, "Bitmask of allowed NVDIMM DSM functions");
+
 LIST_HEAD(acpi_descs);
 DEFINE_MUTEX(acpi_desc_lock);
 
 
        /* limit the supported commands to those that are publicly documented */
        nfit_mem->family = i;
-       if (nfit_mem->family == NVDIMM_FAMILY_INTEL) {
+       if (override_dsm_mask && !disable_vendor_specific)
+               dsm_mask = override_dsm_mask;
+       else if (nfit_mem->family == NVDIMM_FAMILY_INTEL) {
                dsm_mask = 0x3fe;
                if (disable_vendor_specific)
                        dsm_mask &= ~(1 << ND_CMD_VENDOR);