litex.git
8 years agolitecores: add -Ob option to make.py (allow to build with yosys for example)
Florent Kermarrec [Tue, 18 Aug 2015 23:06:48 +0000 (01:06 +0200)]
litecores: add -Ob option to make.py (allow to build with yosys for example)

8 years agoliteeth/phy: only use clk_freq for LiteEthPHYGMIIMII in autodetect
Florent Kermarrec [Tue, 18 Aug 2015 23:07:41 +0000 (01:07 +0200)]
liteeth/phy: only use clk_freq for LiteEthPHYGMIIMII in autodetect

8 years agotools/flterm: replace int(a, 16) with int(a, 0) for --kernel-adr
Florent Kermarrec [Tue, 18 Aug 2015 13:47:09 +0000 (15:47 +0200)]
tools/flterm: replace int(a, 16) with int(a, 0) for --kernel-adr

8 years agotools/flterm.py: cleanup kernel-adr argument parsing
Florent Kermarrec [Thu, 13 Aug 2015 11:24:39 +0000 (13:24 +0200)]
tools/flterm.py: cleanup kernel-adr argument parsing

8 years agoUse shutil rather then rm -rf command.
Tim 'mithro' Ansell [Wed, 12 Aug 2015 11:28:50 +0000 (12:28 +0100)]
Use shutil rather then rm -rf command.

8 years agoUse shell for globbing in clean.
Tim 'mithro' Ansell [Wed, 12 Aug 2015 11:28:49 +0000 (12:28 +0100)]
Use shell for globbing in clean.

8 years agoAll commands run should be checked.
Tim 'mithro' Ansell [Wed, 12 Aug 2015 11:28:48 +0000 (12:28 +0100)]
All commands run should be checked.

8 years agotools/flterm.py: some cleanup and fix last frame data that was not transmitted
Florent Kermarrec [Wed, 12 Aug 2015 09:41:08 +0000 (11:41 +0200)]
tools/flterm.py: some cleanup and fix last frame data that was not transmitted

8 years agounwinder: update.
whitequark [Mon, 10 Aug 2015 13:23:02 +0000 (16:23 +0300)]
unwinder: update.

8 years agolibdyld: add const qualifiers.
whitequark [Sat, 8 Aug 2015 12:21:09 +0000 (15:21 +0300)]
libdyld: add const qualifiers.

8 years agolibbase: add const qualifiers.
whitequark [Sat, 8 Aug 2015 09:16:27 +0000 (12:16 +0300)]
libbase: add const qualifiers.

8 years agolibdyld: all ELF relocations may refer to the current object.
whitequark [Fri, 7 Aug 2015 08:05:28 +0000 (11:05 +0300)]
libdyld: all ELF relocations may refer to the current object.

8 years agoliteeth/phy: rename rgmii to s6rgmii since specific to Spartan6
Florent Kermarrec [Wed, 5 Aug 2015 08:33:08 +0000 (10:33 +0200)]
liteeth/phy: rename rgmii to s6rgmii since specific to Spartan6

Also remove autodetection support for RGMII. For it to work we would need to pass the device we are building for.

8 years agoliteeth: add rgmii phy
Florent Kermarrec [Tue, 4 Aug 2015 22:50:55 +0000 (00:50 +0200)]
liteeth: add rgmii phy

8 years agosdram/phy/s6ddrphy: add DDR3 support
Florent Kermarrec [Tue, 4 Aug 2015 09:20:27 +0000 (11:20 +0200)]
sdram/phy/s6ddrphy: add DDR3 support

8 years agosdram/phy/initsequence: add burst chop 4 (BC4) for DDR3
Florent Kermarrec [Tue, 4 Aug 2015 09:18:28 +0000 (11:18 +0200)]
sdram/phy/initsequence: add burst chop 4 (BC4) for DDR3

This is needed for half rate controllers with burst length of 4.
For best efficiency quarter rate controllers should be used.

8 years agolibunwind: build with -DNDEBUG.
whitequark [Sun, 2 Aug 2015 03:25:40 +0000 (06:25 +0300)]
libunwind: build with -DNDEBUG.

8 years agodyld: style
Sebastien Bourdeauducq [Sun, 2 Aug 2015 04:35:48 +0000 (12:35 +0800)]
dyld: style

