9.16. PTP hardware clock register block
The PTP hardware clock register block has a header with type 0x0000C080, version 0x00000100, and carries several control registers for the PTP clock.
Address |
Field |
31..24 |
23..16 |
15..8 |
7..0 |
Reset value |
---|---|---|---|---|---|---|
RBB+0x00 |
Type |
Vendor ID |
Type |
RO 0x0000C080 |
||
RBB+0x04 |
Version |
Major |
Minor |
Patch |
Meta |
RO 0x00000100 |
RBB+0x08 |
Next pointer |
Pointer to next register block |
RO - |
|||
RBB+0x0C |
Control |
Control |
RO - |
|||
RBB+0x10 |
Current time |
Current time (fractional ns) |
RO - |
|||
RBB+0x14 |
Current time |
Current time (ns) |
RO - |
|||
RBB+0x18 |
Current time |
Current time (sec, lower 32) |
RO - |
|||
RBB+0x1C |
Current time |
Current time (sec, upper 32) |
RO - |
|||
RBB+0x20 |
Get time |
Get time (fractional ns) |
RO - |
|||
RBB+0x24 |
Get time |
Get time (ns) |
RO - |
|||
RBB+0x28 |
Get time |
Get time (sec, lower 32) |
RO - |
|||
RBB+0x2C |
Get time |
Get time (sec, upper 32) |
RO - |
|||
RBB+0x30 |
Set time |
Set time (fractional ns) |
RW - |
|||
RBB+0x34 |
Set time |
Set time (ns) |
RW - |
|||
RBB+0x38 |
Set time |
Set time (sec, lower 32) |
RW - |
|||
RBB+0x3C |
Set time |
Set time (sec, upper 32) |
RW - |
|||
RBB+0x40 |
Period |
Period (fractional ns) |
RW - |
|||
RBB+0x44 |
Period |
Period (ns) |
RW - |
|||
RBB+0x48 |
Nominal period |
Nominal period (fractional ns) |
RO - |
|||
RBB+0x4C |
Nominal period |
Nominal period (ns) |
RO - |
|||
RBB+0x50 |
Adj time |
Adj time (fractional ns) |
RW - |
|||
RBB+0x54 |
Adj time |
Adj time (ns) |
RW - |
|||
RBB+0x58 |
Adj time count |
Adj time cycle count |
RW - |
|||
RBB+0x5C |
Adj time act |
Adj time active |
RO - |
See Register blocks for definitions of the standard register block header fields.
- Current time
The current time registers read the current time from the PTP clock, with no double-buffering.
Address
31..24
23..16
15..8
7..0
Reset value
RBB+0x10
Current time (fractional ns)
RO -
RBB+0x14
Current time (ns)
RO -
RBB+0x18
Current time (sec, lower 32)
RO -
RBB+0x1C
Current time (sec, upper 32)
RO -
- Get time
The get time registers read the current time from the PTP clock, with all values latched coincident with reading the fractional ns register.
Address
31..24
23..16
15..8
7..0
Reset value
RBB+0x20
Get time (fractional ns)
RO -
RBB+0x24
Get time (ns)
RO -
RBB+0x28
Get time (sec, lower 32)
RO -
RBB+0x2C
Get time (sec, upper 32)
RO -
- Set time
The set time registers set the current time on the PTP clock, with all values latched coincident with writing the upper 32 bits of the seconds field.
Address
31..24
23..16
15..8
7..0
Reset value
RBB+0x30
Set time (fractional ns)
RW -
RBB+0x34
Set time (ns)
RW -
RBB+0x38
Set time (sec, lower 32)
RW -
RBB+0x3C
Set time (sec, upper 32)
RW -
- Period
The period registers control the period of the PTP clock, with all values latched coincident with writing the ns field. The period value is accumulated into the PTP clock on every clock cycle.
Address
31..24
23..16
15..8
7..0
Reset value
RBB+0x40
Period (fractional ns)
RW -
RBB+0x44
Period (ns)
RW -
- Nominal period
The nominal period registers contain the nominal period of the PTP clock, which corresponds to zero frequency offset in the ideal case.
Address
31..24
23..16
15..8
7..0
Reset value
RBB+0x48
Nominal period (fractional ns)
RO -
RBB+0x4C
Nominal period (ns)
RO -
- Adjust time
The adjust time registers can be used to slew the clock over some time period. An adjustment can be specified with some amount of time added every clock cycle for N cycles.
Address
31..24
23..16
15..8
7..0
Reset value
RBB+0x50
Adj time (fractional ns)
RW -
RBB+0x54
Adj time (ns)
RW -
RBB+0x58
Adj time cycle count
RW -
RBB+0x5C
Adj time active
RO -