arm64Project
ActivePublic

Details

Description

FreeBSD/arm64

Recent Activity

Nov 26 2017

ed closed D13148: Add a Saved Process Status Register bit for AArch32 execution mode..
Nov 26 2017, 2:56 PM · arm64, ARM
andrew accepted D13148: Add a Saved Process Status Register bit for AArch32 execution mode..
Nov 26 2017, 2:55 PM · arm64, ARM
ed updated the diff for D13148: Add a Saved Process Status Register bit for AArch32 execution mode..

Rebase.

Nov 26 2017, 2:55 PM · arm64, ARM
andrew added inline comments to D13148: Add a Saved Process Status Register bit for AArch32 execution mode..
Nov 26 2017, 2:53 PM · arm64, ARM
ed added a comment to D13148: Add a Saved Process Status Register bit for AArch32 execution mode..

Maybe you're referring to switching between 64-bit and 32-bit code without going through EL1 first. This is explicitly documented as unsupported.

No, from memory it was an incorrect check the value passed to the kernel from userspace was wrong. I did make sure we have a check on signal return, however for it to work we need to check M[4] is set correctly. With this change the user could change this bit.

Nov 26 2017, 2:36 PM · arm64, ARM
ed updated the diff for D13148: Add a Saved Process Status Register bit for AArch32 execution mode..

Don't allow PSR_AARCH32 to be set in sigreturn().

Nov 26 2017, 2:35 PM · arm64, ARM
ed closed D13146: Make 32-bit system calls end up in svc_handler()..
Nov 26 2017, 2:28 PM · arm64, ARM
andrew added a comment to D13148: Add a Saved Process Status Register bit for AArch32 execution mode..
In D13148#273977, @ed wrote:
In D13148#273913, @ed wrote:

This would be benign, right? For the kernel, it is irrelevant whether user space sets or clears this flag. Just like NZCV, etc.

I'm not sure how the kernel would handle userspace changing between 64 and 32 bit code.

It's pretty straight-forward how that's handled, right? The only way this can take effect is by going through EL1, the kernel, first. For the CPU, it would just be an ordinary context switch like any other.

Nov 26 2017, 1:24 PM · arm64, ARM
andrew accepted D13146: Make 32-bit system calls end up in svc_handler()..
Nov 26 2017, 1:00 PM · arm64, ARM
ed added a comment to D13146: Make 32-bit system calls end up in svc_handler()..

Considering that there is no need to split up this into two code paths for 32-bit/64-bit at least for what I'm trying to achieve, would you mind if I went ahead, committing this change as is? Once this change and D13148 land, I can work towards getting the sysent for cloudabi32 committed.

Nov 26 2017, 12:44 PM · arm64, ARM

Nov 24 2017

ed closed D13145: Set CP15BEN in SCTLR to make memory barriers work in 32-bit mode..
Nov 24 2017, 1:52 PM · arm64, ARM
ed closed D13144: Add rudimentary support for building FreeBSD/arm64 with COMPAT_FREEBSD32..
Nov 24 2017, 1:51 PM · arm64, ARM
andrew accepted D13145: Set CP15BEN in SCTLR to make memory barriers work in 32-bit mode..
Nov 24 2017, 1:49 PM · arm64, ARM
andrew accepted D13144: Add rudimentary support for building FreeBSD/arm64 with COMPAT_FREEBSD32..
Nov 24 2017, 1:45 PM · arm64, ARM

Nov 19 2017

ed added a comment to D13148: Add a Saved Process Status Register bit for AArch32 execution mode..
In D13148#273913, @ed wrote:

This would be benign, right? For the kernel, it is irrelevant whether user space sets or clears this flag. Just like NZCV, etc.

I'm not sure how the kernel would handle userspace changing between 64 and 32 bit code.

Nov 19 2017, 7:45 PM · arm64, ARM
andrew added a comment to D13148: Add a Saved Process Status Register bit for AArch32 execution mode..
In D13148#273913, @ed wrote:

This would be benign, right? For the kernel, it is irrelevant whether user space sets or clears this flag. Just like NZCV, etc.

Nov 19 2017, 3:19 PM · arm64, ARM
ed added a comment to D13148: Add a Saved Process Status Register bit for AArch32 execution mode..

This will allow userspace to switch between AArch64 and AArch32 via sigreturn. sys_sigreturn has checks on the PSR bits to ensure they are safe to install that this will break.

Nov 19 2017, 12:49 PM · arm64, ARM
ed added a comment to D13146: Make 32-bit system calls end up in svc_handler()..

I split the syncronous exception out into a new handler in my compat32 patch as it allows further sanity checks, e.g. that the kernel thinks the current process should be in 32-bit mode.

Nov 19 2017, 12:45 PM · arm64, ARM
ed added a comment to D13145: Set CP15BEN in SCTLR to make memory barriers work in 32-bit mode..

Are we expecting to run armv6 code, or should we just support armv7?