8 years agolibdyld: handle existing but undefined symbols during lookup.
whitequark [Sun, 2 Aug 2015 02:49:15 +0000 (05:49 +0300)]
libdyld: handle existing but undefined symbols during lookup.

8 years agolibdyld: R_*_RELATIVE never specify a symbol.
whitequark [Sun, 2 Aug 2015 02:29:23 +0000 (05:29 +0300)]
libdyld: R_*_RELATIVE never specify a symbol.

8 years agolibdyld: handle unaligned relocations.
whitequark [Sat, 1 Aug 2015 17:26:27 +0000 (20:26 +0300)]
libdyld: handle unaligned relocations.

8 years agounwinder: update.
whitequark [Sat, 1 Aug 2015 17:16:59 +0000 (20:16 +0300)]
unwinder: update.

8 years agolibdyld: add support for R_OR1K_{NONE,32,GLOB_DAT}.
whitequark [Sat, 1 Aug 2015 17:16:10 +0000 (20:16 +0300)]
libdyld: add support for R_OR1K_{NONE,32,GLOB_DAT}.

8 years agolibbase: also pass exception PC and EA to exception handler.
whitequark [Sat, 1 Aug 2015 17:15:42 +0000 (20:15 +0300)]
libbase: also pass exception PC and EA to exception handler.

8 years agolibbase: downstream users should provide fprintf.
whitequark [Sat, 1 Aug 2015 17:14:09 +0000 (20:14 +0300)]
libbase: downstream users should provide fprintf.

8 years agolibdyld: fix dyld_lookup algorithm.
whitequark [Sat, 1 Aug 2015 14:21:31 +0000 (17:21 +0300)]
libdyld: fix dyld_lookup algorithm.

8 years agolibdyld: fix DT_HASH address calculation.
whitequark [Sat, 1 Aug 2015 12:48:56 +0000 (15:48 +0300)]
libdyld: fix DT_HASH address calculation.

8 years agosoftware/common.mak: use PYTHON env var
Sebastien Bourdeauducq [Fri, 31 Jul 2015 10:31:04 +0000 (18:31 +0800)]
software/common.mak: use PYTHON env var

8 years agoExport _cache_init from crt0.S.
whitequark [Thu, 30 Jul 2015 23:40:52 +0000 (02:40 +0300)]
Export _cache_init from crt0.S.

8 years agoImplement a dynamic linker.
whitequark [Thu, 30 Jul 2015 23:38:20 +0000 (02:38 +0300)]
Implement a dynamic linker.

8 years agoUpdate libunwind submodule.
whitequark [Thu, 30 Jul 2015 23:35:30 +0000 (02:35 +0300)]
Update libunwind submodule.

8 years agobios/sdram: fix error_cnt computation in memtest
Florent Kermarrec [Thu, 30 Jul 2015 21:55:31 +0000 (23:55 +0200)]
bios/sdram: fix error_cnt computation in memtest

8 years agolibbase: define intptr_t.
whitequark [Thu, 30 Jul 2015 07:55:12 +0000 (10:55 +0300)]
libbase: define intptr_t.

8 years agoEnable ror, ffl1 and addc for OR1K.
whitequark [Thu, 30 Jul 2015 07:55:01 +0000 (10:55 +0300)]
Enable ror, ffl1 and addc for OR1K.

8 years agoMake sure the BIOS file ends on an aligned boundary.
whitequark [Wed, 29 Jul 2015 09:30:57 +0000 (12:30 +0300)]
Make sure the BIOS file ends on an aligned boundary.

If it does not, the address to which mkmscimg.py writes the CRC
and the address from which it is read could differ.

8 years agoDon't build base libraries and BIOS with -fPIC after all.
whitequark [Wed, 29 Jul 2015 09:09:05 +0000 (12:09 +0300)]
Don't build base libraries and BIOS with -fPIC after all.

8 years agomor1kx: enable ADDC, CMOV and FFL1 instructions
Sebastien Bourdeauducq [Tue, 28 Jul 2015 16:08:21 +0000 (00:08 +0800)]
mor1kx: enable ADDC, CMOV and FFL1 instructions

8 years agosoc: increase default BIOS size
Sebastien Bourdeauducq [Tue, 28 Jul 2015 14:36:42 +0000 (22:36 +0800)]
soc: increase default BIOS size

