# Should we continue to support ARMv6 and KZM/imx31

**URL:** <https://sel4.discourse.group/t/should-we-continue-to-support-armv6-and-kzm-imx31/46>\
**Category:** seL4 kernel\
**Created:** [January 14, 2019, 5:47am UTC](https://sel4.discourse.group/t/should-we-continue-to-support-armv6-and-kzm-imx31/46 "2019-01-14T05:47:27Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![curtis](https://yyz2.discourse-cdn.com/free1/user_avatar/sel4.discourse.group/curtis/32/12_2.png) [@curtis](https://sel4.discourse.group/u/curtis)\
**Post date:** [January 14, 2019, 5:47am UTC](https://sel4.discourse.group/t/should-we-continue-to-support-armv6-and-kzm-imx31/46/1 "2019-01-14T05:47:27Z")

</div>

Currently, the KZM platform is the only ARMv6 platform that we support and supporting it requires a few work-arounds. In particular, to support thread-local identifiers (such as a `TLS_BASE` and the IPC buffer address) the kernel maps a common page into all address spaces in which it stores the values of these virtual registers.

It would be useful to know who is currently using this platform and how much interest there is in ongoing support for this platform.

---

<div class="post-metadata">

**Author:** ![anna.lyons](https://yyz2.discourse-cdn.com/free1/user_avatar/sel4.discourse.group/anna.lyons/32/4_2.png) [@anna.lyons](https://sel4.discourse.group/u/anna.lyons)\
**Post date:** [January 14, 2019, 5:49am UTC](https://sel4.discourse.group/t/should-we-continue-to-support-armv6-and-kzm-imx31/46/2 "2019-01-14T05:49:43Z")

</div>

Internally at Data61 we have discussed this before, and decided to keep the kzm/ARMv6 port around until it became a maintenance burden. I think we’ve hit this point. Most of our projects are using ARMv7 or ARMv8 and AFAIK there haven’t been any requests for ARMv6 support.

---

<div class="post-metadata">

**Author:** ![gernot](https://yyz2.discourse-cdn.com/free1/user_avatar/sel4.discourse.group/gernot/32/44_2.png) [@gernot](https://sel4.discourse.group/u/gernot)\
**Post date:** [January 21, 2019, 6:45am UTC](https://sel4.discourse.group/t/should-we-continue-to-support-armv6-and-kzm-imx31/46/3 "2019-01-21T06:45:25Z")

</div>

I think the CDDC is v6. But it can probably live with a frozen kernel source

---

<div class="post-metadata">

**Author:** ![gerwin.klein](https://yyz2.discourse-cdn.com/free1/user_avatar/sel4.discourse.group/gerwin.klein/32/46_2.png) [@gerwin.klein](https://sel4.discourse.group/u/gerwin.klein)\
**Post date:** [January 24, 2019, 10:03pm UTC](https://sel4.discourse.group/t/should-we-continue-to-support-armv6-and-kzm-imx31/46/4 "2019-01-24T22:03:29Z")

</div>

From the verification side, ARMv7 is now the main platform. ARMv6/KZM is still very close and could be resurrected quickly, but is not actually supported right now. Dropping it would not have any major impact on verification (until somebody suddenly wants it again, of course ;-)).

---

<div class="post-metadata">

**Author:** ![curtis](https://yyz2.discourse-cdn.com/free1/user_avatar/sel4.discourse.group/curtis/32/12_2.png) [@curtis](https://sel4.discourse.group/u/curtis)\
**Post date:** [January 24, 2019, 11:31pm UTC](https://sel4.discourse.group/t/should-we-continue-to-support-armv6-and-kzm-imx31/46/5 "2019-01-24T23:31:22Z")

</div>

My understanding is that older versions of ARMv6 that do not support process identifiers via co-processor registers (ARMv6 & ARMv6T2) are the main issue as they require the `GLOBALS_FRAME` to, in some part account for this.

That said, we could continue to support these architectures by reserving the general purpose platform register (`r9`) as a process identifier with the [RFC-3](https://sel4kernel.atlassian.net/browse/RFC-3 "Cross-platform thread-local storage support") change (in a similar manner to RISC-V).

We could just require that code is compiled with `-ffixed-r9` and use `r9` for TLS. This would obviate the need for the `GLOBALS_FRAME` whilst maintaining support for ARMv6.

---

<div class="post-metadata">

**Author:** ![nick](https://avatars.discourse-cdn.com/v4/letter/n/f9ae1b/32.png) [@nick](https://sel4.discourse.group/u/nick)\
**Post date:** [February 27, 2019, 12:03am UTC](https://sel4.discourse.group/t/should-we-continue-to-support-armv6-and-kzm-imx31/46/6 "2019-02-27T00:03:15Z")

</div>

> [@curtis](#):
>
> KZM platform

I don’t know of any on-going seL4 projects that need v6 support. I believe [kernel.org](http://kernel.org) removed the BSP for it back in 2015.

My vote is to remove support.

---

<div class="post-metadata">

**Author:** ![anna.lyons](https://yyz2.discourse-cdn.com/free1/user_avatar/sel4.discourse.group/anna.lyons/32/4_2.png) [@anna.lyons](https://sel4.discourse.group/u/anna.lyons)\
**Post date:** [February 27, 2019, 12:15am UTC](https://sel4.discourse.group/t/should-we-continue-to-support-armv6-and-kzm-imx31/46/7 "2019-02-27T00:15:00Z")

</div>

@ihor.kuz do you know what arm version the CDDC is looking at using?

---

<div class="post-metadata">

**Author:** ![anna.lyons](https://yyz2.discourse-cdn.com/free1/user_avatar/sel4.discourse.group/anna.lyons/32/4_2.png) [@anna.lyons](https://sel4.discourse.group/u/anna.lyons)\
**Post date:** [March 1, 2019, 5:37am UTC](https://sel4.discourse.group/t/should-we-continue-to-support-armv6-and-kzm-imx31/46/8 "2019-03-01T05:37:21Z")

</div>

spoke to @ihor.kuz via email, we don’t have any projects using armv6.

---

<div class="post-metadata">

**Author:** ![ihor.kuz](https://avatars.discourse-cdn.com/v4/letter/i/b5a626/32.png) [@ihor.kuz](https://sel4.discourse.group/u/ihor.kuz)\
**Post date:** [March 1, 2019, 6:12am UTC](https://sel4.discourse.group/t/should-we-continue-to-support-armv6-and-kzm-imx31/46/9 "2019-03-01T06:12:42Z")

</div>

If we ever want to run seL4 on Raspberry Pi Zero that’s an ARM11. But I don’t think that not being able to run in RPI zero would be a huge loss.

---

<div class="post-metadata">

**Author:** ![curtis](https://yyz2.discourse-cdn.com/free1/user_avatar/sel4.discourse.group/curtis/32/12_2.png) [@curtis](https://sel4.discourse.group/u/curtis)\
**Post date:** [March 1, 2019, 7:08am UTC](https://sel4.discourse.group/t/should-we-continue-to-support-armv6-and-kzm-imx31/46/10 "2019-03-01T07:08:44Z")

</div>

Versions of ARMv6 after ARMv6k are not a problem, it’s only the ARMv6 platforms without thread ID registers in CP15. This only includes the first two versions.

---

<div class="post-metadata">

**Author:** ![robert.vanvossen](https://yyz2.discourse-cdn.com/free1/user_avatar/sel4.discourse.group/robert.vanvossen/32/19_2.png) [@robert.vanvossen](https://sel4.discourse.group/u/robert.vanvossen)\
**Post date:** [March 8, 2019, 3:04pm UTC](https://sel4.discourse.group/t/should-we-continue-to-support-armv6-and-kzm-imx31/46/11 "2019-03-08T15:04:16Z")

</div>

I don’t see any value in retaining this support. I say drop it.

---

<div class="post-metadata">

**Author:** ![curtis](https://yyz2.discourse-cdn.com/free1/user_avatar/sel4.discourse.group/curtis/32/12_2.png) [@curtis](https://sel4.discourse.group/u/curtis)\
**Post date:** [March 20, 2020, 6:11am UTC](https://sel4.discourse.group/t/should-we-continue-to-support-armv6-and-kzm-imx31/46/12 "2020-03-20T06:11:56Z")

</div>

What is required to support ARMv6 that we don’t get from our support of ARMv7?

---

<div class="post-metadata">

**Author:** ![mbrcknl](https://yyz2.discourse-cdn.com/free1/user_avatar/sel4.discourse.group/mbrcknl/32/41_2.png) [@mbrcknl](https://sel4.discourse.group/u/mbrcknl)\
**Post date:** [September 15, 2021, 11:57pm UTC](https://sel4.discourse.group/t/should-we-continue-to-support-armv6-and-kzm-imx31/46/13 "2021-09-15T23:57:09Z")

</div>

Hi all, we’ve put together an RFC to begin the formal process to remove support for KZM/i.MX31 and ARMv6:

[https://sel4.atlassian.net/browse/RFC-8](https://sel4.atlassian.net/browse/RFC-8)

If anyone has any concerns, please raise them as soon as possible!

---

<div class="post-metadata">

**Author:** ![gerwin.klein](https://yyz2.discourse-cdn.com/free1/user_avatar/sel4.discourse.group/gerwin.klein/32/46_2.png) [@gerwin.klein](https://sel4.discourse.group/u/gerwin.klein)\
**Post date:** [September 16, 2021, 12:23am UTC](https://sel4.discourse.group/t/should-we-continue-to-support-armv6-and-kzm-imx31/46/14 "2021-09-16T00:23:08Z")

</div>

We’ll give it about 2 weeks before we do the formal vote, but if anybody would like us to wait, longer, let us know!
