Merge "Revert "Add ptp-interface-parameters-add support in ptpinstance.pp""
This commit is contained in:
commit
052751c3df
@ -1,46 +0,0 @@
|
|||||||
Puppet::Functions.create_function(:'read_clock_conf') do
|
|
||||||
dispatch :read_config do
|
|
||||||
param 'String', :path
|
|
||||||
end
|
|
||||||
|
|
||||||
def read_config(path)
|
|
||||||
config_hash = {}
|
|
||||||
current_name = nil
|
|
||||||
step = 0
|
|
||||||
|
|
||||||
config_file = File.read(path)
|
|
||||||
config_file.each_line do |line|
|
|
||||||
if md = line.match(/^ifname \[(\S*)\]/)
|
|
||||||
if !config_hash.has_key?(md[1])
|
|
||||||
current_name = md[1]
|
|
||||||
config_hash[current_name] = {
|
|
||||||
'base_port' => nil,
|
|
||||||
'ifname' => nil,
|
|
||||||
'parameters' => {},
|
|
||||||
'port_names' => [],
|
|
||||||
'uuid' => nil
|
|
||||||
}
|
|
||||||
step = 1
|
|
||||||
else
|
|
||||||
next
|
|
||||||
end
|
|
||||||
elsif md = line.match(/^base_port \[(\S*)\]/)
|
|
||||||
if step == 1
|
|
||||||
config_hash[current_name]['base_port'] = md[1]
|
|
||||||
step = 2
|
|
||||||
else
|
|
||||||
next
|
|
||||||
end
|
|
||||||
else md = line.match(/^(\S*) (\S*)$/)
|
|
||||||
if step == 2 or step == 3
|
|
||||||
config_hash[current_name]['parameters'][md[1]] = md[2]
|
|
||||||
step = 3
|
|
||||||
else
|
|
||||||
next
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return config_hash
|
|
||||||
end
|
|
||||||
end
|
|
@ -20,7 +20,7 @@ define platform::ptpinstance::ptp_config_files(
|
|||||||
path => "${ptp_conf_dir}/ptpinstance/${service}-${_name}.conf",
|
path => "${ptp_conf_dir}/ptpinstance/${service}-${_name}.conf",
|
||||||
mode => '0644',
|
mode => '0644',
|
||||||
content => template('platform/ptpinstance.conf.erb'),
|
content => template('platform/ptpinstance.conf.erb'),
|
||||||
require => File["${ptp_conf_dir}/ptpinstance"],
|
require => File["${ptp_conf_dir}/ptpinstance"]
|
||||||
}
|
}
|
||||||
-> file { "${_name}-sysconfig":
|
-> file { "${_name}-sysconfig":
|
||||||
ensure => file,
|
ensure => file,
|
||||||
@ -28,7 +28,7 @@ define platform::ptpinstance::ptp_config_files(
|
|||||||
path => "${ptp_options_dir}/ptpinstance/${service}-instance-${_name}",
|
path => "${ptp_options_dir}/ptpinstance/${service}-instance-${_name}",
|
||||||
mode => '0644',
|
mode => '0644',
|
||||||
content => template("platform/${service}-instance.erb"),
|
content => template("platform/${service}-instance.erb"),
|
||||||
require => File["${ptp_options_dir}/ptpinstance"],
|
require => File["${ptp_options_dir}/ptpinstance"]
|
||||||
}
|
}
|
||||||
-> service { "instance-${_name}":
|
-> service { "instance-${_name}":
|
||||||
ensure => $ensure,
|
ensure => $ensure,
|
||||||
@ -91,26 +91,58 @@ define platform::ptpinstance::nic_clock_handler (
|
|||||||
$uuid,
|
$uuid,
|
||||||
$base_port,
|
$base_port,
|
||||||
$ptp_conf_dir,
|
$ptp_conf_dir,
|
||||||
|
$wpc_commands = {
|
||||||
|
'sma1' => {
|
||||||
|
'input' => "1 \$channel > /sys/class/net/${base_port}/device/ptp/\$PTP/pins/SMA1",
|
||||||
|
'output' => "2 \$channel > /sys/class/net/${base_port}/device/ptp/\$PTP/pins/SMA1"
|
||||||
|
},
|
||||||
|
'sma2' => {
|
||||||
|
'input' => "1 \$channel > /sys/class/net/${base_port}/device/ptp/\$PTP/pins/SMA2",
|
||||||
|
'output' => "2 \$channel > /sys/class/net/${base_port}/device/ptp/\$PTP/pins/SMA2"
|
||||||
|
},
|
||||||
|
'u.fl1' => {
|
||||||
|
'output' => "2 \$channel > /sys/class/net/${base_port}/device/ptp/\$PTP/pins/U.FL1"
|
||||||
|
},
|
||||||
|
'u.fl2' => {
|
||||||
|
'input' => "1 \$channel > /sys/class/net/${base_port}/device/ptp/\$PTP/pins/U.FL2"
|
||||||
|
},
|
||||||
|
'synce_rclka' => {
|
||||||
|
'enabled' => "1 \$channel > /sys/class/net/${name}/device/phy/synce"
|
||||||
|
},
|
||||||
|
'synce_rclkb' => {
|
||||||
|
'enabled' => "1 \$channel > /sys/class/net/${name}/device/phy/synce"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
$wpc_channels = {
|
||||||
|
'sma1' => "cat /sys/class/net/${base_port}/device/ptp/\$PTP/pins/SMA1 | awk '{print \$2}'",
|
||||||
|
'sma2' => "cat /sys/class/net/${base_port}/device/ptp/\$PTP/pins/SMA2 | awk '{print \$2}'",
|
||||||
|
'u.fl1' => "cat /sys/class/net/${base_port}/device/ptp/\$PTP/pins/U.FL1 | awk '{print \$2}'",
|
||||||
|
'u.fl2' => "cat /sys/class/net/${base_port}/device/ptp/\$PTP/pins/U.FL2 | awk '{print \$2}'",
|
||||||
|
'synce_rclka' => 'echo 0',
|
||||||
|
'synce_rclkb' => 'echo 1'
|
||||||
|
}
|
||||||
) {
|
) {
|
||||||
exec { "${ifname}_heading":
|
exec { "${ifname}_heading":
|
||||||
command => "echo ifname [${name}] >> ${ptp_conf_dir}/ptpinstance/clock-conf.conf",
|
command => "echo ifname [${name}] >> ${ptp_conf_dir}/ptpinstance/clock-conf.conf",
|
||||||
require => File['ensure_clock_conf_present'],
|
require => File['ensure_clock_conf_present']
|
||||||
provider => shell,
|
|
||||||
}
|
}
|
||||||
-> exec { "${ifname}_${base_port}_heading":
|
-> exec { "${ifname}_${base_port}_heading":
|
||||||
command => "echo base_port [${base_port}] >> ${ptp_conf_dir}/ptpinstance/clock-conf.conf",
|
command => "echo base_port [${base_port}] >> ${ptp_conf_dir}/ptpinstance/clock-conf.conf",
|
||||||
provider => shell,
|
|
||||||
}
|
}
|
||||||
$parameters.each |String $parm, String $value| {
|
$parameters.each |String $parm, String $value| {
|
||||||
platform::ptpinstance::config_param { "${name}_${parm}_${value}":
|
if $wpc_commands[$parm] {
|
||||||
iface => $name,
|
exec { "${ifname}_${parm}":
|
||||||
param => $parm,
|
command => "PTP=$(basename /sys/class/net/${base_port}/device/ptp/ptp*);\
|
||||||
value => $value,
|
channel=$(${wpc_channels[$parm]});\
|
||||||
require => [Exec["${ifname}_heading"], Exec["${ifname}_${base_port}_heading"]],
|
echo ${wpc_commands[$parm][$value]}",
|
||||||
}
|
provider => shell,
|
||||||
-> exec { "${ifname}_${parm}_to_file":
|
require => [ Exec["${ifname}_heading"], Exec["${ifname}_${base_port}_heading"] ]
|
||||||
command => "echo ${parm} ${value} >> ${ptp_conf_dir}/ptpinstance/clock-conf.conf",
|
}
|
||||||
provider => shell,
|
-> exec { "${ifname}_${parm}_to_file":
|
||||||
|
command => "echo ${parm} ${value} >> ${ptp_conf_dir}/ptpinstance/clock-conf.conf"
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
notice("Skipped invalid clock parameter ${parm}.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -122,11 +154,46 @@ define platform::ptpinstance::nic_clock_reset (
|
|||||||
$uuid,
|
$uuid,
|
||||||
$base_port,
|
$base_port,
|
||||||
) {
|
) {
|
||||||
$parameters.each |String $parm, String $value| {
|
if $parameters['u.fl1'] {
|
||||||
platform::ptpinstance::config_param { "${name}_${parm}_default":
|
exec { "${ifname}_clear_UFL1":
|
||||||
iface => $name,
|
command => "PTP=$(basename /sys/class/net/${base_port}/device/ptp/ptp*);\
|
||||||
param => $parm,
|
channel=$(cat /sys/class/net/${base_port}/device/ptp/\$PTP/pins/U.FL1 | awk '{print \$2}');\
|
||||||
value => 'default',
|
echo 0 \$channel > /sys/class/net/${base_port}/device/ptp/\$PTP/pins/U.FL1",
|
||||||
|
provider => shell,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $parameters['u.fl2'] {
|
||||||
|
exec { "${ifname}_clear_UFL2":
|
||||||
|
command => "PTP=$(basename /sys/class/net/${base_port}/device/ptp/ptp*);\
|
||||||
|
channel=$(cat /sys/class/net/${base_port}/device/ptp/\$PTP/pins/U.FL2 | awk '{print \$2}');\
|
||||||
|
echo 0 \$channel > /sys/class/net/${base_port}/device/ptp/\$PTP/pins/U.FL2",
|
||||||
|
provider => shell,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $parameters['sma1'] {
|
||||||
|
exec { "${ifname}_clear_SMA1":
|
||||||
|
command => "PTP=$(basename /sys/class/net/${base_port}/device/ptp/ptp*);\
|
||||||
|
channel=$(cat /sys/class/net/${base_port}/device/ptp/\$PTP/pins/SMA1 | awk '{print \$2}');\
|
||||||
|
echo 0 \$channel > /sys/class/net/${base_port}/device/ptp/\$PTP/pins/SMA1",
|
||||||
|
provider => shell,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $parameters['sma2'] {
|
||||||
|
exec { "${ifname}_clear_SMA2":
|
||||||
|
command => "PTP=$(basename /sys/class/net/${base_port}/device/ptp/ptp*);\
|
||||||
|
channel=$(cat /sys/class/net/${base_port}/device/ptp/\$PTP/pins/SMA2 | awk '{print \$2}');\
|
||||||
|
echo 0 \$channel > /sys/class/net/${base_port}/device/ptp/\$PTP/pins/SMA2",
|
||||||
|
provider => shell,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $parameters['synce_rclka'] {
|
||||||
|
exec { "${ifname}_clear_rclka":
|
||||||
|
command => "echo 0 0 > /sys/class/net/${name}/device/phy/synce",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $parameters['synce_rclkb'] {
|
||||||
|
exec { "${ifname}_clear_rclkb":
|
||||||
|
command => "echo 0 1 > /sys/class/net/${name}/device/phy/synce",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -152,31 +219,24 @@ class platform::ptpinstance::nic_clock (
|
|||||||
|
|
||||||
require ::platform::ptpinstance::nic_clock::nic_reset
|
require ::platform::ptpinstance::nic_clock::nic_reset
|
||||||
|
|
||||||
file { "${ptp_conf_dir}/ptpinstance":
|
file {"${ptp_conf_dir}/ptpinstance":
|
||||||
ensure => directory,
|
ensure => directory,
|
||||||
mode => '0755',
|
mode => '0755',
|
||||||
}
|
}
|
||||||
-> tidy { 'purge_conf':
|
-> tidy { 'purge_conf':
|
||||||
path => "${ptp_conf_dir}/ptpinstance",
|
path => "${ptp_conf_dir}/ptpinstance",
|
||||||
matches => ['[^clock]*.conf'],
|
matches => [ '[^clock]*.conf' ],
|
||||||
recurse => true,
|
recurse => true,
|
||||||
rmdirs => false,
|
rmdirs => false
|
||||||
}
|
}
|
||||||
-> file { 'ensure_clock_conf_present':
|
-> file { 'ensure_clock_conf_present':
|
||||||
ensure => present,
|
ensure => present,
|
||||||
path => "${ptp_conf_dir}/ptpinstance/clock-conf.conf",
|
path => "${ptp_conf_dir}/ptpinstance/clock-conf.conf",
|
||||||
mode => '0644',
|
mode => '0644',
|
||||||
require => File["${ptp_conf_dir}/ptpinstance"],
|
require => File["${ptp_conf_dir}/ptpinstance"]
|
||||||
}
|
}
|
||||||
if $nic_clock_enabled {
|
if $nic_clock_enabled {
|
||||||
create_resources('platform::ptpinstance::nic_clock_handler', $nic_clock_config, { 'ptp_conf_dir' => $ptp_conf_dir })
|
create_resources('platform::ptpinstance::nic_clock_handler', $nic_clock_config, {'ptp_conf_dir' => $ptp_conf_dir})
|
||||||
$iface_keys = keys($nic_clock_config)
|
|
||||||
$iface_keys.each|Integer $index, String $iface_cfg| {
|
|
||||||
if $index > 0 {
|
|
||||||
# Defining an order for the instances that will be created with create_resources
|
|
||||||
Platform::Ptpinstance::Nic_clock_handler[$iface_keys[$index - 1]] -> Platform::Ptpinstance::Nic_clock_handler[$iface_cfg]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,22 +244,15 @@ class platform::ptpinstance::nic_clock::nic_reset (
|
|||||||
$nic_clock_config = $platform::ptpinstance::nic_clock::nic_clock_config,
|
$nic_clock_config = $platform::ptpinstance::nic_clock::nic_clock_config,
|
||||||
$nic_clock_enabled = $platform::ptpinstance::nic_clock::nic_clock_enabled
|
$nic_clock_enabled = $platform::ptpinstance::nic_clock::nic_clock_enabled
|
||||||
) {
|
) {
|
||||||
|
include ::platform::ptpinstance::params
|
||||||
$ptp_conf_dir = $::platform::ptpinstance::params::ptp_conf_dir
|
$ptp_conf_dir = $::platform::ptpinstance::params::ptp_conf_dir
|
||||||
$clock_conf_values = read_clock_conf("${ptp_conf_dir}/ptpinstance/clock-conf.conf")
|
|
||||||
|
|
||||||
if $nic_clock_enabled {
|
if $nic_clock_enabled {
|
||||||
create_resources('platform::ptpinstance::nic_clock_reset', $clock_conf_values)
|
create_resources('platform::ptpinstance::nic_clock_reset', $nic_clock_config)
|
||||||
$iface_keys = keys($clock_conf_values)
|
|
||||||
$iface_keys.each|Integer $index, String $iface_cfg| {
|
|
||||||
if $index > 0 {
|
|
||||||
# Defining an order for the instances that will be created with create_resources
|
|
||||||
Platform::Ptpinstance::Nic_clock_reset[$iface_keys[$index - 1]] -> Platform::Ptpinstance::Nic_clock_reset[$iface_cfg]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
exec { 'clear_clock_conf_file':
|
exec { 'clear_clock_conf_file':
|
||||||
command => "echo \"\" > ${ptp_conf_dir}/ptpinstance/clock-conf.conf",
|
command => "echo \"\" > ${ptp_conf_dir}/ptpinstance/clock-conf.conf",
|
||||||
onlyif => "stat ${ptp_conf_dir}/ptpinstance/clock-conf.conf",
|
onlyif => "stat ${ptp_conf_dir}/ptpinstance/clock-conf.conf"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -215,6 +268,7 @@ define platform::ptpinstance::disable_e810_gnss_uart_interfaces (
|
|||||||
$pmc_gm_settings = '',
|
$pmc_gm_settings = '',
|
||||||
$external_source = '',
|
$external_source = '',
|
||||||
) {
|
) {
|
||||||
|
|
||||||
$gnss_device = $global_parameters['ts2phc.nmea_serialport']
|
$gnss_device = $global_parameters['ts2phc.nmea_serialport']
|
||||||
|
|
||||||
if empty($gnss_device) {
|
if empty($gnss_device) {
|
||||||
@ -227,12 +281,12 @@ define platform::ptpinstance::disable_e810_gnss_uart_interfaces (
|
|||||||
|
|
||||||
notice("Trying to disable UART devices for serial port ${gnss_device}")
|
notice("Trying to disable UART devices for serial port ${gnss_device}")
|
||||||
|
|
||||||
exec { "${_name}_disable_gnss_uart1":
|
exec {"${_name}_disable_gnss_uart1":
|
||||||
command => "echo -ne \"${uart1_cmd}\" > ${gnss_device}",
|
command => "echo -ne \"${uart1_cmd}\" > ${gnss_device}",
|
||||||
timeout => 3,
|
timeout => 3,
|
||||||
onlyif => "/usr/bin/test -c ${gnss_device}",
|
onlyif => "/usr/bin/test -c ${gnss_device}",
|
||||||
}
|
}
|
||||||
exec { "${_name}_disable_gnss_uart2":
|
exec {"${_name}_disable_gnss_uart2":
|
||||||
command => "echo -ne \"${uart2_cmd}\" > ${gnss_device}",
|
command => "echo -ne \"${uart2_cmd}\" > ${gnss_device}",
|
||||||
timeout => 3,
|
timeout => 3,
|
||||||
onlyif => "/usr/bin/test -c ${gnss_device}",
|
onlyif => "/usr/bin/test -c ${gnss_device}",
|
||||||
@ -272,13 +326,13 @@ class platform::ptpinstance (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
file { "${ptp_options_dir}/ptpinstance":
|
file{"${ptp_options_dir}/ptpinstance":
|
||||||
ensure => directory,
|
ensure => directory,
|
||||||
mode => '0755',
|
mode => '0755',
|
||||||
}
|
}
|
||||||
-> tidy { 'purge_sysconf':
|
-> tidy { 'purge_sysconf':
|
||||||
path => "${ptp_options_dir}/ptpinstance/",
|
path => "${ptp_options_dir}/ptpinstance/",
|
||||||
matches => ['*-instance-*'],
|
matches => [ '*-instance-*' ],
|
||||||
recurse => true,
|
recurse => true,
|
||||||
rmdirs => false
|
rmdirs => false
|
||||||
}
|
}
|
||||||
@ -374,170 +428,7 @@ class platform::ptpinstance (
|
|||||||
class platform::ptpinstance::runtime {
|
class platform::ptpinstance::runtime {
|
||||||
class { 'platform::ptpinstance::nic_clock': }
|
class { 'platform::ptpinstance::nic_clock': }
|
||||||
-> class { 'platform::ptpinstance': runtime => true }
|
-> class { 'platform::ptpinstance': runtime => true }
|
||||||
-> exec { 'Ensure collectd is restarted':
|
-> exec {'Ensure collectd is restarted':
|
||||||
command => '/usr/local/sbin/pmon-restart collectd'
|
command => '/usr/local/sbin/pmon-restart collectd'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
define platform::ptpinstance::net_tspll_cfg (
|
|
||||||
$iface,
|
|
||||||
$tspll_freq,
|
|
||||||
$clk_src,
|
|
||||||
$src_tmr_mode,
|
|
||||||
) {
|
|
||||||
exec { "${iface}_tspll_cfg_${tspll_freq}_${clk_src}_${src_tmr_mode}":
|
|
||||||
command => "echo ${tspll_freq} ${clk_src} ${src_tmr_mode} > /sys/class/net/${iface}/device/tspll_cfg",
|
|
||||||
provider => shell,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define platform::ptpinstance::phy_synce (
|
|
||||||
$iface,
|
|
||||||
$enable,
|
|
||||||
$pin,
|
|
||||||
) {
|
|
||||||
exec { "${iface}_synce_${enable}_${pin}":
|
|
||||||
command => "echo ${enable} ${pin} > /sys/class/net/${iface}/device/phy/synce",
|
|
||||||
provider => shell,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define platform::ptpinstance::phy_tx_clk (
|
|
||||||
$iface,
|
|
||||||
$ref_clk,
|
|
||||||
) {
|
|
||||||
exec { "${iface}_tx_clk_${ref_clk}":
|
|
||||||
command => "echo ${ref_clk} > /sys/class/net/${iface}/device/phy/tx_clk",
|
|
||||||
provider => shell,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define platform::ptpinstance::ptp_extts_enable (
|
|
||||||
$iface,
|
|
||||||
$enable,
|
|
||||||
) {
|
|
||||||
exec { "${iface}_extts_enable_${enable}":
|
|
||||||
command => "PTPNAME=$(basename /sys/class/net/${iface}/device/ptp/ptp*);\
|
|
||||||
CHANNEL=$(cat /sys/class/net/${iface}/device/ptp/\$PTP/pins/${pin} | awk '{print \$2}');\
|
|
||||||
echo \$CHANNEL ${enable} > /sys/class/net/${iface}/device/ptp/\$PTP/extts_enable",
|
|
||||||
provider => shell,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define platform::ptpinstance::ptp_period (
|
|
||||||
$iface,
|
|
||||||
$start_time_s = 0,
|
|
||||||
$start_time_ns = 0,
|
|
||||||
$period_s = 0,
|
|
||||||
$period_ns = 0,
|
|
||||||
) {
|
|
||||||
exec { "${iface}_period_${start_time_s}_${start_time_ns}_${period_s}_${period_ns}}":
|
|
||||||
command => "PTP=$(basename /sys/class/net/${iface}/device/ptp/ptp*);\
|
|
||||||
CHANNEL=$(cat /sys/class/net/${iface}/device/ptp/\$PTP/pins/${pin} | awk '{print \$2}');\
|
|
||||||
echo \$CHANNEL ${start_time_s} ${start_time_ns} ${period_s} ${period_ns} > /sys/class/net/${iface}/device/ptp/\$PTP/period",
|
|
||||||
provider => shell,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define platform::ptpinstance::ptp_pin (
|
|
||||||
$iface,
|
|
||||||
$pin,
|
|
||||||
$function,
|
|
||||||
) {
|
|
||||||
exec { "${iface}_${pin}_${function}":
|
|
||||||
command => "PTP=$(basename /sys/class/net/${iface}/device/ptp/ptp*);\
|
|
||||||
CHANNEL=$(cat /sys/class/net/${iface}/device/ptp/\$PTP/pins/${pin} | awk '{print \$2}');\
|
|
||||||
echo ${function} \$CHANNEL > /sys/class/net/${iface}/device/ptp/\$PTP/pins/${pin}",
|
|
||||||
provider => shell,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define platform::ptpinstance::config_param (
|
|
||||||
$iface,
|
|
||||||
$param,
|
|
||||||
$value,
|
|
||||||
) {
|
|
||||||
$cmds = {
|
|
||||||
'tspll_cfg' => {
|
|
||||||
'resource' => 'platform::ptpinstance::net_tspll_cfg',
|
|
||||||
'default' => { 'iface' => $iface, 'tspll_freq' => 4, 'clk_src' => 0, 'src_tmr_mode' => 0 },
|
|
||||||
'timeref_25' => { 'iface' => $iface, 'tspll_freq' => 0, 'clk_src' => 1, 'src_tmr_mode' => 0 },
|
|
||||||
'timeref_156.25' => { 'iface' => $iface, 'tspll_freq' => 4, 'clk_src' => 1, 'src_tmr_mode' => 0 },
|
|
||||||
},
|
|
||||||
'synce_rclka' => {
|
|
||||||
'resource' => 'platform::ptpinstance::phy_synce',
|
|
||||||
'default' => { 'iface' => $iface, 'enable' => 0, 'pin' => 0 },
|
|
||||||
'enabled' => { 'iface' => $iface, 'enable' => 1, 'pin' => 0 },
|
|
||||||
},
|
|
||||||
'synce_rclkb' => {
|
|
||||||
'resource' => 'platform::ptpinstance::phy_synce',
|
|
||||||
'default' => { 'iface' => $iface, 'enable' => 0, 'pin' => 1 },
|
|
||||||
'enabled' => { 'iface' => $iface, 'enable' => 1, 'pin' => 1 },
|
|
||||||
},
|
|
||||||
'tx_clk' => {
|
|
||||||
'resource' => 'platform::ptpinstance::phy_tx_clk',
|
|
||||||
'default' => { 'iface' => $iface, 'ref_clk' => 0 },
|
|
||||||
'enabled' => { 'iface' => $iface, 'ref_clk' => 1 },
|
|
||||||
},
|
|
||||||
'extts_enable' => {
|
|
||||||
'resource' => 'platform::ptpinstance::ptp_extts_enable',
|
|
||||||
'default' => { 'iface' => $iface, 'enable' => 0 },
|
|
||||||
'enabled' => { 'iface' => $iface, 'enable' => 1 },
|
|
||||||
},
|
|
||||||
'period' => {
|
|
||||||
'resource' => 'platform::ptpinstance::ptp_period',
|
|
||||||
'default' => { 'iface' => $iface, 'start_time_s' => 0, 'start_time_ns' => 0, 'period_s' => 0, 'period_ns' => 0 },
|
|
||||||
'out_1pps' => { 'iface' => $iface, 'start_time_s' => 0, 'start_time_ns' => 0, 'period_s' => 1, 'period_ns' => 0 },
|
|
||||||
},
|
|
||||||
'sdp0' => {
|
|
||||||
'resource' => 'platform::ptpinstance::ptp_pin',
|
|
||||||
'default' => { 'iface' => $iface, 'pin' => 'SDP0', 'function' => 0 },
|
|
||||||
'output' => { 'iface' => $iface, 'pin' => 'SDP0', 'function' => 2 },
|
|
||||||
},
|
|
||||||
'sdp1' => {
|
|
||||||
'resource' => 'platform::ptpinstance::ptp_pin',
|
|
||||||
'default' => { 'iface' => $iface, 'pin' => 'SDP1', 'function' => 0 },
|
|
||||||
'input' => { 'iface' => $iface, 'pin' => 'SDP1', 'function' => 1 },
|
|
||||||
},
|
|
||||||
'sdp2' => {
|
|
||||||
'resource' => 'platform::ptpinstance::ptp_pin',
|
|
||||||
'default' => { 'iface' => $iface, 'pin' => 'SDP2', 'function' => 0 },
|
|
||||||
'output' => { 'iface' => $iface, 'pin' => 'SDP2', 'function' => 2 },
|
|
||||||
},
|
|
||||||
'sdp3' => {
|
|
||||||
'resource' => 'platform::ptpinstance::ptp_pin',
|
|
||||||
'default' => { 'iface' => $iface, 'pin' => 'SDP3', 'function' => 0 },
|
|
||||||
'input' => { 'iface' => $iface, 'pin' => 'SDP3', 'function' => 1 },
|
|
||||||
},
|
|
||||||
'sma1' => {
|
|
||||||
'resource' => 'platform::ptpinstance::ptp_pin',
|
|
||||||
'default' => { 'iface' => $iface, 'pin' => 'SMA1', 'function' => 0 },
|
|
||||||
'input' => { 'iface' => $iface, 'pin' => 'SMA1', 'function' => 1 },
|
|
||||||
'output' => { 'iface' => $iface, 'pin' => 'SMA1', 'function' => 2 },
|
|
||||||
},
|
|
||||||
'sma2' => {
|
|
||||||
'resource' => 'platform::ptpinstance::ptp_pin',
|
|
||||||
'default' => { 'iface' => $iface, 'pin' => 'SMA2', 'function' => 0 },
|
|
||||||
'input' => { 'iface' => $iface, 'pin' => 'SMA2', 'function' => 1 },
|
|
||||||
'output' => { 'iface' => $iface, 'pin' => 'SMA2', 'function' => 2 },
|
|
||||||
},
|
|
||||||
'u.fl1' => {
|
|
||||||
'resource' => 'platform::ptpinstance::ptp_pin',
|
|
||||||
'default' => { 'iface' => $iface, 'pin' => 'U.FL1', 'function' => 0 },
|
|
||||||
'output' => { 'iface' => $iface, 'pin' => 'U.FL1', 'function' => 2 },
|
|
||||||
},
|
|
||||||
'u.fl2' => {
|
|
||||||
'resource' => 'platform::ptpinstance::ptp_pin',
|
|
||||||
'default' => { 'iface' => $iface, 'pin' => 'U.FL2', 'function' => 0 },
|
|
||||||
'input' => { 'iface' => $iface, 'pin' => 'U.FL2', 'function' => 1 },
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
if !$cmds[$param] {
|
|
||||||
notice("Skipped invalid clock parameter: ${param}.")
|
|
||||||
} elsif !$cmds[$param][$value] {
|
|
||||||
notice("Skipped invalid clock parameter value: ${param}: ${value}.")
|
|
||||||
} else {
|
|
||||||
create_resources($cmds[$param]['resource'], { "${iface}_${param}_${value}" => $cmds[$param][$value] })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user