<rqou> in other news, i just re-remembered that stm32s do not lock out ram when the code protection bits are set
azonenberg_work has quit [Ping timeout: 264 seconds]
<balrog> azonenberg: again I'm mainly worried about internationalization and accessibility
<rqou> huh balrog didn't realize you were also a i18n/a11y advocate
<balrog> rqou: I've had to deal with enough of it
<balrog> and vendors that refuse to implement accessibility make my day job more difficult :)
azonenberg_work has joined ##openfpga
<oeuf> rqou: okay should I make i18n ping me like floating point does
oeuf is now known as egg|zzz|egg
<rqou> arrgh properly securing an stm32 "for realz" is like fucking impossible
<rqou> no wonder everybody manages to mess this up completely
genii has quit [Remote host closed the connection]
<rqou> this is like the complete opposite of "correct by default"
<azonenberg_work> rqou: oh?
<azonenberg_work> step 1: power it off
<azonenberg_work> step 2: put it in a bank vault
<Bike> things go awry when the bank decides to save money by using robot guards
<rqou> azonenberg_work: that unfortunately doesn't work in my specific scenario
<rqou> but this certainly doesn't bode well for the internet of targets ever getting any more secure
<azonenberg_work> lol
<azonenberg_work> well seeing as [REDACTED] shipped me a [safety critical device] the other day
<azonenberg_work> that actually had code protection on the stm32
<azonenberg_work> (and this was the first of the $MANY products from them that i've seen with it on)
<azonenberg_work> at least people do use it, sometimes :p
<azonenberg_work> Not to say i didnt pwn it up the wazoo
<azonenberg_work> And dump the firmware by other means :p
<rqou> was "ram doesn't clear on reset; you can cold-boot-attack without even having to chill it" involved?
<rqou> because that's the current issue I'm running into
<rqou> scanlime also attacked a device that way
azonenberg_work has quit [Ping timeout: 255 seconds]
<balrog> azonenberg: isn't code protection broken?
<balrog> on that platform
<rqou> only on some parts
unixb0y has quit [Ping timeout: 265 seconds]
unixb0y has joined ##openfpga
<azonenberg> rqou: more like, unlocked bootloader with arbitrary physical mem read/write primitives
<azonenberg> :p
azonenberg_work has joined ##openfpga
felix_ has quit [Ping timeout: 268 seconds]
felix_ has joined ##openfpga
Bike has quit [Quit: Lost terminal]
rohitksingh_work has joined ##openfpga
soylentyellow has quit [Remote host closed the connection]
soylentyellow has joined ##openfpga
fseidel has joined ##openfpga
cr1901_modern has quit [Ping timeout: 240 seconds]
<rqou> pointfree: current status of psoc?
egg|zzz|egg has quit [Read error: Connection reset by peer]
cr1901_modern has joined ##openfpga
cr1901_modern has quit [Ping timeout: 268 seconds]
cr1901_modern has joined ##openfpga
ondrej2 has quit [Ping timeout: 256 seconds]
pie_ has joined ##openfpga
ondrej2 has joined ##openfpga
<rqou> ping azonenberg
<azonenberg> ack
<rqou> i think i came up with a mechanism for trying to correlate "physical" mux locations with quartus mux locations
<rqou> can you make sure it's not totally borked? (it seems to be working)
<rqou> anyways, the algorithm is
<rqou> for every physical mux location:
<rqou> find bitstreams that are using this mux (have some bit(s) set)
<rqou> the name of this mux must be in the quartus routing dump file
<rqou> but critically, it must be in _every_ routing dump file corresponding to bitstreams that use this mux
<rqou> so therefore, compute the intersection of all used R4/C4 names in the rcf
<rqou> these are all potential candidates for the logical name of this physical mux
<rqou> now, as a second step
<rqou> for bitstreams that do _not_ use this physical mux
<rqou> none of the R4/C4 names in the corresponding routing dump can possibly be the name of the physical mux we're looking at
<rqou> so subtract out all of those from the candidates gathered in the first pass
<rqou> if there is only one left at the end, assume that that is the name for this physical mux
<rqou> do you see any problems with this approach?'
pie_ has quit [Ping timeout: 240 seconds]
<rqou> also azonenberg: the logical/physical mapping of right-going row wires really is all screwed up in every cell
<rqou> any ideas why?
<azonenberg> Makes sense
<rqou> e.g. x2y1 is ordered 0 3 2 1 5 6 7 4
<azonenberg> As long as there is a 1:1 correspondence
<rqou> and then x2y2 is 1 3 0 2 6 4 7 5
<azonenberg> and not any weird remapping or something going on
<azonenberg> My guess? they're rearranged for physical layout reasons
<azonenberg> and/or they designed the files by hand and autorouted the interconnect :p
<azonenberg> tiles*
<azonenberg> seriously it was probably done that way for a reason that only makes sense if you look at the silicon
<rqou> heh
<azonenberg> dodging around a power bus or something
<rqou> what about muxes that seem to only make sense given the "logical" ordering?
<rqou> also, no matter what i cannot reproduce the number of resources reported in quartus
<rqou> by my count i count in total 960 routing resources
<rqou> nowhere near the 784 C4 + 704 R4
<rqou> unless...
<azonenberg> i can say i do like your set union/intersection approach
<azonenberg> try it
<rqou> azonenberg: what if quartus is counting the number of sites you can get "off" a wire
<rqou> not the number of sites where you can get "on" a wire
<azonenberg> That sounds plausible
<rqou> and i just never noticed because all my designs right now have a fanout of 1 on every wire
pie_ has joined ##openfpga
bitd has joined ##openfpga
rohitksingh_wor1 has joined ##openfpga
rohitksingh_work has quit [Ping timeout: 268 seconds]
Miyu has joined ##openfpga
rohitksingh_wor1 has quit [Ping timeout: 256 seconds]
rohitksingh_work has joined ##openfpga
DocScrutinizer05 has quit [Ping timeout: 256 seconds]
DocScrutinizer05 has joined ##openfpga
pie_ has quit [Ping timeout: 256 seconds]
DocScrutinizer05 has quit [Ping timeout: 265 seconds]
DocScrutinizer05 has joined ##openfpga
pzuk has joined ##openfpga
rohitksingh_work has quit [Read error: Connection reset by peer]
wpwrak has quit [Read error: Connection reset by peer]
wpwrak has joined ##openfpga
genii has joined ##openfpga
Bike has joined ##openfpga
rohitksingh has joined ##openfpga
pie_ has joined ##openfpga
rohitksingh1 has joined ##openfpga
rohitksingh has quit [Ping timeout: 260 seconds]
<pie_> is there a way to list physical disks in linux?
<pie_> i have a /dev/sd* device that i dont know the hardware of >_>
<pie_> i mean, is it possible to have multiple sd* devices for one disk
<pie_> ?
<jn__> pie_: lsblk can do that
<jn__> oh wait
<pie_> nevermind turns out i have a disk i forgot i installed
<pie_> just opened it up and checked
<pie_> xD
<jn__> lsscsi is also helpful in some cases
<pie_> oh cool thanks
<pie_> that seems to do basically what i wanted
ondrej2 has quit [Quit: Leaving]
Maya-sama has joined ##openfpga
Miyu has quit [Ping timeout: 264 seconds]
<awygle> rqou: sounds like a good approach, but I would think you'd need to revalidate all your beliefs when you generate new bitstreams, in case you're completely wrong about mechanism
Maya-sama is now known as Miyu
azonenberg_work has quit [Ping timeout: 260 seconds]
m_w has joined ##openfpga
Ellied has quit [Read error: Connection reset by peer]
azonenberg_work has joined ##openfpga
rohitksingh1 has quit [Quit: Leaving.]
<mithro> Does anyone have a recommendation for C++ serialization / deserialization library which supports multiple input / output file formats (IE JSON, XML, ProtoBuf, etc)?
rohitksingh has joined ##openfpga
rohitksingh has quit [Client Quit]
pie_ has quit [Ping timeout: 256 seconds]
pie_ has joined ##openfpga
pie_ has quit [Remote host closed the connection]
azonenberg_work has quit [Ping timeout: 264 seconds]
<rqou> awygle: what do you mean?
<awygle> rqou: i mean, your properties don't constitute a complete proof. you'll have shown that 1) this name is in every file which uses these bits, and 2) this name is not in any file which does not use these bits. that's not actually a proof that this name maps to these bits, it's just a hypothesis that hasn't been refuted yet.
<rqou> yeah true
<awygle> so anytime you add more sample points, you should make sure to test your hypotheses against them, in case the new data refutes any
<rqou> yeah, the script reruns from scratch every time
<awygle> now i'm trying to think what the missing property is. i guess you'd need a bitstream with _only_ those bits set.
<awygle> but that's kind of cheating
<awygle> lol
<rqou> yeah I don't think you can easily generate one
<rqou> right now I have an additional assumption of "i have enumerated all the muxes involved"
<awygle> yes, that's the other way to go. i was thinking of it as "all valid bitstreams" which is obviously untenable, but if you can narrow the focus, the exhaustive search makes sense
<awygle> hm how does quartus produce these logical names? could you take a complete bitstream and chop out everything but the mux, including all the stuff it needs to actually _work_, and then feed it back into the explainer somehow?
<rqou> i don't think you can do that either
<rqou> the explainer seems to operate on the "internal design database"
<rqou> which bitstreams can be generated from
<rqou> but i don't think you can import one back
<awygle> right, so can you chop up that design database, is basically the question
<awygle> i bet you could do that with diamond ncl files... ( daveshah ?)
<awygle> (hell, maybe that's what he's actually doing)
<rqou> i didn't try too carefully
<rqou> there is a way to export a "version independent" design database that mostly consists of deflated xml files
<rqou> but REing that seems like not good ROI
azonenberg_work has joined ##openfpga
<daveshah> awygle: you can go from bitstreams to a low level text format, but it's not useful and it's not ncl
<daveshah> But you can make any ncl file into a bitstream
<daveshah> Even with incomplete routes
<daveshah> Only one mux, for example
<awygle> yeah, that was what i was proposing. "tell me exactly what bits correspond to this single mux"
<daveshah> Yep that's what we do
<awygle> cool
<awygle> lol, excellent name
oeuf has joined ##openfpga
rvense has quit [Read error: Connection reset by peer]
rvense has joined ##openfpga
user10032 has joined ##openfpga
<rqou> lolol stm32f4s have DVFS
<rqou> fortunately unlike mobile socs they don't die if you don't bother
<daveshah> I wonder if someone will do DVFS for FPGA commercially one day
<daveshah> Seem to be some papers
<daveshah> Obviously would be design specific, and another flow step needed to analyse
<daveshah> AFAIK timing analysers already allow you to select voltage, so it would just be a few iterations of that to build a look up table
<daveshah> shapr: yeah
<shapr> ok, thanks
<rqou> wait, i thought people already did DVFS for fpgas
wpwrak has quit [Read error: Connection reset by peer]
<mithro> Well - what it turns out I want is a "XML data binder" not a serialization library
wpwrak has joined ##openfpga
<shapr> what's that do?
<mithro> shapr: You give it a description of your data (frequently in something like XSD or DTD) and it generates you a set of C++ structures and code for serializing / deserializing into them
<shapr> ohh
<shapr> like protobuf and friends
<azonenberg_work> daveshah/rqou: you can do frequency scaling for fpgas
<azonenberg_work> plls support partial reconfig
<azonenberg_work> i considered doing it for power management
<azonenberg_work> But you'd run timing at Fmax once
<azonenberg_work> and then just downclock to save power if you didnt need max performance
<kc8apf> mithro: so http://xmlplus.sourceforge.net/?
<azonenberg_work> rqou: you'll be happy to know that i just called the state for electrical inspection
<azonenberg_work> tentatively coming monday
<azonenberg_work> So we have until then to finish rough-in
<mithro> kc8apf: Yeah - looking at the now
wpwrak has quit [Read error: Connection reset by peer]
wpwrak has joined ##openfpga
<rqou> wtf too much xml cool-aid :P
<mithro> I'm really surprised I can't find a cross format (XML / JSON / protobuf / etc) one so far...
<rqou> it's called serde :P
<rqou> but it requires not using crappy programming languages :P
<awygle> i should do one of those twitter "unpopular opinion" threads about how there's nothing wrong with XML
<mithro> awygle: I would say there is plenty of things wrong with XML - but it gets a lot more hate then it deserves and has a lot of pretty good tooling and other resources
<awygle> mithro: okay, how about XML is no more wrong than JSON or YAML? :P
<awygle> (it's wrong in different ways, of course)
<mithro> awygle: I would personally say it is less wrong then YAML ;-)
<awygle> and i'd say it's less wrong than JSON lol
<mithro> awygle: Its interesting to see JSON relearn everything that XML did 10 years ago...
<qu1j0t3> awygle: I like some of your other opinions less than that one!
<qu1j0t3> mithro: except JSON isn't changing, so i doubt that
<awygle> mithro: hm. on the one hand, yes. on the other hand, you could say that about almost anything in tech. on the gripping hand, i don't really see anybody working to make that less true :(
<awygle> qu1j0t3: ha! do tell :p
<qu1j0t3> nah nah all friends here
<qu1j0t3> of all the things wrong in this business, i wish i'd crossed off enough to have energy left to get upset about xml :)
<awygle> hehe
<awygle> i need to take a rage vacation. i'm getting too worked up about terrible things this week.
<qu1j0t3> oh, yeah.
<mithro> qu1j0t3: json now has things like schemas
<qu1j0t3> i think an increasing number of us feel that way
<awygle> time to decide to let terrible things be terrible for a few days to regain some perspective
<qu1j0t3> mithro: Oh. I used it in a schema'd kind of way already, due to my toolset
<qu1j0t3> mithro: i approve of that in principle
<rqou> um, I don't see json gaining a Turing-complete language to describe data transformations anytime soon :P
* qu1j0t3 has used XSLT
Miyu has quit [Ping timeout: 256 seconds]
<qu1j0t3> i kind of won a take-home code test using XSLT once, but the job was terrible :/
<rqou> nor do i see it gaining some mechanism that involves automagically referencing external files in a way that can be exploitable to the point that it gets its own exploit class acronym
<qu1j0t3> awygle: Honestly i'm all for self care. I shouldn't really be at the terminal myself.
<qu1j0t3> awygle: I should be leetting the magic smoke out of things, or something. everything i read on the bus is so much more interesting than the work right now.
<awygle> qu1j0t3: i'm generally pretty decent at switching that part of my brain off temporarily. it helps that while i like this job, i'm not emotionally invested in the problem per se.
<awygle> (a distinct change from being in the space industry)
<qu1j0t3> ah.
<qu1j0t3> well there's a middle ground. I seem to be avoiding one of our client projects because it's just dead-ass boring
* qu1j0t3 tries to pull motivation from thin air
* azonenberg_work pulls motivation from github
<qu1j0t3> hahahah
* rqou managed to take over the "motivation" repository and replace it with "antigravity"
<rqou> except it doesn't work for azonenberg_work because he despises sneklang
<awygle> my shrink tells me you don't want motivation to be an external dependency. better to bring it in house :p
<rqou> will it require left-pad afterwards?
<mithro> rqou: I prefer nope rope or danger noodle :-P
<rqou> well, you are Australian, and there's a lot of danger noodles there :P
<rqou> aaaargh f*ck stm32
<rqou> i just realized yet another fun problem
<rqou> ISRs need to save registers to the stack
<rqou> which, if it is main memory, leaks their contents
<qu1j0t3> mithro: I... never heard those before
* azonenberg_work boops a danger noodle's snoot
<kc8apf> mithro: all the generic multi-format libraries are designed for handling the structure of a document but not the semantics. Writing something that reads language-specific schemas and maps them onto a common object seems challenging.
<whitequark> 20:56 * azonenberg_work boops a danger noodle's snoot
<whitequark> is azonenberg a furry now
<azonenberg_work> whitequark: they were talking about sneklang
<whitequark> oh
<azonenberg_work> That being said, I do go to work on a furry boat every day... :p
azonenberg_work has quit [Ping timeout: 265 seconds]
<awygle> snakes are about as un-furry as possible
<awygle> (still cute tho)
bitd has quit [Quit: Leaving]
azonenberg_work has joined ##openfpga
<whitequark> awygle: have you ever heard of postfurries
<awygle> whitequark: no but i'm delighted to learn they exist
<cr1901_modern> http://en.wikifur.com/wiki/File:Lavalavavixyvix.jpg Lavalamp Vixen, huh
<awygle> ... now i'm imagining furries with their fursuits shaved like cats who had a bad day at the vet
<cr1901_modern> Hrm, that makes me kinda sad, since my cat started furmowing again recently :/
<cr1901_modern> Even w/ a steroid
<awygle> aw, poor kitty :(
<cr1901_modern> Indeed... I'll give her pets for you when I see her (doesn't live here)
<cr1901_modern> She'll be fine I'm sure, but still sad
<awygle> yup
<awygle> i am currently giving my cat an inhaler every morning
<awygle> which is quite a trip
<cr1901_modern> Oh, I'm sure I'd lose a body part or two if I tried that. I'm surprised she takes a steroid w/o too much complaining
<awygle> my cats have never been exposed to danger of any kind, which makes them a) stupidly fearless and b) pretty docile about things like this
<awygle> "i'm sure this will be a good thing, nothing in my life has ever been a bad thing, why would this be different?"
<oeuf> !wpn whitequark
<oeuf> wait that doesn't work here
oeuf is now known as egg|z|egg
user10032 has quit [Quit: Leaving]
<rqou> pretty sure azonenberg is a closet furry :P
<egg|z|egg> azonenberg: but do you write your sneklang identifiers in smol_snek_case https://twitter.com/ManishEarth/status/1006535554127675393
<cr1901_modern> awygle: Well, this cat... showed up one day and didn't leave. Then a family member fed her. >>
<cr1901_modern> She's been a happy indoor cat ever since. No interest in the outside.
<sorear> you don’t even need to go to postfurry, scalies are already included …
<gruetzkopf> we chose neither of the two cats we currently have
<cr1901_modern> "I don't own a cat" "And now you do"
<gruetzkopf> one of them is strange, but we're on speaking terms (quite literally), the other is your standard derpy cat
<awygle> cats that go from outdoor street cats to indoor tend to be very happy and also to get very fat very quickly if not prevented
<awygle> my grandmother had one of those who would literally give you a hug if asked. pat your chest and he'd leap up and put his arms around your neck.
<cr1901_modern> Uhhh yup, I have a chubby (putting it mildly) cat
Bike has quit [Ping timeout: 260 seconds]
Ellied has joined ##openfpga
Ellied has quit [Quit: WeeChat 1.6]
pie_ has joined ##openfpga
Ellied has joined ##openfpga
<rqou> ugh rust/rtfm really needs a proper "hook super early init" mechanism
<rqou> in other news i now have a problem that only triggers on first power on and not after a reset
Bike has joined ##openfpga
genii has quit [Remote host closed the connection]
<balrog>
GenTooMan has joined ##openfpga
<cr1901_modern> Idk what you posted balrog, but it rendered as an empty message
<qu1j0t3> it's irc's new delete feature
<cr1901_modern> Let me test it out by typing my password: hunter3
<jn__> delete locally before sending, for increased security :P
* awygle has accomplished zero things today
<qu1j0t3> "derpy cat"
<qu1j0t3> Oh that was an unfortunate juxtaposition!!!
<qu1j0t3> sorry awygle I didn't mean to imply-----
<qu1j0t3> omg
* awygle longs to be a derpy cat
<awygle> that was great lol
<cr1901_modern> I like smart and hard to please cats. Feels more rewarding when they accept pets
<rqou> I'm increasingly finding that RTFM is not actually very good
<rqou> the idea is great, just the implementation of everything _sucks_
<rqou> the problems mostly seem to be of the form "frameworks are very hard and tend to make 90% of tasks easy and the remaining 10% impossible"
<rqou> and this is why (in general) i hate "frameworks" and prefer "libraries" that have interfaces that are as dumb as possible