- 29 Jul, 2021 4 commits
-
-
Federico Vaga authored
-
Federico Vaga authored
Signed-off-by: Federico Vaga <federico.vaga@cern.ch>
-
Mathis MARION authored
When creating an IRQ domain, the code used to store a device struct pointer in the `of_node` field of the irq_domain struct returned by `irq_domain_add_linear`. This was done by casting to a void pointer and passing as the first argument of the function. In the SPEC repository (and supposedly other depending repositories), we would then get back the irq_domain struct by calling `irq_find_host` with again a device struct pointer casted to a void pointer as the argument. The function would compare the addresses of the 2 device structs and return the right irq_domain. This trick was most likely due to the fact that the IRQ domain API was conceived around OpenFirmware before version 4.4, and that the project should work for ACPI. A workaround for kernel 4.7 was written, which involved using a `select` function, and passing the address of the device struct as a parameter. It was particularly ugly as it would require getting around the `irq_find_host` to call immediately `irq_find_matching_fwspec` and pass in the address of the wanted device struct as a parameter in a hacky way to fit it inside two 32 bit integers. Kernel version 4.4 introduced fwnodes, which would make easier working with ACPI. Instead of repeating the hacky workaround (which would result in a kernel error on later kernels when calling irq_domain_add_linear), I allocated a fwnode_handle struct before creating a new IRQ domain. Then I used the new irq_domain_create_* API to get an irq_domain using this fwnode. I also took care of disallocating the fwnode_handle. On the other end, we can just call `irq_find_matching_fwnode` and pass dev.fwnode as a parameter. Signed-off-by: Gwenhael GOAVEC <gwenhael.goavec@femto-st.fr> Signed-off-by: Mathis MARION <mathis.marion@grenoble-inp.org>
-
Mathis MARION authored
`i2c_new_device` disappeared in kernel 5.2 and onwards. It is now required to use `i2c_new_client_device`, which works the same way except for error checking. Signed-off-by: Mathis MARION <mathis.marion@grenoble-inp.org>
-
- 14 Sep, 2020 3 commits
-
-
Federico Vaga authored
-
Federico Vaga authored
Signed-off-by: Federico Vaga <federico.vaga@cern.ch>
-
Mamta Shukla authored
The spi-ocore driver was not updating the actual_length field in the spi_message structure. This field could be used by SPI users to see if all bytes have been transferred. In particular we found the problem because the m25p80 driver uses the actual_length to determine if there are transmission errors (-EIO). Signed-off-by: Mamta Shukla <mamta.ramendra.shukla@cern.ch> Signed-off-by: Federico Vaga <federico.vaga@cern.ch>
-
- 24 Jul, 2020 4 commits
-
-
Dimitris Lampridis authored
-
Dimitris Lampridis authored
Signed-off-by: Dimitris Lampridis <dimitris.lampridis@cern.ch>
-
Dimitris Lampridis authored
Previously, the full flag was asserted at g_size-1 when using g_show_ahead. The new implementation solves this. However, for backward compatibility, the default is to still use the previous behaviour. Set g_show_ahead_legacy_mode to false to switch to the new one.
-
Dimitris Lampridis authored
-
- 07 Jul, 2020 1 commit
-
-
Dimitris Lampridis authored
-
- 25 May, 2020 1 commit
-
-
Tomasz Wlostowski authored
-
- 19 May, 2020 1 commit
-
-
Tristan Gingold authored
As a generic module to update xc7 firmware.
-
- 11 May, 2020 1 commit
-
-
Tomasz Wlostowski authored
-
- 06 May, 2020 3 commits
-
-
Tristan Gingold authored
Used for fpga-dev-id (aka the convention).
-
Tristan Gingold authored
-
Tristan Gingold authored
-
- 04 May, 2020 1 commit
-
-
Tristan Gingold authored
-
- 24 Apr, 2020 3 commits
-
-
Dimitris Lampridis authored
Signed-off-by: Dimitris Lampridis <dimitris.lampridis@cern.ch>
-
Dimitris Lampridis authored
This bugfix has been tested by myself on the latest development version of SPEC-based FMC-ADC, as well as by M. Lipinski on BTrain test setup. Closes #23.
-
Dimitris Lampridis authored
The only reason for this is to improve readability and reduce the usage of gc_posedge/gc_negedge, in case we want to deprecate them in the near future. Signed-off-by: Dimitris Lampridis <dimitris.lampridis@cern.ch>
-
- 23 Apr, 2020 1 commit
-
-
Dimitris Lampridis authored
Signed-off-by: Dimitris Lampridis <dimitris.lampridis@cern.ch>
-
- 21 Apr, 2020 5 commits
-
-
Dimitris Lampridis authored
The main reason for doing this is so that all our sync modules are based directly on gc_sync (instead of using it indirectly through gc_sync_ffs). Another benefit of this is that the feedback loop of the pulse synchroniser will now be two clock cycles shorter (one input clock cycle + one output clock cycle), since gc_sync_ffs is using one more flip-flop compared to gc_sync. This will also reduce the number of warnings in various synthesis and simulation tools, since gc_pulse_syncrhonizer is also used by the gc_sync_word modules, as well as the async dual clock FIFOs. Signed-off-by: Dimitris Lampridis <dimitris.lampridis@cern.ch>
-
Dimitris Lampridis authored
This was recently introduced by T. Gingold and we both agreed that it is not really adding much value, as it can be easily replaced by the more versatile combination ofgc_sync + gc_edge_detect. Signed-off-by: Dimitris Lampridis <dimitris.lampridis@cern.ch>
-
Dimitris Lampridis authored
This is necessary in order to properly "emulate" the previous implementation of the gc_sync_ffs module. Furthermore, a "new" module has been introduced, the gc_edge_detect, which combines positive and negative pulse edge detection. gc_negedge and gc_posedge have been rewritten to use internally the new gc_edge_detect. Signed-off-by: Dimitris Lampridis <dimitris.lampridis@cern.ch>
-
Dimitris Lampridis authored
This is to avoid any confusion caused by g_SYNC_EDGE and g_EDGE generics used in gc_sync, gc_sync_ffs and gc_sync_edge modules. Also use capitals for generics as defined by our coding style. Signed-off-by: Dimitris Lampridis <dimitris.lampridis@cern.ch>
-
Tristan Gingold authored
-
- 20 Apr, 2020 5 commits
-
-
Tristan Gingold authored
-
Tristan Gingold authored
-
Tristan Gingold authored
-
Tristan Gingold authored
-
Tristan Gingold authored
-
- 14 Apr, 2020 2 commits
-
-
Tristan Gingold authored
-
Tristan Gingold authored
-
- 09 Apr, 2020 1 commit
-
-
Maciej Lipinski authored
This generic is dummy (does nothing), yet it is needed since the generic component declaration in genram_pkg.vhd has such generic. It has it, because the xilinx generic_dpram.vhd has such generic and uses it. TBD whether we want to attempt at providing similar functionality for altera
-
- 03 Apr, 2020 1 commit
-
-
Dimitris Lampridis authored
-
- 30 Mar, 2020 1 commit
-
-
Dimitris Lampridis authored
Reported by Olof Kindgren (@olofk). See also merge request !4. Signed-off-by: Dimitris Lampridis <dimitris.lampridis@cern.ch>
-
- 26 Mar, 2020 2 commits
-
-
Dimitris Lampridis authored
1.0.4 - 2020-03-26 ================== https://www.ohwr.org/project/general-cores/tags/v1.0.4 Added ----- - [hdl] VHDL functions to convert characters and strings to upper/lower case. - [sw][i2c] Support for kernel greater than 4.7. - [hdl] Separate synchroniser and edge detection modules. - [hdl] 8b10b encoder. Changed ------- - [hdl] Rewritten the WB master interface used in simulations. - [hdl] Reimplement gc_sync_ffs using new synchroniser and edge detectors. Fixed ----- - [sw][spi] Align polarity and phase for Rx and Tx. - [hdl][i2c] Fix reset lock for I2C master. - [hdl] Avoid cyclic dependencies for log2 ceiling functions.
-
Dimitris Lampridis authored
-