Nov 19 2017, 12:40 PM · arm64, ARM
ed added inline comments to D13144: Add rudimentary support for building FreeBSD/arm64 with COMPAT_FREEBSD32..
Nov 19 2017, 12:40 PM · arm64, ARM
ed updated the summary of D13144: Add rudimentary support for building FreeBSD/arm64 with COMPAT_FREEBSD32..
Nov 19 2017, 12:39 PM · arm64, ARM
ed updated the diff for D13144: Add rudimentary support for building FreeBSD/arm64 with COMPAT_FREEBSD32..

Announce armv7 instead of armv6.

Nov 19 2017, 12:39 PM · arm64, ARM
andrew added a comment to D13145: Set CP15BEN in SCTLR to make memory barriers work in 32-bit mode..

Are we expecting to run armv6 code, or should we just support armv7?

Nov 19 2017, 11:34 AM · arm64, ARM
andrew requested changes to D13148: Add a Saved Process Status Register bit for AArch32 execution mode..

This will allow userspace to switch between AArch64 and AArch32 via sigreturn. sys_sigreturn has checks on the PSR bits to ensure they are safe to install that this will break.

Nov 19 2017, 11:33 AM · arm64, ARM
andrew added a comment to D13146: Make 32-bit system calls end up in svc_handler()..

I split the syncronous exception out into a new handler in my compat32 patch as it allows further sanity checks, e.g. that the kernel thinks the current process should be in 32-bit mode.

Nov 19 2017, 11:30 AM · arm64, ARM
andrew added inline comments to D13144: Add rudimentary support for building FreeBSD/arm64 with COMPAT_FREEBSD32..
Nov 19 2017, 10:51 AM · arm64, ARM

Nov 18 2017

ed added inline comments to D13144: Add rudimentary support for building FreeBSD/arm64 with COMPAT_FREEBSD32..
Nov 18 2017, 7:35 PM · arm64, ARM
ed added inline comments to D13144: Add rudimentary support for building FreeBSD/arm64 with COMPAT_FREEBSD32..
Nov 18 2017, 7:34 PM · arm64, ARM
ed added projects to D13148: Add a Saved Process Status Register bit for AArch32 execution mode.: ARM, arm64.
Nov 18 2017, 7:29 PM · arm64, ARM
ed added projects to D13146: Make 32-bit system calls end up in svc_handler().: ARM, arm64.
Nov 18 2017, 6:51 PM · arm64, ARM
ed added projects to D13143: Make rtld use read(2) instead of mmap(2) for ELF headers: ARM, arm64.
Nov 18 2017, 6:51 PM
manu added projects to D13145: Set CP15BEN in SCTLR to make memory barriers work in 32-bit mode.: ARM, arm64.
Nov 18 2017, 6:38 PM · arm64, ARM
manu added projects to D13144: Add rudimentary support for building FreeBSD/arm64 with COMPAT_FREEBSD32.: ARM, arm64.
Nov 18 2017, 6:36 PM · arm64, ARM

Sep 11 2017

kibab closed D12114: Add MMCCAM-enabled kernel config for arm64.
Sep 11 2017, 7:07 PM · ARM, arm64
pdk_semihalf.com added inline comments to D12250: Introduce UART driver module for Armada 3700.
Sep 11 2017, 7:32 AM · arm64

Sep 9 2017

ian added inline comments to D12255: Add support for Armada 3700 EHCI.
Sep 9 2017, 4:14 PM · arm64
ian added inline comments to D12250: Introduce UART driver module for Armada 3700.
Sep 9 2017, 4:04 PM · arm64
mw added inline comments to D12250: Introduce UART driver module for Armada 3700.
Sep 9 2017, 3:47 PM · arm64
mw added inline comments to D12259: Enable compilation of Marvell NETA controller with arm64 GENERIC.
Sep 9 2017, 3:47 PM · arm64
mw added inline comments to D12255: Add support for Armada 3700 EHCI.
Sep 9 2017, 3:43 PM · arm64
emaste added inline comments to D12255: Add support for Armada 3700 EHCI.
Sep 9 2017, 1:29 PM · arm64
emaste added inline comments to D12250: Introduce UART driver module for Armada 3700.
Sep 9 2017, 1:26 PM · arm64
emaste added inline comments to D12259: Enable compilation of Marvell NETA controller with arm64 GENERIC.
Sep 9 2017, 1:20 PM · arm64
mw closed D12259: Enable compilation of Marvell NETA controller with arm64 GENERIC.
Sep 9 2017, 11:57 AM · arm64
mw closed D12258: Add support for Armada 3700 in the NETA driver.
Sep 9 2017, 11:54 AM · arm64
mw closed D12257: Store virtual address of buffer in mvneta_rx_ring.
Sep 9 2017, 11:49 AM · arm64
mw closed D12251: Add support for uart_mvebu driver arm64 GENERIC config.
Sep 9 2017, 11:46 AM · arm64
mw closed D12250: Introduce UART driver module for Armada 3700.
Sep 9 2017, 11:42 AM · arm64
mw closed D12256: Enable compilation of Marvell EHCI driver in arm64 GENERIC.
Sep 9 2017, 11:16 AM · arm64
mw closed D12255: Add support for Armada 3700 EHCI.
Sep 9 2017, 11:07 AM · arm64