wpwrak has quit [Remote host closed the connection]
wpwrak has joined ##openfpga
enriq_ has joined ##openfpga
enriq_ has quit [Client Quit]
ZipCPU|Laptop has quit [Ping timeout: 248 seconds]
enriq_ has joined ##openfpga
enriq_ has quit [Client Quit]
enriq_ has joined ##openfpga
enriq_ has quit [Client Quit]
_whitelogger has joined ##openfpga
Hootch has joined ##openfpga
DocScrutinizer05 has quit [Read error: Connection reset by peer]
DocScrutinizer05 has joined ##openfpga
Hootch has quit [Read error: Connection reset by peer]
pie_ has joined ##openfpga
pie_ has quit [Ping timeout: 240 seconds]
_whitelogger has joined ##openfpga
noobineer has joined ##openfpga
m_t has joined ##openfpga
_whitelogger has joined ##openfpga
m_t has quit [Quit: Leaving]
test123456 has joined ##openfpga
test123456 has quit [Remote host closed the connection]
test123456 has joined ##openfpga
test123456 has quit [Max SendQ exceeded]
test123456 has joined ##openfpga
test123456 has quit [Read error: Connection reset by peer]
ZipCPU|Laptop has joined ##openfpga
ZipCPU|Laptop has quit [Ping timeout: 260 seconds]
ZipCPU|Laptop has joined ##openfpga
azonenberg_work has joined ##openfpga
scrts has quit [Ping timeout: 240 seconds]
scrts has joined ##openfpga
enriq has joined ##openfpga
ZipCPU|Laptop has quit [Ping timeout: 248 seconds]
enriq has quit [Client Quit]
Hootch has joined ##openfpga
m_t has joined ##openfpga
m_w has quit [Remote host closed the connection]
m_w has joined ##openfpga
Hootch has quit [Quit: Leaving]
enriq has joined ##openfpga
enriq has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
enriq has joined ##openfpga
X-Scale has joined ##openfpga
ZipCPU|Laptop has joined ##openfpga
enriq has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
enriq has joined ##openfpga
enriq has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
enriq has joined ##openfpga
enriq has quit [Client Quit]
enriq has joined ##openfpga
enriq has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
theMagnumOrange has quit [Ping timeout: 240 seconds]
pie_ has joined ##openfpga
pie_ has quit [Ping timeout: 240 seconds]
<awygle>
So hey, what's the legal situation vis a vis reverse engineered FPGA bitstream formats?
<awygle>
It should be protected in the US because of the reverse engineering rules, right?
<azonenberg>
awygle: What rules?
<azonenberg>
Depending on your reading of the EULA (and the target device) it may be illegal to use a bitstream generated by the toolchain as part of RE
<azonenberg>
But using a format somebody else has RE'd is, i think, undeniably legal
<azonenberg>
it also depends on the chip
<azonenberg>
xilinx's eula can be interpreted to mean bitstream RE is prohibited
<azonenberg>
Which is why most of my coolrunner work was silicon based
<awygle>
yeah reading through the EFF's FAQ on reverse engineering software it sounds like clean-room reverse engineering is sort of legal by default under copyright law, but then if you sign an EULA then contract law gets involved which may say differently
<awygle>
but that's software which might be different than hardware
<azonenberg>
Yeah
<awygle>
i don't know why i have the impression that reverse engineering of hardware is specifically protected, somehow that's just a thing in my brain somewhere...
<azonenberg>
17 USC 906
<azonenberg>
for silicon specifically
<azonenberg>
Not aware of a similar protection for PCBs, but i havent looked
<azonenberg>
Also not sure if PCB artwork is protected by mask rights like ICs
<awygle>
obviously a question for lawyers. really i was wondering if somebody had actually done the work and talked to lawyers etc
<azonenberg>
My current thoughts on it, IANAL, are
<azonenberg>
use of textual comments (e.g. in xilinx jed files) is kosher
<azonenberg>
use of anything in official datasheets/user guides is kosher
<azonenberg>
use of anything in fpga editor / planahead is kosher
<azonenberg>
generating arbitrary bitstreams and probing to the hardware is iffy
<azonenberg>
i.e. generating a bitfile specifically to see if SLICE_X0Y0 is at this bit
<azonenberg>
But the nice thing is, we can figure out the structure at a tile level (i.e. adequate for PAR) from XDL which is an official tool
<azonenberg>
And we can write a PAR that works entirely at XDL
<azonenberg>
Then have someone located outside the US write an XDL-to-bit tool based on RE done outside the US
<azonenberg>
i think that would be completely OK
<azonenberg>
This is incidentally one of the reasons i'm excited for clifford's 7 series RE stuff
<azonenberg>
Because it means I don't have to take that legal risk
<awygle>
intereseting. what is the reasoning behind >> i.e. generating a bitfile specifically to see if SLICE_X0Y0 is at this bit?
<awygle>
something specifically in the EULA?
<azonenberg>
it references "reverse engineering the data files created by the software" which could be construed as including bitstreams (not sure what else it could mean)
<azonenberg>
but using their UI to understand the relationship between tiles, or using comments (which i don't consider RE, they're intended specifically to be human readable) is OK
<azonenberg>
as this is using the tool how it's meant to be used
<azonenberg>
I also have tried to target older chips so far as i felt the risk of inviting a lawsuit was a lot less
<azonenberg>
idk if xilinx would waste the money to sue me over, say, REing spartan3a
<azonenberg>
or coolrunner
<awygle>
sure
<azonenberg>
i'd be a lot more worried about targeting a newer, actively supported part
<azonenberg>
Which is why i think 7 series par work should be entirely XDL based for the time being
<azonenberg>
with a modular back end so we can swap in a native bitstream twiddling library once one exists
enriq has joined ##openfpga
<awygle>
and is there anything backing "using a format somebody else has RE'd is, i think, undeniably legal"?
<azonenberg>
it's pretty well settled that you are bound by an NDA only with regards to information that you received under the NDA
<azonenberg>
and not information you obtained from a third party
enriq has quit [Client Quit]
<azonenberg>
so if somebody else RE's the bitstream i am obeying the contract by not REing it myself
<azonenberg>
it doesn't say i can't use the result of someone else's RE
<azonenberg>
Depending on the jurisdiction of that third party xilinx could potentially go after them
<azonenberg>
but they'd have no basis for going after me as i didn't do anything i said i wouldn't
<awygle>
because the restriction on RE is in the domain of contract law rather than copyright law, so you can't get slammed for distributing copyrighted material or anything like that
ZipCPU|Laptop has quit [Ping timeout: 255 seconds]
<azonenberg>
Exactly
<azonenberg>
if you were distributing leaked internal xilinx files that would be a copyright issue
<azonenberg>
but a clean document describing what you found from RE isn't protected
<azonenberg>
except perhaps by patents but generally those would only cover the implementation in the chip
enriq has joined ##openfpga
<azonenberg>
i.e. you cant patent the bitstream doc, only "an FPGA implementing such and such a structure"
DocScrutinizer05 has quit [Disconnected by services]
DocScrutinizer05 has joined ##openfpga
<awygle>
mk, copy. makes sense to me generally.
m_w has quit [Quit: leaving]
enriq has quit [Remote host closed the connection]