Commit 6c901084 authored by Patrick Venture's avatar Patrick Venture Committed by Brad Bishop
Browse files

meta-quanta-q71l: new recipes for ipmi preferences


New ipmi-channel-config
New fru-merge-config recipe
Updated: ipmi-inventory-map
Updated: ipmi-sensor-map

Change-Id: I508265159eaf9b8c4f1c53080fdbe568ab19c953
Signed-off-by: default avatarPatrick Venture <venture@google.com>
parent 72ecdb14
......@@ -31,7 +31,9 @@ PREFERRED_PROVIDER_virtual/obmc-inventory-data ?= "${VIRTUAL-RUNTIME_skeleton_wo
# These are meant to include the inventory config.yaml and so on.
PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-inventory = "q71l-ipmi-inventory-map-native"
PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-properties = "q71l-ipmi-fru-properties"
PREFERRED_PROVIDER_virtual/phosphor-ipmi-sensor-inventory = "q71l-ipmi-sensor-map-native"
PREFERRED_PROVIDER_virtual/phosphor-ipmi-channel-config = "q71l-ipmi-channel-config-native"
PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-merge-config = "q71l-ipmi-fru-merge-config-native"
PREFERRED_PROVIDER_virtual/obmc-host-ipmi-hw = "phosphor-ipmi-bt"
SUMMARY = "Quanta Q71l IPMI Channel to if_name mapping."
PR = "r1"
inherit native
inherit phosphor-ipmi-host
inherit obmc-phosphor-license
PROVIDES += "virtual/phosphor-ipmi-channel-config"
SRC_URI += "file://channel.yaml"
S = "${WORKDIR}"
do_install() {
DEST=${D}${sensor_datadir}
install -d ${DEST}
install channel.yaml ${DEST}/channel.yaml
}
inherit native
inherit obmc-phosphor-license
DEPENDS += "virtual/phosphor-ipmi-fru-inventory"
PROVIDES += "virtual/phosphor-ipmi-fru-merge-config"
# Put the fru_config in the right place with the right name.
# Pull the IPMI FRU YAML config to use it in the IPMI HOST YAML.
do_install_append() {
IPMI_FRU_SRC=${datadir}/phosphor-ipmi-fru/config
IPMI_HOST_DEST=${D}${datadir}/phosphor-ipmi-host/config
install -d ${IPMI_HOST_DEST}
cat ${IPMI_FRU_SRC}/config.yaml > ${IPMI_HOST_DEST}/fru_config.yaml
}
SUMMARY = "Quanta Q71l IPMI to DBus Inventory mapping."
SUMMARY = "Quanta-Q71l IPMI to DBus Inventory mapping."
PR = "r1"
inherit native
......@@ -12,9 +12,6 @@ PROVIDES += "virtual/phosphor-ipmi-fru-inventory"
S = "${WORKDIR}"
do_install() {
# TODO: install this to inventory_datadir
# after ipmi-fru-parser untangles the host
# firmware config from the machine inventory.
DEST=${D}${config_datadir}
install -d ${DEST}
......
0x56:
/system/chassis/motherboard:
xyz.openbmc_project.Inventory.Decorator.Asset:
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Board
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Board
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Board
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Board
entityID: 7
entityInstance: 1
interfaces:
xyz.openbmc_project.Inventory.Decorator.Asset:
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Board
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Board
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Board
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Board
/system:
xyz.openbmc_project.Inventory.Decorator.Asset:
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Chassis
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Chassis
Model:
IPMIFruProperty: Type
IPMIFruSection: Chassis
entityID: 23
entityInstance: 1
interfaces:
xyz.openbmc_project.Inventory.Decorator.Asset:
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Chassis
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Chassis
Model:
IPMIFruProperty: Type
IPMIFruSection: Chassis
0x50:
/system/chassis/motherboard/bmc:
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Decorator.Asset:
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Board
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Board
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Board
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Decorator.Revision:
Version:
IPMIFruProperty: FRU File ID
IPMIFruSection: Board
entityID: 6
entityInstance: 1
interfaces:
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Decorator.Asset:
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Board
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Board
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Board
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Decorator.Revision:
Version:
IPMIFruProperty: FRU File ID
IPMIFruSection: Board
0x52:
/system/chassis/pdb:
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Decorator.Asset:
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Board
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Board
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Board
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Board
Model:
IPMIFruProperty: Model Number
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Decorator.Revision:
Version:
IPMIFruProperty: FRU File ID
IPMIFruSection: Board
entityID: 21
entityInstance: 1
interfaces:
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Decorator.Asset:
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Board
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Board
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Board
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Board
Model:
IPMIFruProperty: Model Number
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Decorator.Revision:
Version:
IPMIFruProperty: FRU File ID
IPMIFruSection: Board
0x57:
/system/chassis/fp:
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Decorator.Asset:
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Board
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Board
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Board
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Board
Model:
IPMIFruProperty: Model Number
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Decorator.Revision:
Version:
IPMIFruProperty: FRU File ID
IPMIFruSection: Board
entityID: 2
entityInstance: 1
interfaces:
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Decorator.Asset:
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Board
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Board
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Board
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Board
Model:
IPMIFruProperty: Model Number
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Decorator.Revision:
Version:
IPMIFruProperty: FRU File ID
IPMIFruSection: Board
0x20:
/system/chassis/motherboard/mezzanine8/memory_riser:
entityID: 8
entityInstance: 1
interfaces: &riser
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Decorator.Asset:
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Board
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Board
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Board
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Board
Model:
IPMIFruProperty: Model Number
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Decorator.Revision:
Version:
IPMIFruProperty: FRU File ID
IPMIFruSection: Board
0x21:
/system/chassis/motherboard/mezzanine7/memory_riser:
entityID: 8
entityInstance: 2
interfaces:
<<: *riser
0x22:
/system/chassis/motherboard/mezzanine6/memory_riser:
entityID: 8
entityInstance: 3
interfaces:
<<: *riser
0x23:
/system/chassis/motherboard/mezzanine5/memory_riser:
entityID: 8
entityInstance: 4
interfaces:
<<: *riser
0x24:
/system/chassis/motherboard/mezzanine4/memory_riser:
entityID: 8
entityInstance: 5
interfaces:
<<: *riser
0x25:
/system/chassis/motherboard/mezzanine3/memory_riser:
entityID: 8
entityInstance: 6
interfaces:
<<: *riser
0x26:
/system/chassis/motherboard/mezzanine2/memory_riser:
entityID: 8
entityInstance: 7
interfaces:
<<: *riser
0x27:
/system/chassis/motherboard/mezzanine1/memory_riser:
entityID: 8
entityInstance: 8
interfaces:
<<: *riser
0xD0:
sensorType: 0x01
path: /xyz/openbmc_project/extsensors/margin/fleeting0
sensorReadingType: 0x01
multiplierM: 511
offsetB: 0
bExp: 0
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
scale: -3
mutability: Mutability::Write|Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
0xFF:
type: int64_t
0xF0:
sensorType: 0x01
path: /xyz/openbmc_project/sensors/temperature/temp2_inlet
......@@ -5,7 +24,9 @@
multiplierM: 511
offsetB: 0
bExp: 0
mutability: Mutability::Write|Mutability::Read
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
scale: -3
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
......@@ -22,7 +43,9 @@
multiplierM: 511
offsetB: 0
bExp: 0
mutability: Mutability::Write|Mutability::Read
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
scale: -3
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
......@@ -39,7 +62,9 @@
multiplierM: 511
offsetB: 0
bExp: 0
mutability: Mutability::Write|Mutability::Read
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
scale: -3
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
......@@ -56,7 +81,9 @@
multiplierM: 100
offsetB: 0
bExp: 0
mutability: Mutability::Write|Mutability::Read
unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
scale: 0
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
......@@ -66,6 +93,23 @@
0x0:
type: int64_t
0xC0:
sensorType: 0x04
path: /xyz/openbmc_project/sensors/fan_tach/fan1
sensorReadingType: 0x01
multiplierM: 1
offsetB: 0
bExp: 0
mutability: Mutability::Write
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Control.FanPwm:
Target:
Offsets:
0xFF:
type: uint64_t
0xB1:
sensorType: 0x04
path: /xyz/openbmc_project/sensors/fan_tach/fan2
......@@ -73,7 +117,9 @@
multiplierM: 100
offsetB: 0
bExp: 0
mutability: Mutability::Write|Mutability::Read
unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
scale: 0
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
......@@ -83,6 +129,23 @@
0x0:
type: int64_t
0xC1:
sensorType: 0x04
path: /xyz/openbmc_project/sensors/fan_tach/fan2
sensorReadingType: 0x01
multiplierM: 1
offsetB: 0
bExp: 0
mutability: Mutability::Write
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Control.FanPwm:
Target:
Offsets:
0xFF:
type: uint64_t
0xB2:
sensorType: 0x04
path: /xyz/openbmc_project/sensors/fan_tach/fan3
......@@ -90,7 +153,9 @@
multiplierM: 100
offsetB: 0
bExp: 0
mutability: Mutability::Write|Mutability::Read
unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
scale: 0
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
......@@ -100,6 +165,23 @@
0x0:
type: int64_t
0xC2:
sensorType: 0x04
path: /xyz/openbmc_project/sensors/fan_tach/fan3
sensorReadingType: 0x01
multiplierM: 1
offsetB: 0
bExp: 0
mutability: Mutability::Write
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Control.FanPwm:
Target:
Offsets:
0xFF:
type: uint64_t
0xB3:
sensorType: 0x04
path: /xyz/openbmc_project/sensors/fan_tach/fan4
......@@ -107,7 +189,9 @@
multiplierM: 100
offsetB: 0
bExp: 0
mutability: Mutability::Write|Mutability::Read
unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
scale: 0
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
......@@ -117,6 +201,23 @@
0x0:
type: int64_t
0xC3:
sensorType: 0x04
path: /xyz/openbmc_project/sensors/fan_tach/fan4
sensorReadingType: 0x01
multiplierM: 1
offsetB: 0
bExp: 0
mutability: Mutability::Write
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Control.FanPwm:
Target:
Offsets:
0xFF:
type: uint64_t
0xB4:
sensorType: 0x04
path: /xyz/openbmc_project/sensors/fan_tach/fan5
......@@ -124,7 +225,9 @@
multiplierM: 100
offsetB: 0
bExp: 0
mutability: Mutability::Write|Mutability::Read
unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
scale: 0
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
......@@ -141,7 +244,9 @@
multiplierM: 100
offsetB: 0
bExp: 0
mutability: Mutability::Write|Mutability::Read
unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
scale: 0
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
......@@ -158,7 +263,9 @@
multiplierM: 100
offsetB: 0
bExp: 0
mutability: Mutability::Write|Mutability::Read
unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
scale: 0
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
......@@ -175,7 +282,237 @@
multiplierM: 100
offsetB: 0
bExp: 0
mutability: Mutability::Write|Mutability::Read
unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
scale: 0
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
0x0:
type: int64_t
0xE0:
sensorType: 0x02
path: /xyz/openbmc_project/sensors/voltage/p3v3_scaled
sensorReadingType: 0x01
multiplierM: 64
offsetB: 0
bExp: 0
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
scale: -3
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
0x0:
type: int64_t
0xE1:
sensorType: 0x02
path: /xyz/openbmc_project/sensors/voltage/p5v_scaled
sensorReadingType: 0x01
multiplierM: 64
offsetB: 0
bExp: 0
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
scale: -3
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
0x0:
type: int64_t
0xE2:
sensorType: 0x02
path: /xyz/openbmc_project/sensors/voltage/p12v_aux_scaled
sensorReadingType: 0x01
multiplierM: 64
offsetB: 0
bExp: 0
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
scale: -3
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
0x0:
type: int64_t
0xE3:
sensorType: 0x02
path: /xyz/openbmc_project/sensors/voltage/p1v1_ssb
sensorReadingType: 0x01
multiplierM: 64
offsetB: 0
bExp: 0
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
scale: -3
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
0x0:
type: int64_t
0xE4:
sensorType: 0x02
path: /xyz/openbmc_project/sensors/voltage/pvcc_cpu0
sensorReadingType: 0x01
multiplierM: 64
offsetB: 0
bExp: 0
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
scale: -3
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
0x0:
type: int64_t
0xE5:
sensorType: 0x02
path: /xyz/openbmc_project/sensors/voltage/pvcc_cpu1
sensorReadingType: 0x01
multiplierM: 64
offsetB: 0
bExp: 0
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
scale: -3
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
0x0:
type: int64_t
0xE6:
sensorType: 0x02
path: /xyz/openbmc_project/sensors/voltage/p3v3_aux_scaled
sensorReadingType: 0x01
multiplierM: 64
offsetB: 0
bExp: 0
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
scale: -3
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
0x0:
type: int64_t
0xE7:
sensorType: 0x02
path: /xyz/openbmc_project/sensors/voltage/p5v_aux_scaled
sensorReadingType: 0x01
multiplierM: 64
offsetB: 0
bExp: 0
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
scale: -3
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
0x0:
type: int64_t
0xE8:
sensorType: 0x02
path: /xyz/openbmc_project/sensors/voltage/pvcc_cpu2
sensorReadingType: 0x01
multiplierM: 64
offsetB: 0
bExp: 0
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
scale: -3
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
0x0:
type: int64_t
0xE9:
sensorType: 0x02
path: /xyz/openbmc_project/sensors/voltage/pvcc_cpu3
sensorReadingType: 0x01
multiplierM: 64
offsetB: 0
bExp: 0
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
scale: -3
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
0x0:
type: int64_t
0xEA:
sensorType: 0x02
path: /xyz/openbmc_project/sensors/voltage/p12v_scaled
sensorReadingType: 0x01
multiplierM: 64
offsetB: 0
bExp: 0
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
scale: -3
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
0x0:
type: int64_t
0xEB:
sensorType: 0x02
path: /xyz/openbmc_project/sensors/voltage/p3v_vbat
sensorReadingType: 0x01
multiplierM: 64
offsetB: 0
bExp: 0
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
scale: -3
mutability: Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
interfaces:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment