[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[openip] GNU SW and GNU HW ?



Hello everybody,

I just browsed through the different OpenIP projects, and I believe there
could be a great benefit for both sides as written there (for example saving
time for professional designers on one hand and reliability, fixes and
extentions just from this guys on the other).

I like the GNU approach very much and contributed already to several
software projects, and I think it was not only for myself useful. I am doing
hardware design but mainly full custom stuff which is not really worth to be
seen as 'IP core module'. But I am very interested in developments as
Opencore and Freeip.

IMHO GNU for software is something different than the GNU approach on the
hardware side, as explained on the OpenIP page, at least I am not shure
about that....

As I know GNU for software strictly does not allow to keep derivative work
secret, so when I use parts of a GNU code in a new development, or hack
something around an existing code I have to release the complete source
again, even if I sell it. An exception are libraries developed under LGPL
(lesser GPL), where I can write programs only _using_ this lib (which is
still open) without releasing the program itself as source. Which I
understand as opportunity for SW developers developing for e.g. an existing
Linux framework (with LGPL libs) for commercial purposes (not open source).

Now a chip consists of more than one block, especially if it is some SoC
solution. To give an example:
A company decides to use a free IP CPU core in a commecial product (and also
takes the possible risk of patent violations of the inventors of this
specific architecture if it is a newer one...) and attaches blocks to it on
the same silicon which are not directly related to this CPU (but on its
external bus or I/O). The next company which buys the product solders it on
a pcb, puts it into a box with some other components and sells it e.g. as
television set.

But where is the border now? For LGPL it could be seen that the border is
the CPU core, the attached modules (the rest of the ASIC) just 'uses' this
core. Same for the firmware running on the core, as it can be seen that it
is again just 'using' it. But even this is not 100% clear for me but I
expect it is the same as a library and application which uses it. The core
itself has of course to be declared as open again, with proper source code
(but there is the question if the synthesized results must be included as it
is derived work out of it??). At least the person/company receiving this
work has no change to replace the core by an other one out of a FPGA or an
ASIC - as it is possible in software with libraries. Again something which
is not clearly defined for hardware.

When I consider now the text of the GPL, IMHO it means that _everything_
derived from the CPU which means closely related, the firmware, the pcb
design, even the whole system (TV) has to be released, isn't it?
This means that the problem is not only that companies love to try to keep
their IP secret, but also that this means a huge effort to document and
release everything from this project related to the CPU in a proper manner,
this could easily even destroy small companies due to the workload....

Especially if the company just does at it should due to the (L)GPL and
forwards the used free blocks, I can already see competitors fighting in
court against such companies to force it (by using the content of the GPL)
to release also all the other parts of this design (to simply burn out
competitors).

And even if this ideas I wrote down are not true - where is a correct
interpretation written about that? Who/what can give me here a correct
answer? Is there someone working on a 'HGPL (hardware GPL)' ? I am engineer,
therefore this stuff is maybe too much for me to understand....

Best regards and thanks for all the effort!

Wolfgang




--
To unsubscribe from openip mailing list please visit http://www.opencores.org/mailinglists.shtml