- 09 Sep, 2019 3 commits
-
-
Tomasz Wlostowski authored
-
Tomasz Wlostowski authored
- use new version of mini-rpc (less overhead on RT communication polling) - adjust DMTD averaging interval (shorter for calibration -> speedup) - make sure the PLL works in freemaster mode before starting calibration - release control over ports to HAL only after all ports have finished the TX path calibration
-
Tomasz Wlostowski authored
-
- 06 Sep, 2019 2 commits
-
-
Maciej Lipinski authored
After unplugging fiber, the early_link_up flag is cleared a bit later than the detection of link_down happens. This resulted in the tx_setup state machine trying to calibrate unplugged link. The things worked because the FSM would hang in wait_lock state and then timeout. Yet, this did not seem the best solution. So, I added timeout to wait for the early_link_up bit to be cleared
-
Maciej Lipinski authored
If there were more ports connected than just slave port, unplugging any of the ports would result (on BC) the timing_mode to be changed to FREE_MASTER. As a consquence, the port in slave state was reseted and would re-establishs sync. It was fixed by checking whether the unplugged port was slave (i.e. was locked)
-
- 04 Sep, 2019 4 commits
-
-
Maciej Lipinski authored
-
Maciej Lipinski authored
-
Maciej Lipinski authored
-
Tomasz Wlostowski authored
-
- 29 Aug, 2019 9 commits
-
-
Adam Wujek authored
Signed-off-by: Adam Wujek <adam.wujek@cern.ch>
-
Tomasz Wlostowski authored
userspace: add optional Makefile.specific included in the main makefiles to provide user-specific build configuration
-
Maciej Lipinski authored
This is copy+paste+cleanup/fixes of what Tom developed in the branch tom-v6-determinism-5.0.1.
-
Maciej Lipinski authored
-
Maciej Lipinski authored
[HAL] remove HAL_PORT_RX_SETUP_STATE_CALIB_NO_LPDC from hal_port_fsm_rx and move bitslide measurement Rational: when LPDC is done, we need to wait for link_up (the early_link_up is already set). There can be potentially time when we are in the HAL_PORT_RX_SETUP_STATE_DONE done state and the early_link_up=1 while link_up=0. This forces a bit different behavior for the LPDC and non-LPDC behavior. The new approarch: - if no LPDC, go directly to HAL_PORT_RX_SETUP_STATE_DONE and wait there for link_up - if LPDC, do the all the necessary stuff and then wait for link_up in HAL_PORT_RX_SETUP_STATE_DONE The bitslide measurement could be done only for non-LPDC, yet there is no harm in reading the bitslide register in all cases, it is hardcoded to zero when LPDC is supported. Doing it outside the hal_port_fsm_rx is more similar to what was in the original HAL, furthermore, bitslide measurement was there before LPDC, so it can be considered somehow independent
-
Maciej Lipinski authored
As it is now, once the port with index=0 is calibrated, the _pll_state is never updated. Also, since the states are called recursively in case new state is entered, the _pll_state is not updated unless this is called on port with index=0. Trying to call it regardless of the port before implementing complicated mechanism to manage updates once per all ports under calibration.
-
Maciej Lipinski authored
- add timeout for tx calibration to overcome bugs in reading info from SoftPLL - change initial calibration tolerance - come changes in prints
-
Maciej Lipinski authored
-
Maciej Lipinski authored
- changed update of _pll_state to be done when the FSM is called on the first LPCD-supported port, not assuming its index is 0 - added disabling of phase tracking that was missing
-
- 28 Aug, 2019 2 commits
-
-
Maciej Lipinski authored
- use the global LPDC structure to know whether the file is read/synched (instead of the hack that was used so far) - rename the variables/function name to be more self-explanatory
-
Maciej Lipinski authored
- for tx setup, we need to do some stuff for only one port and we need to do other stuff when all ports are calibrated, yet we need to know this global information when executing on a port. - Added structure to the hal_ports_t that is pointed to from each port that supports LPDC. This structure is then updated and checked. - use this stucture to do the following: * execute update of _pll_state only when hal_port_fsm_tx is executed on the first port that supports LPDC (it does not need to be port with index 0) * execute writing configuration file when all LPDC-supporting port has finished the tx_setup
-
- 27 Aug, 2019 5 commits
-
-
Maciej Lipinski authored
If already exists, the file needs to be read once for all ports and the structures of the ports need to be updated. this is better done at the very begining for all ports rather then making a hack and executing it when port_index=0. Thus, move the thing to the initial global init.
-
Maciej Lipinski authored
-
Maciej Lipinski authored
-
Maciej Lipinski authored
These defines are used only in HAL
-
Maciej Lipinski authored
- regardless whether LPDC is supported or not, some calibration flags need to be set, more over some of them have tx in name, so setting them in hal_port_rx_setup_state_fsm() is messy. So.. - set any LPDC-irrelevant flags in the port_fsm when link_up - make sure the value of bitslide is cleared when link_down - measure bitslide only in NO_LPDC state, otherwise leave it zero
-
- 26 Aug, 2019 7 commits
-
-
Maciej Lipinski authored
-
Maciej Lipinski authored
needed for wr_mon to display things correctly
-
Jean-Claude BAU authored
This is a implementation of the Low Phase Drift Calibration based on Tom's work (branch tom-v6-determinism-5.0.1) This commit has not been tested. It just compiles.
-
Jean-Claude BAU authored
NOTE: work ported from Tom's commits on Low Phase Drift Calibration
-
Maciej Lipinski authored
the update includes - some new registers that were added long time ago to HDL but the headers in SW were not updated - Low Phase Drift configuration in MDIO/PCS and EP regs
-
Tomasz Wlostowski authored
NOTE: consider merging with dot-config.c
-
Maciej Lipinski authored
-
- 23 Aug, 2019 2 commits
-
-
Maciej Lipinski authored
Despite corrupted header, we still want to use this SFP because it can actually be functional. We have copper SFPs with such problem that are fully functional (and did work with the previous version of HAL, by chance). So, we now detect insertion of such SFP (with unreadable header), yet we make sure that such SFP is declared unrecognized (zero header data) such that SNMP complains.
-
Maciej Lipinski authored
-
- 22 Aug, 2019 2 commits
-
-
Maciej Lipinski authored
Two issues: 1) the update function of sync led had a bug (wrong structure updated) 2) the leds were not reseted when on link_down Also, in the "old HAL", the wrmode LED was set to SFP_LED_WRMODE_OFF, so I updated the code accordingly.
-
Maciej Lipinski authored
- phase value was printed too often, should be done only if debugging - printf() should be avoided, changed to proper macros
-
- 15 Aug, 2019 2 commits
-
-
Jean-Claude BAU authored
-
Jean-Claude BAU authored
-
- 14 Aug, 2019 1 commit
-
-
Jean-Claude BAU authored
- Change method names - Change variable location - Change includes - ...
-
- 13 Aug, 2019 1 commit
-
-
Jean-Claude BAU authored
New implementation of HAL using sub state machines. The objective is to facilitate the integration of the new feature "Low Phase Drift Calibration" which needs two new state machines. The HAL state machine is available by opening the hal.html file
-