* make sure all projects and relevant links are mentioned
* indicate which sub-directories relate to which project
* use markdown syntax
Change-Id: If126790c5652a6228e8a8ad1986e3b08adf46fae
This was originally in https://github.com/smunaut/ice40-playground
but has meanwhile been removed, only a fork at
https://github.com/laf0rge/ice40-playground remained.
Let's import the code here. The history is not all that exciting
so I'm saving myself the effort of git filter-branch or the like
to import the actual old commits.
The commit log is here for reference:
commit bd36d40cc30acbae68978df79eff03f0539a9a21
Author: Harald Welte <laforge@osmocom.org>
Date: Fri Sep 4 10:21:51 2020 +0200
e1-recorder main.c: Don't exist just because one ISO transfer failed
I get LIBUSB_TRANSFER_ERROR every so often (once every few hours) on my
laptop. Sure, it likely means there was some data lost, but the trace
can continue juts fine after this error. So make it non-fatal and
continue running.
commit 9b02b3e87400ba3d27bff05e2632fbd5a0698e8c
Author: Harald Welte <laforge@osmocom.org>
Date: Mon Aug 31 10:01:20 2020 +0200
Add 'replay' to re-play 2Mbps stream with realistic speed (to stdout)
commit 23103d3a8f9cc8b3f0ba602dbb4240040b2d008a
Author: Harald Welte <laforge@osmocom.org>
Date: Sun Aug 30 15:41:12 2020 +0200
dump: Use osmo_e1f to decode; send HLDC over GSMTAP
commit 7acd063a1245a34835d4488be3caad592f3c19d5
Author: Harald Welte <laforge@osmocom.org>
Date: Thu Aug 20 16:48:15 2020 +0200
dump.c: Add error plotting support
commit 90b90d04fff494b70ad220bd82ac48d43f3096c9
Author: Harald Welte <laforge@osmocom.org>
Date: Mon Jan 13 18:20:39 2020 +0100
dump: Add support for writing LAPD PCAP of E1 superchannel
commit f3a0cc34f0901c2cf257367351dddfddc6f7301e
Author: Harald Welte <laforge@osmocom.org>
Date: Mon Jan 13 16:37:23 2020 +0100
dump.c: Move handling of frames to separate function
commit 8deffb5907979e43e3a4236ea7bb8d54513513ac
Author: Harald Welte <laforge@osmocom.org>
Date: Mon Jan 13 16:34:39 2020 +0100
dump.c: remove local hexdump.[ch] and use libosmocore proper
commit 80d81e78737237ba3b6bae1deb7d5107d7f613b6
Author: Harald Welte <laforge@osmocom.org>
Date: Tue Sep 1 13:52:52 2020 +0200
tracer: use 0x6151 as PID
See 5e68831b26
commit b219af27b34bbd6deb2419aa38852d8d227b9fc0
Author: Harald Welte <laforge@osmocom.org>
Date: Mon Jan 6 13:47:28 2020 +0100
e1-recorder: Don't silently ignore write failures
The disk may be full, for example. We should report that to the user
and terminate the program.
commit ead99fdfae6f1db54c79a91ef407a86c67352d87
Author: Harald Welte <laforge@osmocom.org>
Date: Mon Jan 6 12:41:23 2020 +0100
e1-recorder: Exit process on transfer + resubmit failure
This is particularly importnat in case the USB device for some reason
gets disconnected and re-connects. We want the process to fail fast
and have systemd respawn us.
commit a521e026c76056a60531c490fa2ef84e8e633c9a
Author: Harald Welte <laforge@osmocom.org>
Date: Mon Jan 6 12:35:20 2020 +0100
e1-recorder: use libusb_strerror() to decode error messages
commit 43a8fbdfdc35f5ba7564cfe5c92f43b124abf710
Author: Harald Welte <laforge@osmocom.org>
Date: Sun Jan 5 19:49:58 2020 +0100
e1-recorder: Acytually make '-r' (SCHED_RR) work
commit 84e28225d9ba1de9fb09660a96bd3b0b798c88d9
Author: Harald Welte <laforge@osmocom.org>
Date: Sun Jan 5 17:53:11 2020 +0100
e1-recorder: Add small 'dump' program
This program will print one line for each E1 frame, where each line
consists of 32 hex bytes: one for each timeslot
commit 0c697b40620b5d18480e626991dc639daadf58a6
Author: Sylvain Munaut <tnt@246tNt.com>
Date: Sun Dec 29 13:13:17 2019 +0100
projects/riscv_usb: Host software for the dual channel sniffer
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Closes: OS#5673
Change-Id: I9319c1eb8f822830307c1a181d357c58ce43efba
This is disabled by default because turns out the kernel doesn't
actually support PPS on CD for USB-CDC devices :(
And this also increase the interrupt traffic ...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: Ie5d163434323a23912228003add9870fafefedf9
The original algo is just somehting I originally came up with
on the spot and worked and I never got the time to revisit.
Now after some testing, I implemented a PID loop that seems to
present faster lock time and at least as good stability.
Parameters were not thorougly optimized just some 'hand' tuning
trying to simulate the behavior.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: Ie3ea7243aa4234585f1ace222632bb5580caca75
This is a pretty usefu stat as this is what actually matters
Note that structure is just extended so any call with a wLength
shorter will just get the beginning of the struct (usb stack
limits response to wLength) and thus is fully backward compatible.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I0aa919d4870ca7e1b653b82ac4f76ed26b5e3b08
Just the automated resync + the track/via cleanup pass
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I3b5a70fa0673f7ee5d45da2a8ab012db158f6eed
Further production runs will use another panel setup anyway
and this one is archived in r1.0 anyway.
But this cleans up the way for kicad 6 update
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I864503c1edf28993bc9c4c12842856ab1002870c
Those were low level debug meant to be temporary and somehow ended
up committed.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: Ie1b802f347b0de9ea82edb61faaba6094b8f4dfa
SB_I2C is apparently just a pain to use and buggy and such, so
use our custom one.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I1596ccbf03dd4450f519fe9b54a7fece125a7fbc
This core has been merged (and improved) upstream, so
update the submodule, remove local copy and make the required
tweaks.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I79fca561fee32bbaec94882b4f65c7ecaa44be11
We manually use global buffers for the signals that need to be
global, don't let nextpnr heuristic mess with things.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I5dc5f2f39dca933b2570cbe4e26d9d7fd2a44688
This just pulls in some small update in various files shared
by several repository. It's mostly comment and formatting, nothing
functionnal really.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: Icb7bea1cf7243e9ace819cd567eb006fcc71c808
Fine tuning has a limited tuning range. If at some point we
hit the limits, we need to bit the bullet and try to 'transfer'
some of that to the coarse range as best as we can. Hopefully
we get it close enough to limit disruption.
Note that this should really never happen because although it's
limited, the tuning range should be good enough to absorb any
reasonable temperature / aging variation once we have coarse tuned.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I2d9d348f5466f581b3d6d36c98847c47e2452f98
If we're in hold over mode and getting a bunch of invalid
frequency measurement despite a good fix, then we most likely
ended up on a bad tuning value and we need to recover by starting
from scratch.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: If8503a3eaf695e02a0ef0a3b6536de985d247c20
The page break is currently a bit ugly, but I didn't see an easy way
to fix it. The images and info text should make the process much clearer.
Change-Id: I5999dc60850da2cd02d9bbc7db5727cdebf041c6
doing so significantly simplifies the development of a Linux kernel
driver, as the GPS-DO only exists once (not twice, like the per-E1-line
interface), and Linux kernel USB drivers typically are for an interface.
There is an option to write a usb_device_driver, but doing so will
exclude the per-interface drivers from still being probed in their usual
fashion.
While we introduce this new USB Interface for the GPS-DO, we also
move the related control endpoint requests from the device level to the
interface level.
Finally, some naming inconsistency between "enum
ice1usb_gpsdo_antenna_state" vs. the member name antenna_status is
resolved.
Change-Id: Icd6555a14896c38626fb147b78af44ff719f2254
The USB spec requires interface numbers to be in sequential order,
and the existing firmware fails that requirement, as is shown by
the Chapter9 test suite ("USB30CV").
With this patch applied, the USB30CV Chapter9 test suite passes.
Change-Id: I6a5434447ee20f77ce0ba9e7b1884cbd5b466439
Disable spacing and open brace checks, as this repository follows a
different code style.
If needed, the checkpatch file can be extended with other checks:
* get the check name from the linter output, e.g. SPACING in:
firmware/ice40-riscv/icE1usb/fw_app.c:155: ERROR:SPACING: spaces required around that '=' (ctx:VxV)
* add a new "--ignore NAME" line to the file
Related: https://gerrit.osmocom.org/c/osmo-e1-hardware/+/26841
Related: OS#5399
Change-Id: I4d2cf2eb698b8f4e54f04e62e4dbbc37146daf88
Tagged releases get something like icE1usb-fw-0.2.elf without a
git-hash component suffix. So the old glob *-*-*-*.{bin,elf}
was not matching and we got errors like
rsync: link_stat "/build/firmware/ice40-riscv/icE1usb/*-*-*-*.bin" failed: No such file or directory (2)
rsync: link_stat "/build/firmware/ice40-riscv/icE1usb/*-*-*-*.elf" failed: No such file or directory (2)
Change-Id: I7509f9d92ec19c1702af5f958d495e21321053bc
Rather basic and not super well tested, use with caution
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I5f9ce6621492be967d6a44d31f270e107f3ef686
Note that this is read-only. We drop all data from the host
because we can't have the host reconfigure the module ...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: Ieb6a653ece882c5f90ab27da1bca04c94184dc5a