8 years agoMerge branch 'master' of https://github.com/m-labs/misoc
Florent Kermarrec [Tue, 28 Jul 2015 09:59:48 +0000 (11:59 +0200)]
Merge branch 'master' of https://github.com/m-labs/misoc

8 years agoupdate lm32 with "Switch to -fPIC" changes.
Florent Kermarrec [Tue, 28 Jul 2015 09:11:11 +0000 (11:11 +0200)]
update lm32 with "Switch to -fPIC" changes.

8 years agoPass -integrated-as to clang.
whitequark [Tue, 28 Jul 2015 08:51:28 +0000 (11:51 +0300)]
Pass -integrated-as to clang.

This avoids misdetection of target assembler by clang.

8 years agoUpdate libbase/linker-sdram.ld with -fPIC support.
whitequark [Sun, 26 Jul 2015 13:15:02 +0000 (16:15 +0300)]
Update libbase/linker-sdram.ld with -fPIC support.

8 years agoSwitch to -fPIC.
whitequark [Sun, 26 Jul 2015 13:06:48 +0000 (16:06 +0300)]
Switch to -fPIC.

Using -fPIC for everything allows to link the MiSoC static libraries
both into static images such as the BIOS as well as
into shared libraries.

8 years agoRemove useless includes pulled in by libunwind.
whitequark [Sun, 26 Jul 2015 10:12:23 +0000 (13:12 +0300)]
Remove useless includes pulled in by libunwind.

These aren't used by libunwind in any configuration and
should be also removed in upstream.

8 years agoAdd libunwind.
whitequark [Sun, 26 Jul 2015 09:59:18 +0000 (12:59 +0300)]
Add libunwind.

8 years agoAdd a stub getenv() implementation.
whitequark [Sun, 26 Jul 2015 09:55:52 +0000 (12:55 +0300)]
Add a stub getenv() implementation.

This is not strictly necessary to build libunwind (it can
be built with -DNDEBUG), but it will be handy while it is
debugged.

It can be removed afterwards.

8 years agoAdd a stub pthread header.
whitequark [Sun, 26 Jul 2015 09:54:40 +0000 (12:54 +0300)]
Add a stub pthread header.

The header implements only the pthread rwlock interface, which
never actually locks.

This is necessary to build libunwind.

8 years agoAdd headers for the dynamic linker interface.
whitequark [Sun, 26 Jul 2015 09:53:18 +0000 (12:53 +0300)]
Add headers for the dynamic linker interface.

These are required for libunwind to discover
the exception frame headers.

8 years agoAdd a stub C++ standard library.
whitequark [Sun, 26 Jul 2015 09:49:02 +0000 (12:49 +0300)]
Add a stub C++ standard library.

This is necessary to build libunwind.

8 years agoAdd basic inttypes.h.
whitequark [Sun, 26 Jul 2015 09:44:13 +0000 (12:44 +0300)]
Add basic inttypes.h.

This is taken from glibc. Only PRI* definitions are imported;
functions are not.

8 years agoMark abort() as __attribute__((noreturn)).
whitequark [Sun, 26 Jul 2015 09:43:22 +0000 (12:43 +0300)]
Mark abort() as __attribute__((noreturn)).

8 years agoAdd support for fprintf(stderr, ...).
whitequark [Sun, 26 Jul 2015 09:42:53 +0000 (12:42 +0300)]
Add support for fprintf(stderr, ...).

8 years agoDon't use clang for anything except or1k.
whitequark [Sun, 26 Jul 2015 07:00:58 +0000 (10:00 +0300)]
Don't use clang for anything except or1k.

8 years agocommon.mak: Pass -fexceptions to clang and clang++.
whitequark [Sun, 26 Jul 2015 00:30:21 +0000 (03:30 +0300)]
common.mak: Pass -fexceptions to clang and clang++.

This results in generation of .eh_frame sections. These sections
can be discarded during final linking, or included if exception
handling is desired. For exception handling to work, all sources
must be built with -fexceptions.

8 years agocommon.mak: use clang/clang++ to compile C/C++ sources.
whitequark [Sun, 26 Jul 2015 00:28:37 +0000 (03:28 +0300)]
common.mak: use clang/clang++ to compile C/C++ sources.

Note that -integrated-as is not active by default on OR1K,
so we're still shelling out to binutils to assemble.
It is not yet possible to build everything using -integrated-as.

