horizon has quit [Read error: Connection reset by peer]
dh73 has joined ##openfpga
dh73 has quit [Quit: Leaving.]
<omnitechnomancer>
<edbordin "omnitechnomancer you wouldn't ha"> edbordin yes that is me
<omnitechnomancer>
azonenberg 10G and 100G copper will not necessarily do 10/100/1000M, so no some things with RJ45 won't link up with others
<gruetzkopf>
also i have already seen 1G only ports
dh73 has joined ##openfpga
dh73 has quit [Read error: Connection reset by peer]
sorear has quit [Read error: Connection reset by peer]
sorear has joined ##openfpga
sorear has quit [Client Quit]
sorear has joined ##openfpga
<edbordin>
omnitechnomancer oh cool! looks like you've already made quite a lot of progress on writing fuzzers, I was wondering if I could help?
<edbordin>
I'm gathering that the chip's architecture is largely based on copying the ECP5 with some modifications
<omnitechnomancer>
edbordin yes that is mostly the state I got to, um it is very similar in a number of ways but I am not sure it is copying exactly
<edbordin>
I saw something saying it has LUT5's as well which would be a departure from ECP5
<omnitechnomancer>
Help would be appreciated
<edbordin>
but yeah if you're still fuzzing out the blocks that seems like work that can be split up easily enough
<edbordin>
I'm still getting familiar with it all but I think I saw a comment that the pnl file doesn't have quite all the routing detail?
<omnitechnomancer>
Yes it has mslices which have only LUT4s but have them able to be used as Distributed RAM and lslices which have LUT5s (two LUT4s with an extra mux for LUT5 but you can use the two LUT4 outputs too
<omnitechnomancer>
As far as I can tell pnls do have the routing detail
<edbordin>
Ah ok, that's good news!
<omnitechnomancer>
It's just it requires some interpretation of names
<edbordin>
right. well, I probably still need to spend some time understanding what you've done so far and get it running on my machine (may need to ask you questions to check my understanding). But after that I'm quite happy to take suggestions on what to work on
<azonenberg>
omnitechnomancer: i know some optic interfaces arent compatible w/ 10G vs 1G vs 100baseFX etc
<azonenberg>
but i have not seen an rj45 interface without a 10/100/gig phy in it yet
<azonenberg>
what chipset have you seen that on?
<azonenberg>
(also, 100G copper? Over UTP not twinax or something? That sounds incredibly cursed)
<omnitechnomancer>
One thing that would be helpful to help with is trying to determine the extents of some of the blocks in the bitstream
<omnitechnomancer>
azonenberg at work we have a switch that doesn't do 10/100 on some of the expansion modules
<whitequark>
azonenberg: this is definitely a thing (gige without 10/100)
<whitequark>
multiple people reported encountering these
<whitequark>
when i discussed it on twitter recently
Maylay has joined ##openfpga
<whitequark>
IIRC the standard explicitly gives you the option and seems some vendors recently took it up on that
<omnitechnomancer>
Our newer core switch chassis product definitely has modules that are 10G/1G only copper
<edbordin>
omnitechnomancer right, so something like mapping "block X is Y bits long"?
<edbordin>
it's a shame they never include tools for unpacking bitstreams, but that would make life too easy :P
<omnitechnomancer>
edbordin yes for things like the emb and emb32k blocks, I have some estimates but they might not be right, also for the top and bottom IO blocks I think they are separated into two blocks in the bitstream
<omnitechnomancer>
They aren't one string of bits they are more rectangular regions
<edbordin>
right. I guess the tools that generate the html maps help to visualise that
<omnitechnomancer>
Yes, I need to tidy up and push a dB repo at some point
<edbordin>
omnitechnomancer does the td binary work in a headless env so long as the gtk libs are installed?
<edbordin>
Guess there's probably an easy way for me to find that out for myself
rombik_su has joined ##openfpga
<omnitechnomancer>
edbordin I have not tried in headless but it doesn't do GUI stuff unless you pass it -gui afaik
<edbordin>
yep, that worked. it's obviously linked against it but doesn't actually use it unless asked
<edbordin>
once I saw I needed to compile a python lib I decided trying to use windows was no longer worth it
<omnitechnomancer>
Oh yea, windows can be made to work but I just used a Linux vm
<omnitechnomancer>
The windows environment script is not patched for the python libtang either
<edbordin>
yeah I have dealt with cmake on windows before but it just feels like less hassle on linux lol
<edbordin>
and yeah, I could tell the batch file probably wasn't the one you were using :P
<omnitechnomancer>
I actually want to port/grab daveshah's work for prjoxide instead since rust is even less hassle in my experience :P
<edbordin>
Oh I had seen daveshah talk about that work but didn't actually know the codename for it hehe
<omnitechnomancer>
Oh also even on Linux it may fail the first build because of weirdness with cmake and generated files
<edbordin>
yeah all good. used to wrestling with cmake in my day job
<edbordin>
I've been meaning to try rust for a while now, sounds fun :D
<tpw_rules>
only for masochists
<tpw_rules>
and whose kink is judgemental compiloers
<edbordin>
oh no, I've started another language war
<tpw_rules>
i mean i've written a couple significant projects entirely in rust
<GenTooMan>
let me don my flame proof attire first.
<tpw_rules>
i just feel like i can't ever say my experience was unqualified fun? there were joyous moments but a lot of wrestling
<edbordin>
I briefly had a job helping maintain a large Ada codebase, if you want to talk about judgemental compilers...
<tpw_rules>
oooh, "interesting". what did it do
<edbordin>
I guess VHDL is probably a similar experience...
<edbordin>
Without being super specific, it was a fire control system for a defence product
<whitequark>
i spent a ~year? dropping and picking up rust back after independently arriving at a sorta-rust-like language design and ditching it in favor of using rust
<whitequark>
it definitely takes a while to get used to
<edbordin>
Also because it was an old embedded system it was littered with "unsafe" clauses which meant still plenty of scope for footguns
<hackerfoo>
I made a simple simulator in Rust for a large machine, so I could work on the software to control it without the machine present. This was about 6 years ago. I haven't done much with it since. Rust is probably much different now.
<edbordin>
also for some annoying reason they had this whole convoluted system for linking in some blobs of data instead of just using the linker >_<
<hackerfoo>
I think I prefer Haskell or C, but Rust still seems nice.
<tpw_rules>
the most exciting part to me about rust in my embedded project was real data structures
<tpw_rules>
state machines are a dream with match statements
<edbordin>
I do find that C's type system is a little too loose for my liking sometimes. I guess it depends what standard and what warnings are enabled
<hackerfoo>
Is Rust usable for serious professional embedded work yet?
<tpw_rules>
ehhhhh???
<tpw_rules>
technically my use was serious and professional
<tpw_rules>
if you're the type who always rewrites the HAL then it's pretty alright. code size and speed are still a bit fatter than necessary imo and there's a couple sucky spots in the tooling
<tpw_rules>
like how the way panicking works in no-std on arm guarantees a corrupt stack trace
<hackerfoo>
I mean, a product, not just a support tool. My simulator was professional work, but I wouldn't call it serious - it didn't ship to customers, or run something critical.
<hackerfoo>
Wait, there are people that use the vendor libraries? Pssh.
<tpw_rules>
lol mine was a prototype, it didn't ship mostly because of politics meant that further development wouldn't happen
<hackerfoo>
Oh, yeah. RAM usage is most important.
<tpw_rules>
that has some serious pitfalls but if you're careful it's just fine
<tpw_rules>
like i accidentally made an 80k initdata section cause my alleged compile time alloc data structure had like 1 byte at the end
<tpw_rules>
i did my stuff on an nrf52840 which is very roomy
<tpw_rules>
i'm not going to try on a 16K flash m0 any time soon i don't think
<hackerfoo>
It's probably more fun, but I can't see Rust working for most of what I've worked on.
<hackerfoo>
The last project, we were shaving a few hundred bytes here and there, and this was on a 64K part, I think.
<tpw_rules>
yeah if you're worried to that level it's not a good fit
<hackerfoo>
Another one, I wrote EEPROM emulation for a flash-only MCU. That would probably all be `unsafe`.
<tpw_rules>
i was shaving bytes because it was fun, but what did it was unpredictable. it frustrates me that rust basically mandates a very powerful optimizer because then you are subject to its whims
<tpw_rules>
hardware access is actually pretty neat. there's a program that converts SVD files into crates where you can just compose register settings using only legal combinations and you don't have to do anything unsafe
<hackerfoo>
One C's abilities that are hard to match is the ability to carefully lay out memory down to the byte.
<tpw_rules>
you can do that in rust too. there's a struct decoration for "exactly how i wrote it"
<tpw_rules>
and all that stuff just gets compiled down to a single instruction* * most of the time, if your optimizer isn't being cranky
<edbordin>
nice. I am not a fan of when people just hardcode a register value with no comment of what they have set
<edbordin>
I guess that's not really the language's fault though
<tpw_rules>
rust makes it easy to do it the nice way though
<hackerfoo>
I'm not sure that's better than `reg |= SOME_BIT;`;
<tpw_rules>
it's nicer when you have wide fields. it's also not |=, it's =
<tpw_rules>
anyway it's my bedtime. have fun everyone
<hackerfoo>
night
_whitelogger has joined ##openfpga
m_w has quit [Ping timeout: 258 seconds]
genii has quit [Quit: Off for hockey and beers, not necessarily in that order... GO LEAFS GO!]
emily has quit [Remote host closed the connection]
emily has joined ##openfpga
m_w has joined ##openfpga
OmniMancer has joined ##openfpga
rohitksingh has joined ##openfpga
<omnitechnomancer>
edbordin: I think there is enough fuzzing that once some of the fixed connections for IO are added to the DB it would be possible to do PNR, but the output would still need to be assembled into a pnl file until we get enough bitstream knowledge of IO and such
_whitenotifier-5 has quit [Ping timeout: 250 seconds]
<TD-Linux>
tpw_rules, yeah the closures for reading/writing registers is still pretty wonky to me
<TD-Linux>
after writing a lot of it I don't mind it so much but the benefits seem limited
Bob_Dole has joined ##openfpga
<TD-Linux>
<hackerfoo> One C's abilities that are hard to match is the ability to carefully lay out memory down to the byte. <- ironically this is one of my most desired C features :(
<tnt>
Does anyone know if BBPU work in ECP5 with nextpnr ? (i.e. properly create a tristate buffer with pullup ?)
<daveshah>
Not sure - I would use BB and PULLMODE=UP in the lpf
<tnt>
ok, will do that. tx
<daveshah>
That should work in both
rombik_su has joined ##openfpga
Bike has joined ##openfpga
rohitksingh has quit [Ping timeout: 258 seconds]
rohitksingh has joined ##openfpga
rohitksingh_ has joined ##openfpga
rohitksingh_ has quit [Read error: Connection reset by peer]
rohitksingh has quit [Ping timeout: 265 seconds]
rohitksingh_ has joined ##openfpga
rohitksingh has joined ##openfpga
rohitksingh__ has joined ##openfpga
rohitksingh_ has quit [Ping timeout: 265 seconds]
rohitksingh_ has joined ##openfpga
rohitksingh has quit [Ping timeout: 265 seconds]
rohitksingh__ has quit [Ping timeout: 265 seconds]
rohitksingh_ has quit [Ping timeout: 265 seconds]
rohitksingh has joined ##openfpga
rohitksingh has quit [Read error: Connection reset by peer]
rohitksingh has joined ##openfpga
rohitksingh has quit [Read error: Connection reset by peer]
rohitksingh has joined ##openfpga
rohitksingh has quit [Ping timeout: 265 seconds]
rohitksingh has joined ##openfpga
rohitksingh_ has joined ##openfpga
rohitksingh__ has joined ##openfpga
rohitksingh___ has joined ##openfpga
rohitksingh has quit [Ping timeout: 265 seconds]
rohitksingh____ has joined ##openfpga
rohitksingh has joined ##openfpga
rohitksingh_ has quit [Ping timeout: 265 seconds]
rohitksingh_ has joined ##openfpga
rohitksingh__ has quit [Ping timeout: 265 seconds]
rohitksingh___ has quit [Ping timeout: 265 seconds]
rohitksingh____ has quit [Ping timeout: 265 seconds]
rohitksingh__ has joined ##openfpga
rohitksingh has quit [Ping timeout: 265 seconds]
rohitksingh_ has quit [Ping timeout: 265 seconds]
rohitksingh has joined ##openfpga
rohitksingh_ has joined ##openfpga
rohitksingh___ has joined ##openfpga
rohitksingh____ has joined ##openfpga
rohitksingh__ has quit [Ping timeout: 265 seconds]
rohitksingh__ has joined ##openfpga
rohitksingh has quit [Ping timeout: 265 seconds]
rohitksingh_ has quit [Ping timeout: 265 seconds]
rohitksingh___ has quit [Ping timeout: 265 seconds]
rohitksingh____ has quit [Ping timeout: 265 seconds]
rohitksingh__ has quit [Ping timeout: 265 seconds]
rohitksingh has joined ##openfpga
rohitksingh_ has joined ##openfpga
rohitksingh has quit [Ping timeout: 265 seconds]
rohitksingh__ has joined ##openfpga
rohitksingh has joined ##openfpga
rohitksingh has quit [Read error: Connection reset by peer]
rohitksingh has joined ##openfpga
rohitksingh has quit [Read error: Connection reset by peer]
rohitksingh_ has quit [Ping timeout: 265 seconds]
rohitksingh has joined ##openfpga
rohitksingh__ has quit [Ping timeout: 265 seconds]
rohitksingh has quit [Ping timeout: 265 seconds]
X-Scale has quit [Ping timeout: 268 seconds]
rohitksingh has joined ##openfpga
rohitksingh has quit [Read error: Connection reset by peer]
rohitksingh has joined ##openfpga
rohitksingh_ has joined ##openfpga
rohitksingh__ has joined ##openfpga
rohitksingh__ has quit [Read error: Connection reset by peer]
rohitksingh__ has joined ##openfpga
rohitksingh___ has joined ##openfpga
rohitksingh has quit [Ping timeout: 265 seconds]
rohitksingh has joined ##openfpga
rohitksingh_ has quit [Ping timeout: 258 seconds]
rohitksingh_ has joined ##openfpga
rohitksingh____ has joined ##openfpga
rohitksingh__ has quit [Ping timeout: 265 seconds]
rohitksingh____ has quit [Read error: Connection reset by peer]
rohitksingh___ has quit [Ping timeout: 265 seconds]
rohitksingh has quit [Ping timeout: 265 seconds]
rohitksingh_ has quit [Ping timeout: 265 seconds]
rohitksingh has joined ##openfpga
rohitksingh_ has joined ##openfpga
rohitksingh__ has joined ##openfpga
rohitksingh__ has quit [Read error: Connection reset by peer]
rohitksingh__ has joined ##openfpga
rohitksingh__ has quit [Read error: Connection reset by peer]
rohitksingh has quit [Ping timeout: 240 seconds]
rohitksingh_ has quit [Ping timeout: 268 seconds]
rohitksingh has joined ##openfpga
rohitksingh has quit [Read error: Connection reset by peer]
rohitksingh has joined ##openfpga
rohitksingh has quit [Read error: Connection reset by peer]
rohitksingh_ has joined ##openfpga
Laksen has joined ##openfpga
rohitksingh has joined ##openfpga
rohitksingh_ has quit [Ping timeout: 240 seconds]
rohitksingh_ has joined ##openfpga
rohitksingh has quit [Ping timeout: 240 seconds]
Laksen has quit [Remote host closed the connection]
rohitksingh_ has quit [Ping timeout: 240 seconds]
rohitksingh has joined ##openfpga
rohitksingh_ has joined ##openfpga
rohitksingh has quit [Read error: Connection reset by peer]
rohitksingh has joined ##openfpga
rohitksingh has quit [Read error: Connection reset by peer]
rohitksingh_ has quit [Ping timeout: 268 seconds]
rohitksingh has joined ##openfpga
rohitksingh_ has joined ##openfpga
rohitksingh_ has quit [Read error: Connection reset by peer]
rohitksingh_ has joined ##openfpga
rohitksingh__ has joined ##openfpga
rohitksingh__ has quit [Read error: Connection reset by peer]
rohitksingh has quit [Ping timeout: 258 seconds]
rohitksingh_ has quit [Ping timeout: 258 seconds]
OmniMancer has quit [Quit: Leaving.]
ym has quit [Quit: Leaving]
Asu has quit [Remote host closed the connection]
Asu has joined ##openfpga
<ZombieChicken>
hm
mumptai has joined ##openfpga
Jeeebz has joined ##openfpga
Jybz has quit [Ping timeout: 272 seconds]
Jeeebz has quit [Quit: Konversation terminated!]
X-Scale has joined ##openfpga
laintoo has quit [Read error: Connection reset by peer]
<Marex>
mithro: Hi, that litescope with sigrok, does that even need a RV core ? Or is it really just sampling inputs and pushing them out through ethernet ?
<Marex>
mithro: I am looking for some minimal example of etherbone with litex and found this
rombik_su has quit [Quit: Leaving]
mumptai has quit [Remote host closed the connection]
<gruetzkopf>
the "interesting way to operate 100baseTX" references them outputting the SAME ethernet frame right after beginning to receive it, delayed only by a few bittimes
<gruetzkopf>
and hot-replacing bits in the packet
<whitequark>
hm, so it's a cut-through switch?
<gruetzkopf>
yeah, the ethercat slaves are basically cut-through switches with GPIO
<gruetzkopf>
the host uses a normal ethernet card
<whitequark>
that seems pretty neat
<whitequark>
besides the cursed power combination
<gruetzkopf>
the cursed power combo is quite rare in practice
<gruetzkopf>
but it can get even more cursed
<gruetzkopf>
suppose you have a BIG servo you want to control, and throw the drive directly behind the motor
<gruetzkopf>
they make single-connector-and-cable ethercat+63A 3ph AC assemblies
<whitequark>
yeah, that's in the pdf, right?
<gruetzkopf>
yeah
<whitequark>
makes sense imo
<gruetzkopf>
the "simple" powered version (two dc feeds) is basically just a DC bias on each pair
<gruetzkopf>
nothing really special about that, only needs a few strategic inductors and capacitors vs normal ethernet
<whitequark>
mhm
<whitequark>
yeah, makes sense
<gruetzkopf>
hm, the 10baseT1x stuff smells like someone found old ISDN line adaption schematics
Asu has quit [Quit: Konversation terminated!]
<whitequark>
lol
<whitequark>
that sounds harsh
<gruetzkopf>
i quite like ISDN
<gruetzkopf>
euro-isdn Uk0 interface was 160kBps FDX over 18-ish km (4B3T line code, 1Vpp)
<gruetzkopf>
eer kbps ofc
<gruetzkopf>
(i kinda also now want to build a 10BASE-T1S MAU with AUI host interface
<whitequark>
nice
<whitequark>
i need to make that AUI applet for glasgow
<whitequark>
though it needs an adapter...
<gruetzkopf>
heh, that'd be nice (in both directions)
<whitequark>
might make a board fori t
<whitequark>
hm
<whitequark>
I forget how AUI actually works
<gruetzkopf>
lemme grab 802.3 again and stare at clause 7
<whitequark>
doing it right now
<whitequark>
i don't get where CO went
bwidawsk has quit [Quit: Always remember, and never forget; I'll be back.]
bwidawsk has joined ##openfpga
<whitequark>
ok, so IDL is just HI on the TXpm
<whitequark>
once you go out of IDL it starts transmitting
<whitequark>
that's CO
<whitequark>
then CI is carrier sense
<whitequark>
seems... almost trivial?
<gruetzkopf>
ethernets main selling point was "extremely simple"
<whitequark>
well it sure seems to be
<whitequark>
can you still get DA15 connectors anywhere?