whitequark changed the topic of #glasgow to: glasgow debug tool · code https://github.com/GlasgowEmbedded/Glasgow · logs https://freenode.irclog.whitequark.org/glasgow
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark pushed 9 commits to nmigen [+1/-1/±63] https://git.io/fjHt8
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark 10d2313 - Bulk port of all gateware to nMigen compatibility layer.
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark 41ff85e - gateware.analyzer: adjust for nMigen.
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark 3a263b8 - gateware.pads: adjust for nMigen.
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] ... and 6 more commits.
<whitequark> glasgow-on-nmigen... actually works!
<whitequark> sort of
<whitequark> you need this nmigen hax: https://paste.debian.net/1094296/
cyrillu[m] has left #glasgow ["Kicked by @appservice-irc:matrix.org : Idle kick: User has been idle for 30+ days."]
_whitelogger has joined #glasgow
ali_as has quit [Ping timeout: 245 seconds]
_whitelogger has joined #glasgow
_whitelogger has joined #glasgow
_whitelogger has joined #glasgow
_whitelogger has joined #glasgow
_whitelogger has joined #glasgow
_whitelogger has joined #glasgow
_whitelogger has joined #glasgow
<tnt> bits manipulation with python list semantic are just ... confusing. I have to write b[16:20] + b[0:16] when really I want to be writing b[15:0] + b[19:16] (yes, I know it's not "pythonic" but that's just how bit notation works)
ali_as has joined #glasgow
<whitequark> tnt: the problem is not that it's "pythonic" or not
<whitequark> the problem is that every single other container (including the bitarray we used before) does not work like that
<whitequark> also, i'm pretty sure you can write b[0:15] in verilog too
<whitequark> tnt: and actually it will simply not work if i did it, because overloading __getitem__ tells python this is a container
<whitequark> and things like list(bits) will iterate through it
<whitequark> from low to high
<whitequark> so you'd need b.slice(15,0)...
<tnt> And it's as wrong in verilog too :p (just like in VHDL you can write std_logic_vector(0 to 15) as well instead of std_logic_vector(15 downto 0)). And I'm not saying there aren't implementation reasons for which it's hard to do otherwise. I'm just saying it'd be more natural if it was the other way.
<tnt> (at least for me)
<whitequark> tnt: i mean, it would be less confusing for you but more confusing for everyone else who touches that file
<whitequark> this is a clear loss overall
<whitequark> the same reason (n)migen use [low:high] indexing btw
<tnt> yeah, and I hate it in migen as well :)
<whitequark> that's kind of just how life is, i guess
<whitequark> i mean, do you know just how much i hate python?
<whitequark> the only reason glasgow is in python is for collaboration. if i was doing it solely for myself i'd have used ocaml
<tnt> Oh yeah that would probably have reduced the user/dev base for sure.
<whitequark> yeah. to one.
<tnt> I think MLDonkey is the only ocaml app I ever did changes to :)
cyrillu[m] has joined #glasgow
<tnt> So, to get the 430Xv2 under jtag control, you need to (among other) execute the ExecutePOR_430Xv2 macro, whose exact process depends if the device is FRAM or Flash based, and to know that you need the device ID, but to read that you need the device to be under jtag control.
<whitequark> tnt: classic
<yorick> whitequark: the corsair force 1tb m.2 ssd is really cheap in comparison to all the others
<whitequark> is it any good tho
<whitequark> also 1tb ones aren't too expensive for me
<whitequark> it's more that 2tb ones don't even seem to be *imported*
<yorick> the roommate hasn't noticed any problems
<yorick> 660p 2tb is half as fast as the others but also half the price
<yorick> (intel)
<tnt> So ... there is a jtag instruction called IR_DEVICE_ID which you would think returns the device ID ... but no, it returns a memory pointer to where you can read the device ID from.
<whitequark> incredible
<whitequark> though, that's still useful, no?
<whitequark> make it a tiny bit future-proof
<tnt> Sure. Excepts it's only on v2 devices which currently have all their ID at the same place. But yeah, I guess for the future.
diverger has joined #glasgow
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark pushed 2 commits to master [+0/-0/±5] https://git.io/fjHoA
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark abd4673 - applet.interface.jtag_probe: factor out run_tap() from derived applets.
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark c8ebd6b - applet.program.xc9500xl: be more resistant to incorrect connections.
<marcan> whitequark: clearly you should make nmigen big endian
<marcan> then pythonic bit notation works just fine
<marcan> imagine how cool that will be for writing PowerPC debug applets!
<whitequark> NO
<whitequark> marcan: in retribution, i will add a metaclass to glasgow.
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/fjHK4
<marcan> shrug
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark 8a7e133 - applet: set has_custom_repl=False if interact() is overridden.
<whitequark> done
<whitequark> :p
<kc8apf> msb0 is a hate crime
<marcan> < whitequark> yeah. to one. <- so true :p
<whitequark> marcan: do you know anything about xc6s jtag
<whitequark> i have this cursed board with a 45 series flash, which glasgow does not support
<whitequark> and that flash looks more annoying to support than xc6s jtag
<marcan> no idea
<kc8apf> Pretty sure xc6s JTAG is the same scheme as virtex2 and later
<kc8apf> OpenOCD's virtex2 support works with xc6s
<tnt> I think xc3sprog supports spartan 6 ?
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark pushed 3 commits to master [+0/-0/±3] https://git.io/fjHid
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark aef697b - support.bits: fix str(bits()).
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark 2d90a89 - support.bits: allow signed values, if length is specified.
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark 9c3c6ca - protocol.jtag_svf: improve performance on very long don't care masks.
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark pushed 2 commits to master [+0/-0/±2] https://git.io/fjHiF
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark 0d997bf - applet.interface.jtag_svf: fix copy/paste error.
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark 9fe7385 - applet.interface.jtag_probe: add shift_dummy().
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/fjHiN
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark 8285eed - applet.interface.jtag_probe: add shift_dummy().
<_whitenotifier-3> [Glasgow] Error. The Travis CI build could not complete due to an error - https://travis-ci.org/GlasgowEmbedded/Glasgow/builds/567630224?utm_source=github_status&utm_medium=notification
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/fjHih
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark 290e1d0 - applet.program.xc9500xl: style. NFC.
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/fjHPI
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark 15f0be0 - support.bits: fix str(bits()), again.
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/fjHPY
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark 4cc04a7 - applet.interface.jtag_probe: fix IR elision to respect elide=False.
<whitequark> AAAAAAAAAAAAAAAAAAA
<whitequark> fucking xilinx
<whitequark> and their fucking documentation
<gruetzkopf> hmmm virtex2
<gruetzkopf> i've just encountered a PBX that implements a 512MBit/s-total crossconnect (for 64kbit/s ISDN channels) in a XC2V2000
<whitequark> it does look like all xilinx's devices are cofnigured more or less the same
<whitequark> post xc2v
<gruetzkopf> most annoying thing about 45 series flash is the different pinout
<whitequark> ugh, really? :/
<whitequark> i didn't even notice that
* whitequark sighs
<whitequark> here you go:
<_whitenotifier-3> [GlasgowEmbedded/Glasgow-Archive] whitequark pushed 1 commit to master [+1/-0/±0] https://git.io/fjH14
<_whitenotifier-3> [GlasgowEmbedded/Glasgow-Archive] whitequark 1ea6c3c - Add G00039.
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark pushed 3 commits to master [+3/-0/±2] https://git.io/fjH1B
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark f9704f1 - arch.xilinx.xc6s: new architecture.
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark d3eced0 - database.xilinx.xc6s: new database.
<_whitenotifier-3> [GlasgowEmbedded/Glasgow] whitequark 602d940 - applet.program.xc6s: new applet.
<whitequark> now.. what was i *trying* to do.