diff --git a/src/osmo_gsm_tester/core/schema.py b/src/osmo_gsm_tester/core/schema.py
index 9d26b0f..d56d6ec 100644
--- a/src/osmo_gsm_tester/core/schema.py
+++ b/src/osmo_gsm_tester/core/schema.py
@@ -111,7 +111,7 @@
     raise ValueError('Unknown Cipher value: %r' % val)
 
 def modem_feature(val):
-    if val in ('sms', 'gprs', 'voice', 'ussd', 'sim', '2g', '3g', '4g', 'dl_qam256'):
+    if val in ('sms', 'gprs', 'voice', 'ussd', 'sim', '2g', '3g', '4g', 'dl_qam256', 'ul_qam64'):
         return True
     raise ValueError('Unknown Modem Feature: %r' % val)
 
diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py
index 8319ba4..7fde719 100644
--- a/src/osmo_gsm_tester/obj/enb_srs.py
+++ b/src/osmo_gsm_tester/obj/enb_srs.py
@@ -31,6 +31,7 @@
 def on_register_schemas():
     config_schema = {
         'enable_pcap': schema.BOOL_STR,
+        'enable_ul_qam64': schema.BOOL_STR,
         'log_all_level': schema.STR,
         }
     schema.register_config_schema('enb', config_schema)
@@ -191,6 +192,7 @@
         self.enable_pcap = util.str2bool(values['enb'].get('enable_pcap', 'false'))
         config.overlay(values, dict(enb={'enable_pcap': self.enable_pcap}))
 
+        config.overlay(values, dict(enb={'enable_ul_qam64': util.str2bool(values['enb'].get('enable_ul_qam64', 'false'))}))
         config.overlay(values, dict(enb={'enable_dl_awgn': util.str2bool(values['enb'].get('enable_dl_awgn', 'false'))}))
         config.overlay(values, dict(enb={'rf_dev_sync': values['enb'].get('rf_dev_sync', None)}))
 
@@ -269,8 +271,6 @@
         return rfemu_obj
 
     def ue_max_rate(self, downlink=True, num_carriers=1):
-
-
         # The max rate for a single UE per PRB configuration in TM1 with MCS 28
         if 'dl_qam256' in self.ue.features():
             max_phy_rate_tm1_dl = {6: 5.9e6,
@@ -286,12 +286,21 @@
                                    50: 36e6,
                                    75: 55e6,
                                    100: 75e6}
-        max_phy_rate_tm1_ul = { 6 : 1.7e6,
-                               15 : 4.7e6,
-                               25 : 10e6,
-                               50 : 23e6,
-                               75 : 34e6,
-                               100 : 51e6 }
+
+        if 'ul_qam64' in self.ue.features():
+            max_phy_rate_tm1_ul = { 6 : 2.7e6,
+                                    15 : 6.5e6,
+                                    25 : 14e6,
+                                    50 : 32e6,
+                                    75 : 34e6,
+                                    100 : 70e6 }
+        else:
+            max_phy_rate_tm1_ul = { 6 : 1.7e6,
+                                    15 : 4.7e6,
+                                    25 : 10e6,
+                                    50 : 23e6,
+                                    75 : 34e6,
+                                    100 : 51e6 }
 
         if downlink:
             max_rate = max_phy_rate_tm1_dl[self.num_prb()]
diff --git a/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl
index 6d178c6..c738480 100644
--- a/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl
+++ b/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl
@@ -66,7 +66,7 @@
             n_sb = 1;
             hopping_mode = "inter-subframe";
             pusch_hopping_offset = 2;
-            enable_64_qam = false; // 64QAM PUSCH is not currently enabled
+            enable_64_qam = ${enb.enable_ul_qam64};
             ul_rs =
             {
                 cyclic_shift = 0;
diff --git a/src/osmo_gsm_tester/templates/srsue.conf.tmpl b/src/osmo_gsm_tester/templates/srsue.conf.tmpl
index 31642cd..120b938 100644
--- a/src/osmo_gsm_tester/templates/srsue.conf.tmpl
+++ b/src/osmo_gsm_tester/templates/srsue.conf.tmpl
@@ -150,10 +150,11 @@
 % if int(ue.num_carriers) > 1:
 ue_category       = 7
 release           = 10
-% elif "dl_qam256" in ue.features:
-ue_category       = 7
+% elif "dl_qam256" in ue.features or "ul_qam64" in ue.features:
+ue_category       = 8
 release           = 13
 ue_category_dl    = 14
+ue_category_ul    = 5
 % else:
 #ue_category       = 4
 #release           = 8
diff --git a/sysmocom/scenarios/cfg-enb-enable-ul-qam64.conf b/sysmocom/scenarios/cfg-enb-enable-ul-qam64.conf
new file mode 100644
index 0000000..446c966
--- /dev/null
+++ b/sysmocom/scenarios/cfg-enb-enable-ul-qam64.conf
@@ -0,0 +1,3 @@
+config:
+  enb:
+    enable_ul_qam64: true
\ No newline at end of file
