CTU CAN FD IP Core issueshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues2019-11-29T09:00:02Zhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/337Resolve simulataneous SSP bit error capture and clear!2019-11-29T09:00:02ZIlle, Ondrej, Ing.Resolve simulataneous SSP bit error capture and clear!When SSP bit error is detected simultaneously with normal RX trigger,
it will probably happend that it will be ignored. Invoke this in
simulation and fix it.When SSP bit error is detected simultaneously with normal RX trigger,
it will probably happend that it will be ignored. Invoke this in
simulation and fix it.https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/336Feature tests extension2019-11-28T17:19:35ZIlle, Ondrej, Ing.Feature tests extensionImplement feature tests for the rest of the registers.Implement feature tests for the rest of the registers.Test improvementshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/250Add SSP_CFG support to driver2019-11-12T07:11:39ZIlle, Ondrej, Ing.Add SSP_CFG support to driverImplement functions for accessing SSP_CFG configuration register in
low-level C driver.Implement functions for accessing SSP_CFG configuration register in
low-level C driver.Linux driverMartin JeřábekMartin Jeřábekhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/335Update Vivado component after top level component change to can_top_apb2019-11-09T15:01:08ZPavel PisaUpdate Vivado component after top level component change to can_top_apbhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/171ALC extension of Arbitration feature test.2019-11-08T03:36:00ZIlle, Ondrej, Ing.ALC extension of Arbitration feature test.Read out ALC value, pre-calculate expected value in Arbitration feature test, and compareRead out ALC value, pre-calculate expected value in Arbitration feature test, and compareTest improvementshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/288Reset value test2019-11-08T03:35:10ZIlle, Ondrej, Ing.Reset value testAdd feature test for reset value.
Now "CAN_FD_registers" contain an array of registers. Add
test which will iterate over the registers, read its content
and compare with its reset value.Add feature test for reset value.
Now "CAN_FD_registers" contain an array of registers. Add
test which will iterate over the registers, read its content
and compare with its reset value.Test improvementsIng. Viktor FúraIng. Viktor Fúrahttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/311Feature test clean-up2019-11-08T03:03:21ZIlle, Ondrej, Ing.Feature test clean-upRemove obsolete feature tests, modify existing ones to reflect newest expected HW behvaiour.Remove obsolete feature tests, modify existing ones to reflect newest expected HW behvaiour.Test improvementshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/333fix build issues2019-11-08T02:17:02ZIlle, Ondrej, Ing.fix build issueshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/328FCSI, EWLI trigger and handling2019-11-07T01:12:42ZJaroslav BeranFCSI, EWLI trigger and handlingThe interrupt triggering improved much in last revisions, still there are some issues.
##### HW
```
[ 140.658852] ctucanfd c0052000.ctu_can_fd can1: ctu_can_fd device registered
[ 140.658872] ctucanfd c0052000.ctu_can_fd can1: ctucan...The interrupt triggering improved much in last revisions, still there are some issues.
##### HW
```
[ 140.658852] ctucanfd c0052000.ctu_can_fd can1: ctu_can_fd device registered
[ 140.658872] ctucanfd c0052000.ctu_can_fd can1: ctucan_err_interrupt: ISR = 0x00000010, rxerr 0, txerr 0, error type 0, pos 31, ALC id_field 0, bit 0
[ 140.679047] ctucanfd c0052000.ctu_can_fd can1: Fault conf: state = 0
[ 140.685546] ctucanfd c0052000.ctu_can_fd can1: reached error active state
[ 140.692811] IPv6: ADDRCONF(NETDEV_CHANGE): can1: link becomes ready
[ 167.194387] ctucanfd c0052000.ctu_can_fd can1: ctucan_err_interrupt: ISR = 0x00000004, rxerr 0, txerr 96, error type 0, pos 2, ALC id_field 0, bit 0
[ 167.207662] ctucanfd c0052000.ctu_can_fd can1: error_warning
```
EWL triggers when txerr reaches txerr limit. That's good.
```
[ 167.213520] ctucanfd c0052000.ctu_can_fd can1: ctucan_err_interrupt: ISR = 0x00000c10, rxerr 0, txerr 163, error type 2, pos 7, ALC id_field 0, bit 0
[ 167.226875] ctucanfd c0052000.ctu_can_fd can1: Fault conf: state = 1
[ 167.233394] ctucanfd c0052000.ctu_can_fd can1: error_warning, but ISR[FCSI] was set! (HW bug?)
[ 167.242331] ctucanfd c0052000.ctu_can_fd can1: error_warning
```
FCSI triggers, because txerr > 128. Then the controller should become ERROR-PASSIVE, but there is `Fault conf: state = 1`, which means ERROR-WARNING. This ERROR-WARNING state is returned by `ctucan_hw_read_error_state` function, that reads CTU_CAN_FD_EWL register and finds that `reg.s.era` is set. It shouldn't be, right?
Another matter is that when error counters fall down below the error warning limit, the EWLI should trigger too (but it doesn't), so driver can change back to ERROR-ACTIVE state.
##### Driver
I would then suggest to rewrite error interrupt handling in a way that FCSI and EWLI are handled together in one `if` block and get rid of the `error_warning, but ISR[FCSI] was set! (HW bug?)`. Or is there a reason to keep it separate?https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/308Remove tripple sampling mode from driver2019-10-30T21:58:47ZIlle, Ondrej, Ing.Remove tripple sampling mode from driverThis is a legacy feature and shall be removed as it is not present in HW anymore!This is a legacy feature and shall be removed as it is not present in HW anymore!Linux driverhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/322Linux driver review2019-10-30T21:51:43ZIlle, Ondrej, Ing.Linux driver reviewLinux driverhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/329EWLI both ways2019-10-30T21:46:39ZIlle, Ondrej, Ing.EWLI both waysTrigger EWL Interrupt also when both TX, RX Error counters drop below the EWL.
This is needed by driver to properly return to Error Active state from Error
Warning state.Trigger EWL Interrupt also when both TX, RX Error counters drop below the EWL.
This is needed by driver to properly return to Error Active state from Error
Warning state.https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/291Remove simulation reset2019-10-30T21:24:51ZIlle, Ondrej, Ing.Remove simulation resetRAM memories should not be reset in simulation. Remove this and check TCs.RAM memories should not be reset in simulation. Remove this and check TCs.https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/185driver: error interrupt: FCSI vs ctu_can_fd_read_error_state race condition2019-10-30T19:52:00ZMartin Jeřábekdriver: error interrupt: FCSI vs ctu_can_fd_read_error_state race conditionWhen receiving FCSI interrupt (error passive or bus off), it means that the controller is *or was* in that state. So when checking state afterwards, it should be like this:
1. state is ERROR_PASSIVE -> obviously we are EP
2. state is BUS...When receiving FCSI interrupt (error passive or bus off), it means that the controller is *or was* in that state. So when checking state afterwards, it should be like this:
1. state is ERROR_PASSIVE -> obviously we are EP
2. state is BUS_OFF -> we are bus off and the controller stays there until reset
3. state is *ERROR_WARNING or ERROR_ACTIVE* -> the controller was in EP, but now it is not; we should emit EP error info nonetheless, because the condition occured.
TODO: In case 3 (EPI + EW), should we announce the current EW state or not?
TODO2: Is EWI triggered only when the error counter is increased into EW zone, or also it it is decreased from EP to EW?https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/314Component for Quartus / Platform Designer (Qsys)2019-10-28T17:01:54ZJaroslav BeranComponent for Quartus / Platform Designer (Qsys)Add an Tcl script for generating ctu_can_fd component for Intel Platform DesignerAdd an Tcl script for generating ctu_can_fd component for Intel Platform Designerhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/326Missing TX spinlock release leads to deadlock2019-10-28T16:08:15ZJaroslav BeranMissing TX spinlock release leads to deadlockIn case the _TXB not in a finished state_ bug uccurs, TX spinlock isn't unlocked before returning from `ctucan_tx_interrupt`, which results in deadlock.In case the _TXB not in a finished state_ bug uccurs, TX spinlock isn't unlocked before returning from `ctucan_tx_interrupt`, which results in deadlock.https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/327Fix forgotten line removal2019-10-25T17:49:53ZIlle, Ondrej, Ing.Fix forgotten line removalhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/324Do not return TX_OK2019-10-23T18:24:54ZIlle, Ondrej, Ing.Do not return TX_OKModify Linux driver not to return NETDEV_TX_OK when failed to insert CAN frame!Modify Linux driver not to return NETDEV_TX_OK when failed to insert CAN frame!Linux driverhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/320Edge based EWL Interrupt2019-10-16T21:01:38ZIlle, Ondrej, Ing.Edge based EWL InterruptImplement EWL Interrupt to be edge based, not level-based.Implement EWL Interrupt to be edge based, not level-based.ISO optimizationshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/161driver: cleanup, select names2019-10-16T19:54:24ZMartin Jeřábekdriver: cleanup, select namesThe final issue to be handled in the driver milestone.
Choose:
* function prefix
* name of device in device treeThe final issue to be handled in the driver milestone.
Choose:
* function prefix
* name of device in device treeLinux driver