emeb has quit [Quit: Leaving.]
Laksen has quit [Quit: Leaving]
<azonenberg> tpw_rules: not :wq? oh wait, that's vim :p
<tpw_rules> i'm a nano purist, actually
<azonenberg> Lol me too (when using a non-X-based editor that is)
<azonenberg> but any time i see someone abbreviate the name that way i can't avoid thinking "vim" :p
<tpw_rules> my secret weapon is sshfs
Laksen has joined ##openfpga
Laksen has quit [Client Quit]
freemint__ has quit [Remote host closed the connection]
freemint__ has joined ##openfpga
m_w has quit [Quit: Leaving]
freemint__ has quit [Remote host closed the connection]
freemint__ has joined ##openfpga
<tpw_rules> alright, 100% working, boneless-optimized UART: https://github.com/tpwrules/ice_panel/blob/master/uart.py
rvense has quit [Ping timeout: 250 seconds]
rvense has joined ##openfpga
genii has quit [Quit: Welcome home, Mitch]
<zignig> tpw_rules: can you type and it comes up on the led panel ?
<tpw_rules> yeah that's what the latest commit does
<zignig> nice work :) , now for some escape codes for color and scrollyness.
<tpw_rules> well it's more for proof of concept. i think now i can get a bootloader rolling, which means i can use the sprams and upload actual content
<tpw_rules> also need to do an spi engine so i can program that and load code
<zignig> for the flash ? , that would be very cool.
<tpw_rules> yeah it has 16 megs of it and only like 100k is the bitstream
<zignig> I have a hexbootloader for the boneless, it uses my branch of the assembler, it's textual , but it may give you some ideas.
<tpw_rules> i think i have a decent idea of what i want mine to look like
<tpw_rules> i was doing some scheming yesterday about some boneless stuff and after several iterations eventually converged on just writing a register assignment engine
<tpw_rules> thoughts about how to make reusing code easier. and establishing an ABI, at least quasi
<tpw_rules> i kinda wish there were load/store relative to W instructions
<tpw_rules> you can do it if you use LDW to set up your frame cause then you get the old W back and you can just use LD. but then you have to use up a register
pie_ has quit [Ping timeout: 240 seconds]
Bike has quit [Quit: Lost terminal]
parport0 has quit [Ping timeout: 265 seconds]
parport0 has joined ##openfpga
nrossi has quit [Quit: issued !quit command]
nrossi has joined ##openfpga
Jybz has joined ##openfpga
Thorn has quit [Quit: Textual IRC Client: www.textualapp.com]
Thorn has joined ##openfpga
emeb_mac has quit [Quit: Leaving.]
_whitelogger has joined ##openfpga
pie_ has joined ##openfpga
Jybz has quit [Quit: Konversation terminated!]
<whitequark> tpw_rules: yes i have a highlight on wq
<whitequark> tpw_rules: re UART: possible! i'll recheck, thanks
<whitequark> re W-relative load/store: the plan is to use LDW, yes
azonenberg_work has quit [Ping timeout: 252 seconds]
cr1901_modern has quit [Quit: Leaving.]
Thorn has quit [Read error: Connection reset by peer]
OmniMancer has joined ##openfpga
cr1901_modern has joined ##openfpga
OmniMancer has quit [Quit: Leaving.]
<pepijndevos> I need to find something new to say when I don't need your attention. brightparticle, the quark, her quarkness, she who shall not be highlighted, hmmm
OmniMancer has joined ##openfpga
gnufan has joined ##openfpga
gnufan has quit [Client Quit]
cr1901_modern has quit [Quit: Leaving.]
Asu has joined ##openfpga
<pepijndevos> daveshah, you mentioned that like ECP5, the bitstream CRC for the first frame is different, likely including some bytes before it. How does that work on ECP5?
<daveshah> everything from after the "reset CRC" command ownards is included in that CRC
<pepijndevos> I tried including any number of consecutive bytes, but don't get a match, so it must be more subtle than that.
<daveshah> It's possible they initialise the CRC with something weird or something
<pepijndevos> Like... I stored all the data in an array until the first frame CRC in an array and then looped over array[i:] calculating the CRC, so they are doing something weird.
<whitequark> pepijndevos: doesn't matter, i get pinged all the time anyway. imgur URLs are particularly prone to false positives
<pepijndevos> (btw, I'm looking into this because I managed my generic Nextpnr target to output something plausibly correct)
<daveshah> Something to note is that ECP5 CRC calculation skips 0xFF NOP commands (but not 0xFF dummy bytes in the bitstream)
<daveshah> Do you have a Gowin bitstream I could peek at?
<pepijndevos> sure
<pepijndevos> Where can I share such a thing...
<daveshah> idk, whatever file sharing thingy
<pepijndevos> https://1drv.ms/u/s!AqCj8HyRWficmwyYH8SeLwfokf_v
<daveshah> maybe try skipping the 1111111111111111 from CRC
<pepijndevos> Will try
freemint__ has quit [Remote host closed the connection]
freemint__ has joined ##openfpga
<daveshah> It's also possible that some of 0xFFs after 0x51 are to be skipped too
<pepijndevos> daveshah, blegh, I looped over all the bytes with all possible ff removed, so it's something more weird. https://paste.ubuntu.com/p/59JjFzFPMp/ I'll keep trying.
<daveshah> But this isn't all possible permutations of ff removed
<pepijndevos> well, not all possible combinations, but I just started stripping ff and bytes from the start
<pepijndevos> yea
<pepijndevos> There are more things to try...
<daveshah> you have to work out which FFs are NOP commands - which should be removed in ECP5 terms
<daveshah> and which are part of arguments to other commands and therefore not removed
<pepijndevos> It *seems* as if this line-delimited "binary" is one command per line, so only one NOP command, but it's obviously not so simple in reality.
<daveshah> It's possible they're doing something a bit like Xilinx (I don't know the details) and applying the CRC differently to command and data
<daveshah> (I'm sure mwk can tell you all about that one)
* mwk feels summoned
<pepijndevos> ewww
<mwk> xilinx is doing something completely different
<mwk> also their bitstream format works differently
<pepijndevos> Xilinx and Intel should hold a competition who can come up with the most cursed ideas.
<mwk> on xilinx, the thing going to CRC engine is a 37-bit concatenation of current register being written, and data payload
<mwk> and triggers only on packet payloads, not on command headers (and then not for all registers, some are CRC-exempt)
<mwk> (yes, the CRC register is actually shifted by 37 bits on every word)
<pepijndevos> G (I was thinking there should be a ascii facepalm, and then realised G is kinda like a facepalm by itself)
<pepijndevos> (-‸ლ)
<mwk> I actually like that scheme
<mwk> is it stockhold syndrome
<mwk> *stockhome
<mwk> *stockhjolm
<mwk> *stockholm
<mwk> ffs
<mwk> maybe I should go back to sleep
<pepijndevos> Maybe
<sensille> pepijndevos: m(
<pepijndevos> ?
<sensille> facepalm
Thorn has joined ##openfpga
cr1901_modern has joined ##openfpga
<duck2> stockhold syndrome kinda makes sense
freemint__ has quit [Ping timeout: 245 seconds]
<pepijndevos> Okay, I bruteforced my way through all combinations and it makes no sense, but... ok, it works
<pepijndevos> The commands to include are 11101111000 starting from LSB
<pepijndevos> So it skips the first 3 commands, maybe b'\xa5\xc3' is "reset crc", but then it also skips b'\xd2\x00\xff\xff\x00\xff\xf0\x00'
emeb_mac has joined ##openfpga
emeb_mac has quit [Client Quit]
freemint has joined ##openfpga
OmniMancer has quit [Read error: Connection reset by peer]
freemint has quit [Ping timeout: 276 seconds]
<daveshah> pepijndevos: Interesting, I think 0xD2 is for setting SPI flash address
<daveshah> Maybe it is skipped if unused or something
<pepijndevos> No clue, could be
freemint has joined ##openfpga
freemint has quit [Remote host closed the connection]
freemint has joined ##openfpga
freemint has quit [Ping timeout: 245 seconds]
azonenberg_work has joined ##openfpga
azonenberg_work has quit [Ping timeout: 252 seconds]
azonenberg_work has joined ##openfpga
orkim has joined ##openfpga
zkms has quit [Quit: zkms]
zkms has joined ##openfpga
Laksen has joined ##openfpga
Jybz has joined ##openfpga
Jybz has quit [Ping timeout: 276 seconds]
Jybz has joined ##openfpga
Jybz has quit [Quit: Konversation terminated!]
X-Scale` has joined ##openfpga
X-Scale has quit [Ping timeout: 246 seconds]
X-Scale` is now known as X-Scale
emeb_mac has joined ##openfpga
rohitksingh has quit [Ping timeout: 250 seconds]
emeb has joined ##openfpga
rohitksingh has joined ##openfpga
nrossi has quit [Quit: Connection closed for inactivity]
Asu has quit [Quit: Konversation terminated!]
X-Scale` has joined ##openfpga
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` is now known as X-Scale
rohitksingh has quit [Ping timeout: 265 seconds]
Bike has joined ##openfpga
steve|m has joined ##openfpga