Our embedded system comprises a Xilinx ARM-based system on chip (MPSoC). Xilinx-provided BSP includes U-Boot (which is licensed under GPL 2). We do not modify it in any way, do not link to it, etc.

It is my opinion that such use of U-Boot does not constitute derived work and does not subject our software to GPL 2 requirements.

Am I correct?


On the assumption that your software is perfectly standard userspace type software which starts running well after the kernel has booted etc, then I would agree with your assessment - your software is an independent work from U-Boot, so your product is an aggregation and the GPL does not extend to your software.

(As an aside, this does not exempt you from the requirement to provide the source to U-Boot itself when someone you have distributed it to requests it)


U-boot's license requires you to provide the source-code for U-boot (including any modifications you made) to anybody that asks for it. U-boot typically doesn't interact with your system after booting, and neither will its license.

In general, GPLv2 software is OK to ship on a product that also includes closed-source software. It won't force you to give away your proprietary code, as long as all you're doing is running GPLv2 binaries or dynamically linking against GPLv2 libraries (note: the topic of linking is up for some interpretation).

GPLv3 software is a bit stricter, and requires you to provide users with a way to modify the filesystem that holds any GPLv3 code. So if you need to have encrypted updates or something, try to steer clear of GPLv3 software. But GPLv2 is usually OK as long as you're OK giving out any modifications you made.

  • 1
    Re GPL3: The other option is to permanently burn it into ROM, in such a way that you can't later update it. Then you don't need to let users modify it either. This is usually a bad idea, because you never know what security vulnerabilities or other problems might arise down the road. But it is technically permitted under GPL3.
    – Kevin
    Dec 30 '21 at 6:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.