8 years agocommon.mak: remove RANLIB.
whitequark [Sun, 26 Jul 2015 00:20:23 +0000 (03:20 +0300)]
common.mak: remove RANLIB.

`ranlib` is not necessary on any system we can possibly build for,
as it is superseded by `ar s` for the last ten years or so (at least).
Thus, change ar invocations to `ar crs`, also removing a `l` flag
that is ignored by binutils.

8 years agocommon.mak: remove AS.
whitequark [Sat, 25 Jul 2015 23:46:03 +0000 (02:46 +0300)]
common.mak: remove AS.

$(AS) was never used: $(assemble) invokes the C compiler instead.
In case of LLVM, this will allow us to consistently use the LLVM
internal assembler for both inline assembly in C and assembly
sources; so, avoid ever invoking binutils as explicitly.

8 years agomisoclib/com/uart: remove irq condition parameters and use "non-full" for tx irq...
Florent Kermarrec [Fri, 24 Jul 2015 22:21:59 +0000 (00:21 +0200)]
misoclib/com/uart: remove irq condition parameters and use "non-full" for tx irq, "non-empty" for rx irq.

An optimal solution for both sync and async mode is not easy to implement, it would requires moving CDC out of UART module and handling in the PHY with AsyncFIFO or minimal depth.
For now use the solution that works for both cases. We'll try to optimize that if we have performance issues.

8 years agomisoclib: integrate mxcrg.py in mlabs_video target, remove others directory
Florent Kermarrec [Fri, 24 Jul 2015 21:10:19 +0000 (23:10 +0200)]
misoclib: integrate mxcrg.py in mlabs_video target, remove others directory

we should also get rid of mxcrg.v (similar to what is done on papilio or pipstrello)

8 years agomisoclib/com/uart: replace revered Migen FIFO function with specific _get_uart_fifo...
Florent Kermarrec [Fri, 24 Jul 2015 11:57:57 +0000 (13:57 +0200)]
misoclib/com/uart: replace revered Migen FIFO function with specific _get_uart_fifo function for our use case.

