I happen to agree with the position that firmware is data, for two reasons. The first reason is that many instances of firmware really are written from scratch in machine code and there isn't any kind of source code to distribute. The second reason is that it draws an arbitrary line between "short" and "long" data.
Suppose I have a device which needs to be initialized, so I write this to its port:
Now suppose I have another device, which needs to be initialized this way:
0x41 0x18 0xa5 0xff 0x00 0x19 0x54 0x37
And I have a third device, where the initialization string is like the above, but about fifty kilobytes long. What's the difference? Can I distribute the driver for the first and second device, but not distribute the third because it is somehow "not free"? At what exact length (in bytes) does it become not free? What if the author write the 50,000-byte initialization, in machine language, in hexadecimal, through sheer application of brain power? What, then, is the "preferred form of modification"?
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds