bits, gates, traces, and pins - fosdem_gates,_traces,_and_pins.pdf · bits, gates, traces, and pins...

46
Bits, Gates, Traces, and Pins Copyleft and Licensing in Open Hardware Josh Triplett [email protected] Jessica Marz [email protected]

Upload: haminh

Post on 02-Aug-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 2: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Disclaimers

● Josh is not a lawyer

● Jessica is not your lawyer

● Neither of us are speaking for our company

○ We’ll assume you aren’t either

● This is not legal advice

● Citations based primarily on US law

○ Portions applicable globally

○ International commentary/correction welcome

● Please feel free to ask questions at any time

Page 3: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Software Architecture

Page 4: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Code in the same source file

Page 5: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Code in the same source file Linking object files or libraries

Page 6: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Code in the same source file Linking object files or libraries

fork/exec

Page 7: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Code in the same source file Linking object files or libraries

fork/exec Servers, RPC, Sockets

Page 8: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Code in the same source file Linking object files or libraries

fork/exec Servers, RPC, Sockets

Shared memory

Page 9: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Code in the same source file Linking object files or libraries

fork/exec Servers, RPC, Sockets

Shared memory Standard APIs

Page 10: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Permissive licensing

Page 11: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Copyleft

Page 12: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Hardware Architecture

Page 13: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Physical object

Page 14: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Circuits on an ASIC

Page 15: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Components on an SoC

Page 16: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

FPGA bitstream

Page 17: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Chips on a board

Page 18: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Printed circuit board (PCB)

Page 19: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Connectors

Page 20: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Forms of Hardware

Page 21: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

STL file Physical object

Page 22: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Schematic Physical chip

Mask / Layout

Page 23: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

FPGA bitstream Programmed FPGA

Page 24: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

PCB layout Physical PCB

Page 25: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Permissive licensing

Page 26: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Copyleft

Page 27: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Intent

Page 28: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Copyleft & Hardware

● interesting and non-trivial

● permissive is easy, but does it give you what you want?

● copyleft goals

○ enable study of complete design in the form(s) preferred for making

modification

○ allow modification and distribution of modified design

○ ensure original licensor is able to benefit the same way licensee did

by having changes/derivatives made available under same license

○ ensure recognition/attribution of creative origin

○ expand the size of the “open commons”

+ additional hardware-specific goals

Page 29: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Implementation: Exclusive Rights

Page 30: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Exclusive Rights for Authors & Makers

● Copyright

● Patent

● Mask Work

● Trademark

Page 31: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Copyright

● Exclusive rights to:

○ reproduce the work

○ distribute copies of the work to the public

○ perform the work publicly

○ display the work publicly

○ prepare derivative works based on the work

● Subject matter

○ literary works

○ pictorial, graphic, & sculptural works

○ other (musical, dramatic, pantomime and choreographic, motion

pictures and other audiovisual works, sound recordings, architectural

works)

17 U.S.C. § 101 et seq

Page 32: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Patent

● Exclusive rights to:

○ make the invention

○ use the invention

○ sell the invention

○ import the invention

● Subject matter

○ process

○ machine

○ manufacture

○ composition of matter

35 U.S.C. § 100 et seq

Check out Frederik Questier’s talk “Protect your

freedom to operate with Open Patents: Hacking

the patent system” tomorrow @ 10:20 a.m.!

Page 33: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Mask Work

● Exclusive rights to:

○ reproduce the mask work by optical, electronic, or any other means

○ import or distribute a semiconductor chip product in which the mask

work is embodied

○ induce or knowingly to cause another person to do any of the acts

above

● Subject matter

○ Mask work fixed in a semiconductor chip

17 U.S.C. §§ 901-914

Page 34: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Trademark

● Exclusive rights to use the mark

○ Includes ability to prevent use of confusingly similar mark by

unauthorized party

● Subject matter

○ Word, name, symbol or device used to identify product

15 U.S.C. § 1051 et seq

Page 35: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Protectable? Protected?Hardware & Forms, redux

Page 38: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Silicon, continued

● IP cores

○ Hard

○ Soft

○ Libraries

Adapted from IP Quality & Reuse.jpg, by Patrickyip - own work, Public Domain

FPGA bitstream Programmed FPGA

Page 39: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Open Hardware, including “opened” FPGA!

https://gitlab.com/Folknology/mystorm/tree/master

Page 40: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Enclosure

Original design, created in CAD tool vs. scan of existing object

● Useful vs. creative

● Separability analysis required to determine whether copyright applies

Intel Galileo enclosure by bubbasnow, CC BY-SA.

Page 41: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

State of Open Hardware Licensing

Page 42: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

LicenseSolderpad Hardware

LicenseCERN OHL TAPR OHL GPLv3

Our Ideal Hardware

LicenseSource availability requirement?

N Y Y Y Y

Derived works must remain under same license?

N Y Y Y, withexceptions

Y, with exceptions

Use for any purpose? Y Y N Y Y

Patent grant? Y Y Y Y Y

Treat physical hardware like “binaries”: require source?

N Y Y N Y

Compatible with copyleft SW license (i.e., GPLv3)?

Y N N Y Y

Page 43: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

License Compatibility

● Want to support copying between software, hardware, firmware,

documentation, specifications

● Boundaries will become fuzzier over time

● “Eating the world”

● Want compatible licenses for all of these ecosystems

○ Please do: account for hardware in new revisions of licenses

○ Please don’t: write your own license for hardware

Page 44: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Open Hardware Ecosystem

● Early days of open hardware

● Most production designs still include proprietary components

● Similar to the early days of Free Software

● Proprietary parts libraries remain a major obstacle

○ Open hardware needs open part libraries!

Page 45: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Recommendations

● For chips, use GPLv3 for copyleft

● For PCBs, use copyleft if desired (many will respect intent)

○ Likely ineffective for physical board

● Develop and contribute to open part libraries

● For drafters of future versions of established copyleft licenses

○ Allow for mask works and other applicable legal structures

○ Treat physical hardware like “binaries”: require source

Page 46: Bits, Gates, Traces, and Pins - FOSDEM_Gates,_Traces,_and_Pins.pdf · Bits, Gates, Traces, and Pins ... schematic capture / logical circuit design

Questions?