8 years agolitepcie/frontend/dma: group loop index and count in loop_status register (avoid...
Florent Kermarrec [Fri, 24 Jul 2015 11:52:57 +0000 (13:52 +0200)]
litepcie/frontend/dma: group loop index and count in loop_status register (avoid 2 register reads)

8 years agomisoclib/com/uart: cleanup and add irq condition parameters
Florent Kermarrec [Fri, 24 Jul 2015 09:03:40 +0000 (11:03 +0200)]
misoclib/com/uart: cleanup and add irq condition parameters
- reintroduce RX/TX split (ease comprehension)
- use FIFO wrapper function from Migen.
- add tx_irq_condition and rx_irq_condition

8 years agolitepcie/frontend/dma: add loop counter (useful to detect missed interrupts)
Florent Kermarrec [Wed, 22 Jul 2015 20:55:11 +0000 (22:55 +0200)]
litepcie/frontend/dma: add loop counter (useful to detect missed interrupts)

8 years agolitepcie: use data instead of dat in dma_layout (allow use of migen.actorlib.packet...
Florent Kermarrec [Wed, 22 Jul 2015 19:44:53 +0000 (21:44 +0200)]
litepcie: use data instead of dat in dma_layout (allow use of migen.actorlib.packet modules on dma dataflow)

8 years agolitepcie: use optional platform.misoc_path to add litepcie phy wrapper verilog files
Florent Kermarrec [Wed, 22 Jul 2015 12:13:41 +0000 (14:13 +0200)]
litepcie: use optional platform.misoc_path to add litepcie phy wrapper verilog files

We should eventually try to use python package_data or data_file for that.

8 years agouart: remove option to refill HW from uart_write
Sebastien Bourdeauducq [Sun, 19 Jul 2015 21:41:38 +0000 (23:41 +0200)]
uart: remove option to refill HW from uart_write

8 years agouart: support async phys
Robert Jordens [Sun, 19 Jul 2015 07:23:35 +0000 (01:23 -0600)]
uart: support async phys

8 years agouart.c: rx overflow fix and tx simplification
Robert Jordens [Sun, 19 Jul 2015 07:23:34 +0000 (01:23 -0600)]
uart.c: rx overflow fix and tx simplification

* fixes the clearing of the rx ringbuffer on rx-overflow
* removes tx_level and tx_cts by restricting the ringbuffer
  to at least one slot empty
* agnostic of the details of the tx irq: works for uarts that
  generate tx interrupts on !tx-full or on tx-empty.
* only rx_produce and tx_consume need to be volatile

8 years agobios: add romboot
Florent Kermarrec [Tue, 14 Jul 2015 15:33:24 +0000 (17:33 +0200)]
bios: add romboot

When firmware is small enough, it can be interesting to run code from an embedded blockram memory (faster and not impacted by memory controller activity).
It can also be a fallback option in case boot from flash failed.
To use this, define ROM_BOOT_ADDRESS and initialize the blockram with the firmware data.

8 years agomake.py: use sys.path.insert(0...) to allow external designs to have specific targets...
Florent Kermarrec [Mon, 13 Jul 2015 15:00:03 +0000 (17:00 +0200)]
make.py: use sys.path.insert(0...) to allow external designs to have specific targets derived from a base target

8 years agomisoclib/video/dvisampler: add fifo_depth parameter
Florent Kermarrec [Mon, 13 Jul 2015 09:03:33 +0000 (11:03 +0200)]
misoclib/video/dvisampler: add fifo_depth parameter

8 years agowishbone2lasmi: fix "READ_DATA" state
Florent Kermarrec [Tue, 7 Jul 2015 13:45:06 +0000 (15:45 +0200)]
wishbone2lasmi: fix "READ_DATA" state

8 years agotools/flterm.py: fix kernel-adr support
Florent Kermarrec [Tue, 7 Jul 2015 12:58:49 +0000 (14:58 +0200)]
tools/flterm.py: fix kernel-adr support

8 years agoliteeth/core: add with_icmp parameter
Florent Kermarrec [Mon, 6 Jul 2015 19:23:19 +0000 (21:23 +0200)]
liteeth/core: add with_icmp parameter

8 years agouse sets for leave_out
Florent Kermarrec [Sun, 5 Jul 2015 20:49:23 +0000 (22:49 +0200)]
use sets for leave_out

8 years agoliteeth/core/mac: adapt depth on AsyncFIFOs according to phy (reduce ressource usage...
Florent Kermarrec [Sun, 5 Jul 2015 20:45:53 +0000 (22:45 +0200)]
liteeth/core/mac: adapt depth on AsyncFIFOs according to phy (reduce ressource usage with MII phy)

8 years agoliteeth: small logic optimizations on mac (eases timings on spartan6)
Florent Kermarrec [Sun, 5 Jul 2015 10:31:52 +0000 (12:31 +0200)]
liteeth: small logic optimizations on mac (eases timings on spartan6)

8 years agosoftware/bios: call eth_mode only if we have an ethernet mac (we don't need to call...
Florent Kermarrec [Sat, 4 Jul 2015 19:04:23 +0000 (21:04 +0200)]
software/bios: call eth_mode only if we have an ethernet mac (we don't need to call it when we have a hardware UDP/IP stack)

9 years agobios: show memtest command in help
Yann Sionneau [Thu, 2 Jul 2015 15:19:55 +0000 (17:19 +0200)]
bios: show memtest command in help

9 years agosoc: support constants without value
Sebastien Bourdeauducq [Sun, 28 Jun 2015 19:35:37 +0000 (21:35 +0200)]
soc: support constants without value

9 years agolibcompiler-rt: add fixdfdi
Sebastien Bourdeauducq [Sat, 27 Jun 2015 21:51:09 +0000 (23:51 +0200)]
libcompiler-rt: add fixdfdi

9 years agoflterm.py: use serial_for_url
Joe Britton [Fri, 26 Jun 2015 09:40:18 +0000 (11:40 +0200)]
flterm.py: use serial_for_url

9 years agolitesata/example_designs: fix core generation (RAID introduced some changes on the...
Florent Kermarrec [Thu, 25 Jun 2015 22:20:58 +0000 (00:20 +0200)]
litesata/example_designs: fix core generation (RAID introduced some changes on the PHY)

9 years agoMerge pull request #14 from olofk/misc_fixes
enjoy-digital [Thu, 25 Jun 2015 21:59:42 +0000 (23:59 +0200)]
Merge pull request #14 from olofk/misc_fixes

Misc fixes

9 years agolitesata/test: Add missing dependency on scrambler in bist_tb
Olof Kindgren [Thu, 25 Jun 2015 23:16:35 +0000 (01:16 +0200)]
litesata/test: Add missing dependency on scrambler in bist_tb

9 years agolitesata/example_designs: Add missing clock in phy instantiation
Olof Kindgren [Thu, 25 Jun 2015 23:15:34 +0000 (01:15 +0200)]
litesata/example_designs: Add missing clock in phy instantiation

9 years agoliteeth/example_designs: use new Keep SynthesisDirective
Florent Kermarrec [Tue, 23 Jun 2015 14:15:28 +0000 (16:15 +0200)]
liteeth/example_designs: use new Keep SynthesisDirective

9 years agosoftware/bios/sdram: flush dcache and l2 in memtest (otherwise we are partially testi...
Florent Kermarrec [Tue, 23 Jun 2015 07:01:34 +0000 (09:01 +0200)]
software/bios/sdram: flush dcache and l2 in memtest (otherwise we are partially testing the cache)

9 years agopipistrello: run at 83+1/3 MHz, cleanup CRG
Robert Jordens [Tue, 23 Jun 2015 00:48:31 +0000 (18:48 -0600)]
pipistrello: run at 83+1/3 MHz, cleanup CRG

9 years agoliteeth/software: fix wishbone bridge
Florent Kermarrec [Mon, 22 Jun 2015 22:53:31 +0000 (00:53 +0200)]
liteeth/software: fix wishbone bridge

9 years agoliteeth/example_designs: add false path between clock domains (speed up implementatio...
Florent Kermarrec [Mon, 22 Jun 2015 22:37:31 +0000 (00:37 +0200)]
liteeth/example_designs: add false path between clock domains (speed up implementation) and use automatic PHY detection

9 years agoliteeth/core/arp: fix table timer (wait_timer adaptation issue)
Florent Kermarrec [Mon, 22 Jun 2015 22:25:26 +0000 (00:25 +0200)]
liteeth/core/arp: fix table timer (wait_timer adaptation issue)

9 years agoliteeth/core/arp: fix missing MAC address in ARP reply
Florent Kermarrec [Mon, 22 Jun 2015 21:15:00 +0000 (23:15 +0200)]
liteeth/core/arp: fix missing MAC address in ARP reply

9 years agosoftware/libbase/system: fix flush_l2_cache
Florent Kermarrec [Fri, 19 Jun 2015 07:00:14 +0000 (09:00 +0200)]
software/libbase/system: fix flush_l2_cache

9 years agosoc/sdram: add L2_SIZE constant and avoid declaring an empty flush_l2_cache function...
Florent Kermarrec [Fri, 19 Jun 2015 06:39:37 +0000 (08:39 +0200)]
soc/sdram: add L2_SIZE constant and avoid declaring an empty flush_l2_cache function when L2_SIZE is not defined

9 years agoindentation
Sebastien Bourdeauducq [Wed, 17 Jun 2015 14:32:17 +0000 (08:32 -0600)]
indentation

9 years agosoc/sdram: add capability to share L2 cache in multi-CPU SoCs
Florent Kermarrec [Wed, 17 Jun 2015 12:52:30 +0000 (14:52 +0200)]
soc/sdram: add capability to share L2 cache in multi-CPU SoCs

9 years agosdram: use wishbone cache as L2 cache and add optional L2 cache to Minicon
Florent Kermarrec [Tue, 16 Jun 2015 17:06:24 +0000 (19:06 +0200)]
sdram: use wishbone cache as L2 cache and add optional L2 cache to Minicon

9 years agolitesata: use 200MHz clock and SATA3 (6.0Gb/s) on all example designs: working :)
Florent Kermarrec [Wed, 10 Jun 2015 10:15:59 +0000 (12:15 +0200)]
litesata: use 200MHz clock and SATA3 (6.0Gb/s) on all example designs: working :)

9 years agolitesata/phy/k7: apply AR# 63869 to keep CDR in hold during SATA link initialization
Florent Kermarrec [Wed, 10 Jun 2015 10:14:48 +0000 (12:14 +0200)]
litesata/phy/k7: apply AR# 63869 to keep CDR in hold during SATA link initialization

self.rxelecidle is already filtered so the "20 USRCLK cycles before setting RXCDRHOLD to 1'b0" are respected.