Arm is not fully open source, but parts of it are

Arm is a company that designs processor architecture — the blueprint that tells a chip how to work. Most of what Arm does is proprietary, meaning they own it and control who can use it. However, Arm has released some of their designs and tools under open source licenses, which means anyone can see the code, modify it, and use it freely under certain conditions.

The confusion happens because "Arm" refers to several different things: the instruction set (the basic commands a processor understands), the physical chip designs, the development tools, and the software that runs on Arm processors. Some of these are open source. Most are not.

If you are building something that uses Arm processors — whether that is a phone, a server, or an embedded device — you need to understand which parts are actually open and which parts require a license from Arm.

Key Takeaways

  • Arm's core instruction set and most processor designs are proprietary; companies must license them from Arm to manufacture chips.
  • Arm has released some tools, reference designs, and software components under open source licenses like Apache 2.0 and MIT.
  • Linux and other operating systems that run on Arm processors are open source, but the Arm architecture itself is not.
  • If you are writing software for Arm devices, you can use open source tools and compilers; if you are designing Arm chips, you need a commercial license from Arm.

What parts of Arm are actually open source

Arm has released several components under open source licenses. The Arm Compiler for Embedded has open source elements. Arm publishes reference designs and example code on GitHub under licenses like Apache 2.0 and MIT. The Arm Mali GPU drivers have open source versions. Arm also contributes to Linux kernel development and maintains open source tools for developers.

The key distinction: these are tools and software that help you work with Arm processors, not the processor designs themselves. If you want to write code that runs on an Arm device, you can often use open source compilers and libraries. If you want to manufacture an Arm-based chip, you cannot — you must license the architecture from Arm.

Arm's Cortex-M and Cortex-A processor designs are not open source. Neither is the underlying instruction set. These are Arm's core business, and they remain proprietary.

Why Arm keeps the instruction set proprietary

The instruction set is the foundation of everything. It defines what commands a processor can execute. If Arm released this openly, any company could design and manufacture Arm-compatible chips without paying Arm. That would eliminate Arm's revenue model.

Instead, Arm licenses the instruction set to chip manufacturers like Qualcomm, Apple, Samsung, and MediaTek. These companies pay Arm for the right to design their own chips based on Arm's architecture. This is how Arm makes money — not by manufacturing chips themselves, but by licensing the designs to others.

This model is different from, say, x86 processors, where Intel and AMD both manufacture chips based on a shared instruction set. With Arm, the instruction set owner (Arm) controls who can use it and charges for that privilege.

Open source software that runs on Arm processors

Just because Arm the architecture is proprietary does not mean the software running on Arm devices is proprietary. Linux runs on Arm processors and is completely open source. Android is based on Linux and is open source. Many embedded systems use open source operating systems like FreeRTOS or Zephyr on Arm chips.

If you own an Arm device — a smartphone, a Raspberry Pi, a server — you can often run open source software on it without any restrictions. The Arm processor itself is proprietary, but the software layer above it can be entirely free and open.

This is important for developers: you can build open source applications for Arm devices. You just cannot open source the Arm processor design itself, because you do not own it.

What you need a license for

You need an Arm license if you are designing a new chip that uses Arm's instruction set. This includes companies like Apple (designing the A-series chips) and Qualcomm (designing Snapdragon processors). Arm charges for these licenses, and the cost varies based on the complexity of the design and the volume of chips you plan to manufacture.

You do not need an Arm license if you are writing software, even commercial software, that runs on Arm devices. You do not need one if you are using open source tools and compilers to develop for Arm. You do not need one if you are using a Raspberry Pi or any other Arm-based device that someone else manufactured.

The license is between Arm and the chip manufacturer. End users and software developers are not part of that transaction.

Arm's open source contributions and future direction

Arm has been moving toward more openness in recent years. They contribute to the Linux kernel, maintain open source projects on GitHub, and release reference implementations under permissive licenses. However, this is not the same as open sourcing the core instruction set or processor designs.

Arm's strategy appears to be: keep the instruction set proprietary (because that is the business), but make it easier for developers to work with Arm processors by releasing tools, drivers, and example code as open source. This benefits developers without giving away the core intellectual property.

Some competitors, like RISC-V, have taken a different approach by making the instruction set itself open source from the start. RISC-V is free to use and modify. Arm remains proprietary, though increasingly surrounded by open source components.

How this affects you as a developer or user

If you are writing software for Arm devices, the proprietary nature of the Arm instruction set does not affect you. You can use open source compilers like GCC, open source operating systems like Linux, and open source libraries. Your code can be completely open source.

If you are designing a new Arm-based chip, you will need to contact Arm and negotiate a license. This is expensive and typically only relevant for large chip manufacturers.

If you are using an Arm device like a smartphone or Raspberry Pi, the proprietary Arm architecture is invisible to you. You interact with the software layer, which is often open source.

Frequently Asked Questions

Can I use Arm instruction set documentation for free?

Arm publishes documentation for developers at no cost. You can read how the instruction set works, download reference manuals, and study the architecture. What you cannot do is manufacture chips based on it without a license. Reading and learning are free; manufacturing is not.

Is the Raspberry Pi open source?

The Raspberry Pi runs on an Arm processor, but the processor itself is not open source — it is designed by Broadcom and licensed from Arm. However, the Raspberry Pi Foundation releases open source software and schematics. The hardware design is partially open, but the chip at its core is proprietary.

Can I modify open source Arm software and redistribute it?

Yes, as long as you follow the license terms. If the software is under Apache 2.0 or MIT, you can modify and redistribute it. You must include the original license and attribution. The open source components Arm releases are genuinely open — you can use them freely within the license terms.

Why does Arm not open source the instruction set like RISC-V did?

Arm's business model depends on licensing the instruction set to chip manufacturers. Open sourcing it would eliminate that revenue stream. RISC-V chose a different model from the beginning. Arm is an established company with existing licensees; changing the model would disrupt their business and existing agreements.

If I write code for Arm, do I need to pay Arm anything?

No. Writing software for Arm devices is free. You only pay if you are manufacturing Arm-based chips. Software developers, end users, and companies running applications on Arm devices do not pay Arm licensing fees.