CMD_SUBSYSTEM_COMMON,
                BE_PRIV_LNKMGMT | BE_PRIV_VHADM |
                BE_PRIV_DEVCFG | BE_PRIV_DEVSEC
-       }
+       },
+       {
+               OPCODE_LOWLEVEL_HOST_DDR_DMA,
+               CMD_SUBSYSTEM_LOWLEVEL,
+               BE_PRIV_DEVCFG | BE_PRIV_DEVSEC
+       },
+       {
+               OPCODE_LOWLEVEL_LOOPBACK_TEST,
+               CMD_SUBSYSTEM_LOWLEVEL,
+               BE_PRIV_DEVCFG | BE_PRIV_DEVSEC
+       },
+       {
+               OPCODE_LOWLEVEL_SET_LOOPBACK_MODE,
+               CMD_SUBSYSTEM_LOWLEVEL,
+               BE_PRIV_DEVCFG | BE_PRIV_DEVSEC
+       },
 };
 
 static bool be_cmd_allowed(struct be_adapter *adapter, u8 opcode, u8 subsystem)
        struct be_cmd_req_set_lmode *req;
        int status;
 
+       if (!be_cmd_allowed(adapter, OPCODE_LOWLEVEL_SET_LOOPBACK_MODE,
+                           CMD_SUBSYSTEM_LOWLEVEL))
+               return -EPERM;
+
        spin_lock_bh(&adapter->mcc_lock);
 
        wrb = wrb_from_mccq(adapter);
        struct be_cmd_resp_loopback_test *resp;
        int status;
 
+       if (!be_cmd_allowed(adapter, OPCODE_LOWLEVEL_LOOPBACK_TEST,
+                           CMD_SUBSYSTEM_LOWLEVEL))
+               return -EPERM;
+
        spin_lock_bh(&adapter->mcc_lock);
 
        wrb = wrb_from_mccq(adapter);
        int status;
        int i, j = 0;
 
+       if (!be_cmd_allowed(adapter, OPCODE_LOWLEVEL_HOST_DDR_DMA,
+                           CMD_SUBSYSTEM_LOWLEVEL))
+               return -EPERM;
+
        spin_lock_bh(&adapter->mcc_lock);
 
        wrb = wrb_from_mccq(adapter);