diff --git a/modules/puppet-mtce/src/mtce/templates/mtc_ini.erb b/modules/puppet-mtce/src/mtce/templates/mtc_ini.erb
index a5cb2dc2c..65c48fb6e 100644
--- a/modules/puppet-mtce/src/mtce/templates/mtc_ini.erb
+++ b/modules/puppet-mtce/src/mtce/templates/mtc_ini.erb
@@ -43,6 +43,21 @@ heartbeat_failure_action = <%= @heartbeat_failure_action %>
 ;  system service-parameter-modify platform maintenance mnfa_threshold=<value>
 mnfa_threshold = <%= @mnfa_threshold %>
 
+; Board Management Controller (BMC) Access Method
+; Controls the access method maintenance uses when communicating with
+;  provisioned BMCs for power/reset control and sensor monitoring.
+; Supported Methods are
+;       ipmi = use ipmi for bmc communications
+;    redfish = use redfish for bmc communications
+;      learn = use redfish if BMC supports it, otherwise use ipmi
+; Default is learn
+; Changes are automatically detected and handled by maintenance when
+;  modified through system service parameter CLI command.
+; To modify execute:
+;  system service-parameter-modify platform maintenance bmc_access_method=<method>
+;  system service-parameter-apply platform
+bmc_access_method = <%= @bmc_access_method %>
+
 [timeouts]
 worker_boot_timeout = <%= @worker_boot_timeout %> ; The max time (seconds) that Mtce waits for the mtcAlive
 controller_boot_timeout = <%= @controller_boot_timeout %> ; message after which it will time out and fail the host.
diff --git a/puppet-manifests/src/hieradata/controller.yaml b/puppet-manifests/src/hieradata/controller.yaml
index b850282f9..dc160d6d1 100644
--- a/puppet-manifests/src/hieradata/controller.yaml
+++ b/puppet-manifests/src/hieradata/controller.yaml
@@ -62,6 +62,7 @@ platform::mtce::agent::params::heartbeat_failure_threshold: 10
 platform::mtce::agent::params::heartbeat_degrade_threshold: 6
 platform::mtce::agent::params::mnfa_threshold: 2
 platform::mtce::agent::params::mnfa_timeout: 0
+platform::mtce::agent::params::bmc_access_method: 'learn'
 
 # influxdb configuration for collectd
 platform::influxdb::params::bind_address: ':25826'
diff --git a/puppet-manifests/src/modules/platform/manifests/mtce.pp b/puppet-manifests/src/modules/platform/manifests/mtce.pp
index 96a499139..fa45adafb 100644
--- a/puppet-manifests/src/modules/platform/manifests/mtce.pp
+++ b/puppet-manifests/src/modules/platform/manifests/mtce.pp
@@ -17,6 +17,7 @@ class platform::mtce::params (
   $mtce_multicast = undef,
   $mnfa_threshold = 2,
   $mnfa_timeout = 0,
+  $bmc_access_method = 'learn',
   $sm_client_port = 2224,
   $sm_server_port = 2124,
 ) { }