whitequark[cis] changed the topic of #glasgow to: https://glasgow-embedded.org · digital interface explorer · https://www.crowdsupply.com/1bitsquared/glasgow · code https://github.com/GlasgowEmbedded/glasgow · logs https://libera.catirclogs.org/glasgow · matrix #glasgow-interface-explorer:matrix.org · discord https://1bitsquared.com/pages/chat
<_whitenotifier-5> [GlasgowEmbedded/glasgow] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±7] https://github.com/GlasgowEmbedded/glasgow/compare/8210ba69fcee...3f87177be298
<_whitenotifier-5> [glasgow] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-884-8210ba69fceeab7dbc1fcd84f45b0ed19ba173ff - https://github.com/GlasgowEmbedded/glasgow
<_whitenotifier-5> [glasgow] whitequark closed pull request #884: Implement `AbstractAssembly.read_until` - https://github.com/GlasgowEmbedded/glasgow/pull/884
<_whitenotifier-5> [glasgow] whitequark opened pull request #886: Minor JTAG related fixes - https://github.com/GlasgowEmbedded/glasgow/pull/886
<_whitenotifier-5> [glasgow] whitequark synchronize pull request #886: Minor JTAG related fixes - https://github.com/GlasgowEmbedded/glasgow/pull/886
redstarcomrade has quit [Read error: Connection reset by peer]
<_whitenotifier-5> [glasgow] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-886-3f87177be29828a2a3877b267069047482b60a68 - https://github.com/GlasgowEmbedded/glasgow
redstarcomrade has joined #glasgow
<_whitenotifier-5> [GlasgowEmbedded/glasgow] github-merge-queue[bot] pushed 2 commits to main [+0/-0/±3] https://github.com/GlasgowEmbedded/glasgow/compare/3f87177be298...fe39090079e0
<_whitenotifier-5> [glasgow] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-886-3f87177be29828a2a3877b267069047482b60a68 - https://github.com/GlasgowEmbedded/glasgow
<_whitenotifier-5> [glasgow] whitequark closed pull request #886: Minor JTAG related fixes - https://github.com/GlasgowEmbedded/glasgow/pull/886
redstarcomrade has quit [Read error: Connection reset by peer]
<whitequark[cis]> okay, let's make a poll
<whitequark[cis]> people who are on weird platforms: how do you feel about glasgow software gaining a mandatory dependency on Rust?
<owoday[m]1> whoa... I just realized it doesnt depend on rust
<whitequark[cis]> not at the moment!
<owoday[m]1> It has a mandatory python dependency though right?
<whitequark[cis]> it's entirely written in python, with one major native dependency (libusb1)
<whitequark[cis]> i chose python years ago even though i don't like the language all that much because python is very accessible. everyone can write at least a little python1
<whitequark[cis]> s/python1/python!/
<whitequark[cis]> if i had my way i'd have picked ocaml
<owoday[m]1> is it a verbal poll or voting
<whitequark[cis]> we don't do voting here, i have the final say on what goes into the framework (a few people are code owners of specific applets and have a final say there)
<whitequark[cis]> so i just want to understand the impact it would have on users
<whitequark[cis]> it is basically decided that there will be at least an optional dependency on a PyO3 based native package, the question is whether i can make it mandatory or not
<owoday[m]1> My take is that a python dependency is more controversial than rust, since rustup is pretty clean. Also, the projects leniency on python interpreter is pretty forgiving, Ill let other people talk :3
<whitequark[cis]> i mean... python is less "a dependency" and more "literally makes the entire thing tick"
<whitequark[cis]> i'm not going to rewrite it in rust or anything, i'm just considering adding a binary library that requires rustc to build
<whitequark[cis]> and people have opinions about rustc. does rustup even work on freebsd?
<jn> i personally don't like rustup and use a distro-managed rust toolchain only
<tpw_rules> i think rustc and python is pretty okay on nix
<whitequark[cis]> i think nix is gonna be ~fine because i will upload wheels for manylinux systems, of which nix is one
<whitequark[cis]> actually no it won't, it doesn't have glibc in the right location
<whitequark[cis]> ok, so you'll have to build a derivation for that dependency probably
<tpw_rules> yes but we are used to that anyway and already do it for e.g. yosys
<tpw_rules> (yes i know there is the wasm build)
<tpw_rules> i think but cannot promise anything that rust is okay on the BSDs these days, the m1n1 people are doing it now
<whitequark[cis]> right
<whitequark[cis]> okay, nix: not an issue
<tpw_rules> thank you for asking
<whitequark[cis]> you're welcome ^^ i do not like quote-unquote ramming rust down people's throats
<whitequark[cis]> actually there was some python package i don't recall that silently and unconditionally added a rust dependency and told everyone questioning this when it broke their builds to basically fuck off
<tpw_rules> pycryptography did something similar
<tpw_rules> https://github.com/AsahiLinux/m1n1/pull/471 kettenis is a big openbsd guy
<jn> would the dependency in question (be able to) compile from rust source on systems where there's a rustc toolchain installed?
<whitequark[cis]> the pycryptography transition was somewhat orderly and it is fine, i think. they have very good reasons to use rust
<whitequark[cis]> the dependency i'm thinking about was a json schema validator
<whitequark[cis]> jn: you should be able to build it from an sdist, yes
<whitequark[cis]> the jsonschema library almost ended up as an amaranth dependency, but due to their rust ... thing, i've decided against it
<whitequark[cis]> i like rust! i just don't think this is the way to put it into production
redstarcomrade has joined #glasgow
<jn> it's unlikely that i'll use glasgow on ia64 or hppa, but i appreciate the consideration for portability
<whitequark[cis]> it's incredibly portable right now (on purpose), and i think that's an asset
<whitequark[cis]> but i also don't know how many people actually deeply care about this
FFY00 has quit [Ping timeout: 260 seconds]
omnitechnomancer has joined #glasgow
<omnitechnomancer> If building with a distro toolchain one might have to be wary about version requirements
FFY00 has joined #glasgow
<whitequark[cis]> that's a part of why i'm asking!
<whitequark[cis]> I: g.applet.interface.ethernet_rmii: dropping to REPL; use 'help(ethernet_iface)', 'help(mdio_iface)' to see available APIs
<whitequark[cis]> the REPL even knows when you have multiple *_iface objects defined!
sazzach[m] has quit [Quit: Idle timeout reached: 172800s]
redstarcomrade has quit [Quit: Cya.]
nyanotech has quit [Remote host closed the connection]
nyanotech has joined #glasgow
_whitenotifier-5 has quit [Ping timeout: 252 seconds]
DX-MON| has quit [Quit: I'm not disconnecting, you're disconnecting!]
DX-MON has joined #glasgow
<whitequark[cis]> owoday:
<whitequark[cis]> yellow trace: TXD1, blue trace: ethernet pair
Attie[m] has joined #glasgow
<Attie[m]> SPE 👀
GNUmoon has quit [*.net *.split]
Eli2 has quit [Quit: Ex-Chat]
Eli2 has joined #glasgow
kewl_man[m] has quit [Quit: Idle timeout reached: 172800s]
dne has quit [Remote host closed the connection]
dne has joined #glasgow
<gruetzkopf> i have used glasgow on ppc64 (bigendian)
<gruetzkopf> is that trace T1L or T1S?
WilfriedWonkaKla has quit [Quit: Idle timeout reached: 172800s]
js[m] has quit [Quit: Idle timeout reached: 172800s]
redstarcomrade has joined #glasgow
redstarcomrade has quit [Changing host]
redstarcomrade has joined #glasgow
redstarcomrade has quit [Read error: Connection reset by peer]
<whitequark[cis]> T1S
<whitequark[cis]> Attie: do you have a need for SPE?
redstarcomrade has joined #glasgow
redstarcomrade has quit [Read error: Connection reset by peer]
wiebel[m] has joined #glasgow
<whitequark[cis]> you're welcome! and yeah, this is the very first applet that allows other software to use the glasgow device
<whitequark[cis]> you can also use it over network if you run glasgow run probe-rs ... tcp::1234
<wiebel[m]> And just at the point I was considering a more direct device for flashing via swd, as the gdb way is kinda overkill for flashing.
<wiebel[m]> Thx for putting the required probe-rs command in the output of the applet. I'm not yet comfortable with the documentation.
<whitequark[cis]> the required probe-rs command is actually not something you can come up with on your own, it is partly dynamically generated
<whitequark[cis]> but making it really easy to use is a nice side effect
<whitequark[cis]> the 1:0 part will change if you use the probe-rs applet as a second applet in a multi-applet bundle
<whitequark[cis]> as a result, probe-rs can be completely independent from the glasgow toolkit (after you load the bitstream of course)
<whitequark[cis]> btw, you can run SWD at speeds as high as 48 MHz
<wiebel[m]> So of the 20b7:9db1:C3-20240821T182236Z the 20b7:9db1 is PID and VID, C3 the board revision, 20240821T182236Z is that the maufacture timestamp?
<whitequark[cis]> C3-20240821T182236Z as a whole is the device serial number
<whitequark[cis]> and yes, it's based on a manufacture timestamp
<wiebel[m]> whitequark[cis]: Yeah I read this one. Thats awesome. The swd-openocd/gdb was not exactly fast.
<whitequark[cis]> it barely even worked due to some issues, which i suspect were in openocd but i haven't proven it
<whitequark[cis]> the new applet is so fast, i have to use offset sampling to shift when the data is being captured, because at the time of the posedge, the buffer grabs the previous cycle's data due to propagation delay
<whitequark[cis]> in theory we could run it at speeds as fast as 80 MHz, but this results in some timing closure issues that i'm not quite sure how to tackle yet
<whitequark[cis]> I've proven that it can work but it isn't reliable enough for general use
<whitequark[cis]> that's faster than any of J-Link's probes
<wiebel[m]> I've stumbled upon https://github.com/probe-rs/rusty-probe so yeah 48 MHz is perfect, just right to prevent me from buying another piece of hardware. ;)
<Attie[m]> <whitequark[cis]> "Attie: do you have a need for..." <- no, but I really, _really_ want to play with it... (call me weird)
<Attie[m]> [I'm also itching to have a go with the SWD applet, thank you / well done!]
<whitequark[cis]> me too! i wanted to play with it since i first heard about 802.3cg
<Attie[m]> how are you finding it?
<Attie[m]> "just Ethernet"? any issues around the node role negotiation? and I think gigabit "requires" some more special cable / connectors, but I've not looked into it in enough detail
<whitequark[cis]> this is 10BASE-T1S
zyp[m] has joined #glasgow
<zyp[m]> I have some projects that'd benefit from SPE, but the connector situation is a problem
<whitequark[cis]> the connector on the kit i have is just a screw terminal, lol
<zyp[m]> there's a bunch of competing standards for SPE connectors, and they're all some combination of bad, expensive or unobtanium
<whitequark[cis]> which i'm fine with... also could always run it over one of the RJs
<whitequark[cis]> whoa
<zyp[m]> yeah, but then I'm back to «why not use regular ethernet then?» (not counting 10BASE-T1S, I've mostly looked at 100/1000)
<owoday[m]1> whitequark[cis]: Waow
<whitequark[cis]> i'm only really interested in T1S/L
<owoday[m]1> <whitequark[cis]> "DS1Z_QuickPrint80.png" <- 😍
<Attie[m]> yeah, woah indeed...
<Attie[m]> T1S/L looks great as a step up / alternative for CAN (for some of my recent projects)
<zyp[m]> I'd e.g. be interested in running gigabit SPE over LC-CU connectors to save front panel space, but LC-CU is unobtanium
<whitequark[cis]> Attie[m]: yeah this is what I wanted them for... want to collab? an MCU running smoltcp plus power+data over T1S as a drop-in "i want this to be networked" PCB you can solder into a projecy
<whitequark[cis]> * yeah this is what I wanted them for... want to collab? an MCU running smoltcp plus power+data over T1S as a drop-in "i want this to be networked" PCB you can solder into a project
<whitequark[cis]> (this is what smoltcp was created for)
FFY00_ has joined #glasgow
<Attie[m]> oooohh
<Attie[m]> i'm not in the right headspace to do this now, but yeah, let's talk later!?
FFY00 has quit [Ping timeout: 276 seconds]
<whitequark[cis]> sure!
<jn> is there a mix of "glasgow repl" and "glasgow multi", i.e. a quick way to start a REPL with multiple applets?
redstarcomrade has joined #glasgow
redstarcomrade has quit [Changing host]
redstarcomrade has joined #glasgow
<jn> (or, to ask differently: what does it currently take to get roughly that result?)
<whitequark[cis]> there isn't and that's part of why multi is considered experimental
<whitequark[cis]> the problem is that each applet can have their own REPL
<whitequark[cis]> the REPL functionality should probably be re-implemented so that applets talk to a "REPL server" which provides them with console input (or even Python code to run)
<whitequark[cis]> it's unfortunately not trivial to build
<whitequark[cis]> jn: for now I would suggest using `HardwareAssembly` to build whatever you'd like in a normal Python REPL and then use that
<jn> noted; i'll try that at some point
<jn> (my concrete problem right now is that i need jtag-pinout/probe plus a signal that should be high. there are plenty of ways to solve this, i haven't fully thought it through)
<whitequark[cis]> so, the GPIO applet is very special right now in that you can freely add it to multi (eg as a third applet)
<whitequark[cis]> let me add a mode where it just holds some signals at startup
<jn> that would be useful!
<gruetzkopf> there are fun can+t1s combo phys
<whitequark[cis]> oooh, which?
redstarcomrade has quit [Read error: Connection reset by peer]
<gruetzkopf> nvm they seem to be so unobtainium i can't even find the references anymore
<whitequark[cis]> jn: okay, i have delivered
<whitequark[cis]> glasgow run gpio -V A=3.3 A1=0 A2=H A3
<whitequark[cis]> sets A1 to drive strong low, A2 to drive weak high, and samples A3
_whitenotifier-4 has joined #glasgow
<_whitenotifier-4> [glasgow] whitequark opened pull request #887: applet.control.gpio: allow interacting with pins from CLI. - https://github.com/GlasgowEmbedded/glasgow/pull/887
redstarcomrade has joined #glasgow
<whitequark[cis]> <hansihe[m]> "If feedback is welcome, one..." <- there is now such a way, see the PR I just sent
<_whitenotifier-4> [glasgow] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-887-fe39090079e005ad6c4fe3941fd02d11663646f8 - https://github.com/GlasgowEmbedded/glasgow
<tpw_rules> ooh i might have to try the swd stuff
<tpw_rules> my current situation is not amazing. i guess probe-rs replaces openocd?
<tpw_rules> that could be slightly problematic
<whitequark[cis]> probe-rs replaces openocd, yes
<whitequark[cis]> you could theoretically implement an SWD driver for openocd with the same protocol as probe-rs
<tpw_rules> that does not sound trivial. i have an openocd with rtos support for some of my work
<hansihe[m]> <whitequark[cis]> "there is now such a way, see the..." <- that's amazing, thanks a ton for sorting this so quickly!
<_whitenotifier-4> [glasgow] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-887-fe39090079e005ad6c4fe3941fd02d11663646f8 - https://github.com/GlasgowEmbedded/glasgow