Hacker News new | past | comments | ask | show | jobs | submit login

> there's some things we have to keep closed

Can you elaborate on the have-to part?




"generally relating to ASIC design kits and things like Flash and memory IP"

Even if a hardware design is open source, and even though we do have open source design software, it's still difficult to produce a non-trivial design using only open source software, and without using any proprietary modules.

Proprietary FPGA and ASIC design software has something like a hardware version of software libraries to provide many common functions.

For instance taking the example they gave right there, if you wanted to interface with a flash memory chip or controller, you wouldn't design your own flash interface from scratch just from reading a reference for the protocol, the same way you wouldn't invent your own compression algorithm or tcp stack, you'd use a flash interface module that someone else('s big team) wrote (decades ago and tweaked all along). But those are mostly all proprietary and have to be purchased, and can't be redistributed to anyone else.

So you can share your own design work, but if you're using any IP like that, you have to exclude them from any files you publish, and the incomplete design doesn't actually work and isn't actually usable except as a reference and place to work from to try to work on filling those gaps with open source equivalents.

And it's a non-trivial job to just replace the commercial ip with new open re-writes. Or sometimes there may even be an open version but it isn't good enough.

And even if you had infinite developer-hours to re-create all the commercial IP, you still might run into a problem that some necessary standard you need to use like ddr4 or 3g or something, the standard itself might involve using some algorithm that isn't open and you can't publish even your own code that implements that algorithm, let alone code you licensed.

(I don't know if the DDR4 spec actually has anything like that, just that some things do, and it can happen in places you can't easily avoid by just choosing some other option. If the ddr4 example were real for instance, you can't really say "oh well my new open laptop just won't use ddr4 then")


With respect, I don't see any of these as insurmountable barriers. Reliance on proprietary IP blocks is a time saving measure rather than a given.

> ... the same way you wouldn't invent your own compression algorithm or tcp stack

But people did write open source TCP stacks and invent open source compression algorithms (eg. xpih, codec2). A notable omission from the github list is Icestorm, part of the the open source end-to-end tool chain for Lattice iCE40 FPGAs [1]. There is a stable open source DDR4 controller [2]. The point is that individuals are filling the gaps.

To an extent open hardware suffers from a lack of coherence. A surprising number of the required components exist, but they are invisible, yet to be drawn into a coherent whole like the GNU project did for software. In 1999 OpenCores and the "Open Collector" search engine started an effort to bring it together but its still ongoing. OpenCores continues to make some great contributions but never got real traction, so there are opportunities for people to renew the exiting structures or make new ones.

There's an element of the organisation meandering, but also GNU has a 17 year head start (dating from OpenCores). If the next 17 years for open hardware looks like the last 17 years for open software then it should be an interesting place to be.

[1] https://wiki.debian.org/FPGA/Lattice

[2] https://opencores.org/projects/ddr_sdr


Not insurmountable. Just the answer to the question.


With my engineer's hat on, I can't disagree with you.

There's an argument that open hardware suffers from an overdose of pragmatism, which is not unexpected given that we're mostly engineers. Some barriers will require more of an evangelistic mindset, as it won't make sense from pragmatic viewpoint to build some things that need building.

Love him or hate him, Richard Stallman did turn Free Software into a movement. At this stage of development open hardware might benefit from it's own version of the GNU manifesto and a group of people who coalesce around it?


Absolutely.


I'm not sure where it's documented, but I remember Libre-SOC have a scheme to keep everything they do free by having an interface to someone else who deals with the proprietary dirty work. Obviously the problem is still there at the base, though.


> … the standard itself might involve using some algorithm that isn't open and you can't publish even your own code that implements that algorithm…

I was under the impression that an algorithm couldn’t be copyrighted since it’s just math.


Taping out an actual chip inevitably involves IP that's not yours, e.g. the standard cell library and other 'physical' IP like memories and flash. You cannot open source that as it is not yours and in general the owners of it won't want to open source it either (though there are exceptions e.g. the Skywater 130nm PDK https://github.com/google/skywater-pdk).

In OpenTitan we've built all the 'logical' IP ourselves from the ground up. This is the Verilog RTL you can see in our repository but you need the 'physical' IP to make a real chip. We haven't built any physical IP so we need to get it from the traditional industry sources which means traditional industry licensing (i.e. very much not open).




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: