andrew (Andrew Turner)
User

Projects

User Details

User Since
May 10 2014, 2:21 PM (184 w, 4 d)

Recent Activity

Today

andrew committed rS326121: Zero struct efi_tm before setting the needed values. We don't use the dst.
Zero struct efi_tm before setting the needed values. We don't use the dst
Thu, Nov 23, 10:34 AM

Tue, Nov 21

andrew added inline comments to D12650: Add EFI RTC support.
Tue, Nov 21, 5:26 PM
andrew committed rS326066: Add a driver for the EFI RTC. This uses the EFI Runtime Services to query.
Add a driver for the EFI RTC. This uses the EFI Runtime Services to query
Tue, Nov 21, 5:23 PM
andrew closed D12650: Add EFI RTC support.
Tue, Nov 21, 5:23 PM
andrew committed rS326056: When fpcurthread is not the current thread it may be non-NULL. In this.
When fpcurthread is not the current thread it may be non-NULL. In this
Tue, Nov 21, 1:19 PM

Sun, Nov 19

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.

Sun, Nov 19, 3:19 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?

Sun, Nov 19, 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.

Sun, Nov 19, 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.

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

Sat, Nov 18

andrew added a comment to D13136: Add ac100 driver.

It feels like this should be 2 drivers. One to talk with the ac100, and a second jsut for the rtc bits.

Sat, Nov 18, 5:13 PM

Fri, Nov 17

andrew added a comment to D12650: Add EFI RTC support.
In D12650#273067, @kib wrote:

I'm building a new kernel to test this on a SoftIron OverDrive 1000 now.

I believe that the patch was already tested on arm64, IMO amd64 would be much more interesting.

Fri, Nov 17, 4:11 PM
andrew created D13131: Replace the incorrect C arm fabs(3) code with an asm version..
Fri, Nov 17, 9:43 AM

Thu, Nov 16

andrew added inline comments to D12650: Add EFI RTC support.
Thu, Nov 16, 5:47 PM
andrew updated the diff for D12650: Add EFI RTC support.
  • Be stricter when we use the driver
  • Update style base on feedback from kib
Thu, Nov 16, 5:47 PM

Tue, Oct 31

andrew committed rS325251: Allocate the ITS translation table with a 64k page alignment. This is the.
Allocate the ITS translation table with a 64k page alignment. This is the
Tue, Oct 31, 11:17 PM
andrew committed rS325250: As with r325242 use mp_maxid when iterating over CPUs in the GICv3 driver..
As with r325242 use mp_maxid when iterating over CPUs in the GICv3 driver.
Tue, Oct 31, 10:12 PM
andrew committed rS325242: Use mp_maxid when iterating over CPUs as we may have sparse id allocations..
Use mp_maxid when iterating over CPUs as we may have sparse id allocations.
Tue, Oct 31, 6:22 PM

Oct 22 2017

andrew accepted D12757: loader.efi: Make framebuffer commands available for arm64.
Oct 22 2017, 3:17 PM

Oct 20 2017

andrew added a comment to D12725: Eliminate redundant TLB invalidations in the arm64 pmap.

I think the architecture allows us to issue the tlb invalidation, then later execute the dsb & isb instructions as long as we don't try to the old mapping, however will need to check with ARM. We should also just invalidate all entries in pmap_invalidate_range if the length is too long, however in this case it may be better to stop invalidating until after we have removed all the pagetable entries.

Oct 20 2017, 9:51 AM

Oct 19 2017

andrew committed rS324754: Allow later PSCI revisions to also work. The latest ARM Trusted Firmware.
Allow later PSCI revisions to also work. The latest ARM Trusted Firmware
Oct 19 2017, 1:23 PM

Oct 13 2017

andrew created D12650: Add EFI RTC support.
Oct 13 2017, 9:31 AM

Oct 12 2017

andrew accepted D12645: arm: add "rev16" to dissasembly.
Oct 12 2017, 3:48 PM
andrew added a comment to D12639: Enable VIMAGE by default.

Should we enable it on ARMv4/ARMv5 (i.e. old ARM systems)? If so you should add it to sys/arm/conf/std.arm.

Oct 12 2017, 9:38 AM

Oct 10 2017

andrew committed rS324495: Support the EFI Runtime Services on arm64. As with amd64 we use the 1:1.
Support the EFI Runtime Services on arm64. As with amd64 we use the 1:1
Oct 10 2017, 1:05 PM
andrew closed D12595: Add EFI RT support for arm64.
Oct 10 2017, 1:05 PM
andrew committed rS324494: Add machine/fpu.h on arm64 for compatibility with amd64..
Add machine/fpu.h on arm64 for compatibility with amd64.
Oct 10 2017, 1:03 PM
andrew committed rS324493: Move the pmap_l0_index, etc. macros to pte.h. These will be used by the.
Move the pmap_l0_index, etc. macros to pte.h. These will be used by the
Oct 10 2017, 12:55 PM

Oct 9 2017

andrew added inline comments to D12595: Add EFI RT support for arm64.
Oct 9 2017, 1:04 PM

Oct 8 2017

andrew updated the diff for D12595: Add EFI RT support for arm64.
  • Add a public domain comment to fpu.h
  • Move _efirt to an aarch64 specific section in modules/Makefile
Oct 8 2017, 1:55 PM

Oct 6 2017

andrew committed rS324368: Also handle psci 1.0. This can be seen as a bug fix update for the 0.2.
Also handle psci 1.0. This can be seen as a bug fix update for the 0.2
Oct 6 2017, 3:46 PM

Oct 5 2017

andrew created D12595: Add EFI RT support for arm64.
Oct 5 2017, 11:52 AM

Oct 3 2017

andrew accepted D12566: arm: add virtio_pci support for other virtualization environments to GENERIC.
Oct 3 2017, 4:00 PM · ARM

Oct 2 2017

andrew committed rS324207: Add a memory barrier to ensure the atomic write is visible to the other.
Add a memory barrier to ensure the atomic write is visible to the other
Oct 2 2017, 2:22 PM
andrew added a comment to D11959: Increase interrupt capabilities of ti_pruss driver.

Mostly style issues.

Oct 2 2017, 7:33 AM

Oct 1 2017

andrew committed rS324177: To prepare for adding EFI runtime services support on arm64 move the.
To prepare for adding EFI runtime services support on arm64 move the
Oct 1 2017, 7:53 PM
andrew closed D12434: Move MI bits of efirt to a MI file.
Oct 1 2017, 7:53 PM

Sep 28 2017

andrew created D12533: Fix building the kernel with upstream clang.
Sep 28 2017, 3:36 PM

Sep 24 2017

andrew committed rS323970: Remove the VIRT kernel config, it's now useable through GENERIC..
Remove the VIRT kernel config, it's now useable through GENERIC.
Sep 24 2017, 1:28 PM
andrew created D12484: Move more armv6 release images to use GENERIC.
Sep 24 2017, 1:21 PM
andrew updated the diff for D12434: Move MI bits of efirt to a MI file.

Move the MI file under sys/dev/efidev

Sep 24 2017, 11:32 AM
andrew committed rS323967: Add i.MX6 and Xilinx to GENERIC..
Add i.MX6 and Xilinx to GENERIC.
Sep 24 2017, 9:33 AM
andrew closed D11564: Add i.MX6 and Xilinx to GENERIC.
Sep 24 2017, 9:33 AM

Sep 22 2017

andrew added a comment to D12434: Move MI bits of efirt to a MI file.

I left the name as it all architectures that currently support EFI RT use a 1:1 map.

Sep 22 2017, 9:59 AM
andrew updated the diff for D12434: Move MI bits of efirt to a MI file.
  • Move the locking macros to a MD header
  • Ddd subr_efi.c to the module Makefile
Sep 22 2017, 9:31 AM
andrew accepted D12389: Detect NEON and set HWCAP_NEON if present..
Sep 22 2017, 8:27 AM
andrew accepted D12388: Correct HWCAP_VFP3* values to match Linux..
Sep 22 2017, 8:27 AM

Sep 21 2017

andrew created D12434: Move MI bits of efirt to a MI file.
Sep 21 2017, 1:48 PM
andrew committed rS323846: MFC r322800:.
MFC r322800:
Sep 21 2017, 8:21 AM
andrew committed rS323845: MFC r322797:.
MFC r322797:
Sep 21 2017, 8:16 AM

Sep 15 2017

andrew committed rS323610: Add the ARMv8.3 ID register fields. These were found in the A-Profile.
Add the ARMv8.3 ID register fields. These were found in the A-Profile
Sep 15 2017, 12:58 PM

Sep 14 2017

andrew committed rS323593: Add support for handling undefined instructions in userspace and the.
Add support for handling undefined instructions in userspace and the
Sep 14 2017, 5:30 PM

Sep 13 2017

andrew added inline comments to D12360: Allow Raspberry Pi platform code and drivers to be configured with upstream DTBs.
Sep 13 2017, 5:33 PM
andrew accepted D12292: Only mess with VFP state on the CPU for curthread for get/set_vfpcontext..
Sep 13 2017, 4:47 PM
andrew added a comment to D12360: Allow Raspberry Pi platform code and drivers to be configured with upstream DTBs.

When uploading a diff through the website can you include context. There are commands you can use at https://wiki.freebsd.org/Phabricator#Create_a_Revision_via_Web_Interface

Sep 13 2017, 4:29 PM

Sep 12 2017

andrew added inline comments to D12292: Only mess with VFP state on the CPU for curthread for get/set_vfpcontext..
Sep 12 2017, 10:53 PM
andrew added a comment to D12292: Only mess with VFP state on the CPU for curthread for get/set_vfpcontext..

I have a slight concern about a non-current thread being run at the same time as this leading to a potential data race.

Sep 12 2017, 7:57 AM
andrew added inline comments to D12294: Add ptrace operations to fetch and store VFP registers..
Sep 12 2017, 7:51 AM

Sep 11 2017

andrew added a comment to D12290: Add AT_HWCAP and AT_EHDRFLAGS on all platforms..

On ARM platforms I expect we'll need more bits. Linux already has AT_HWCAP2, it might pay to include it from the start.

Sep 11 2017, 7:23 AM

Sep 8 2017

andrew committed rS323309: Not all CPUs handle reading ID_AA64MMFR2_EL1 (e.g. qemu), disable it for now..
Not all CPUs handle reading ID_AA64MMFR2_EL1 (e.g. qemu), disable it for now.
Sep 8 2017, 8:02 AM

Sep 7 2017

andrew committed rS323283: Fix the SVE ID field shift..
Fix the SVE ID field shift.
Sep 7 2017, 7:52 PM
andrew committed rS323282: Add the ATS1E1 case to the ID_AA64MMFR1_EL1 decoding..
Add the ATS1E1 case to the ID_AA64MMFR1_EL1 decoding.
Sep 7 2017, 7:51 PM
andrew committed rS323279: Use the correct mask when printing undecoded fields from the.
Use the correct mask when printing undecoded fields from the
Sep 7 2017, 6:59 PM
andrew committed rS323274: Fix a mismerge, make sure PRINT_ID_AA64_MMFR2 has a unique value..
Fix a mismerge, make sure PRINT_ID_AA64_MMFR2 has a unique value.
Sep 7 2017, 4:43 PM
andrew committed rS323273: Fix the value of ID_AA64ISAR1_DPB_SHIFT, the field is bits 3:0..
Fix the value of ID_AA64ISAR1_DPB_SHIFT, the field is bits 3:0.
Sep 7 2017, 4:13 PM
andrew committed rS323271: Add the ARMv8.2 ID register additions and use them to decode the register.
Add the ARMv8.2 ID register additions and use them to decode the register
Sep 7 2017, 3:46 PM
andrew committed rS323269: Uppercase the special register names in identcpu to be more consistent with.
Uppercase the special register names in identcpu to be more consistent with
Sep 7 2017, 3:30 PM
andrew committed rS323268: Make the bit mask of ARMv8 ID registers to print sparse to keep values.
Make the bit mask of ARMv8 ID registers to print sparse to keep values
Sep 7 2017, 3:25 PM
andrew committed rS323266: Add more ARM Ltd parts to the list of knows CPUs..
Add more ARM Ltd parts to the list of knows CPUs.
Sep 7 2017, 3:03 PM

Sep 6 2017

andrew added inline comments to D12250: Introduce UART driver module for Armada 3700.
Sep 6 2017, 10:33 PM · arm64

Sep 5 2017

andrew accepted D12231: make-memstick.sh: use UFSv2.
Sep 5 2017, 7:10 PM

Sep 3 2017

andrew committed rS323147: Disable the ARM generic timers before interrupts are enabled. Some.
Disable the ARM generic timers before interrupts are enabled. Some
Sep 3 2017, 9:42 AM

Sep 1 2017

andrew accepted D12184: Add ARM Cortex A72 to CPU list.

Based on the Linux source the A73 value is 0xD09. It might pay to also add it at the same time.

Sep 1 2017, 9:25 AM · arm64
andrew added inline comments to D12186: Add Armada 80x0/70x0 compatible to 38x RTC driver.
Sep 1 2017, 9:24 AM · arm64

Aug 31 2017

andrew committed rS323070: Add support for quirks while enabling secondary CPUs. This uses the fdt.
Add support for quirks while enabling secondary CPUs. This uses the fdt
Aug 31 2017, 8:48 PM
andrew retitled D8616: Rework the logic for finding the pic object. from Cleanup INTRNG internals to prepare for ACPI support to Rework the logic for finding the pic object..
Aug 31 2017, 2:13 PM
andrew updated the diff for D8616: Rework the logic for finding the pic object..

Add XREF_NONE

Aug 31 2017, 2:12 PM

Aug 26 2017

andrew committed rS322924: Work around a bug in QEMU when loading data with a load pair instruction.
Work around a bug in QEMU when loading data with a load pair instruction
Aug 26 2017, 3:08 PM

Aug 22 2017

andrew committed rS322800: Remove an unneeded call to pmap_invalidate_all. This was never called as.
Remove an unneeded call to pmap_invalidate_all. This was never called as
Aug 22 2017, 6:20 PM
andrew committed rS322797: Fix a bug in pmap_protect where we invalidate the wrong page. With this we.
Fix a bug in pmap_protect where we invalidate the wrong page. With this we
Aug 22 2017, 5:38 PM
andrew committed rS322787: Fix a comment on uncommitted work..
Fix a comment on uncommitted work.
Aug 22 2017, 1:54 PM
andrew committed rS322786: Move the l0 pagetable address to struct mdproc. It is a property of the.
Move the l0 pagetable address to struct mdproc. It is a property of the
Aug 22 2017, 1:16 PM

Aug 21 2017

andrew committed rS322769: Improve the performance of the arm64 thread switching code..
Improve the performance of the arm64 thread switching code.
Aug 21 2017, 6:12 PM

Aug 19 2017

andrew committed rS322697: Remove redundant declarations. Newer gcc has a warning for these so will.
Remove redundant declarations. Newer gcc has a warning for these so will
Aug 19 2017, 5:18 PM
andrew committed rS322696: Use armv8-a in -march, it is accepted by both clang and gcc..
Use armv8-a in -march, it is accepted by both clang and gcc.
Aug 19 2017, 5:15 PM

Aug 13 2017

andrew committed rS322470: Add support for multiple GICv3 ITS devices. For this we add sc_irq_base.
Add support for multiple GICv3 ITS devices. For this we add sc_irq_base
Aug 13 2017, 6:55 PM
andrew added a comment to D11848: Add timer virtualization specific bits as a prerequisite for bhyvearm.

Can you update this with more context.

Aug 13 2017, 7:42 AM
andrew added inline comments to D11847: Add GIC virtualization bits as a prerequisites for bhyvearm.
Aug 13 2017, 7:41 AM

Aug 12 2017

andrew accepted D12001: Reliably enable debug exceptions on all CPUs..

I think Semihalf was only interested in the kernel debugger when they added this.

Aug 12 2017, 7:49 AM
andrew accepted D11972: Don't panic for PT_GETFPREGS..
Aug 12 2017, 7:21 AM

Aug 11 2017

andrew added a comment to D11972: Don't panic for PT_GETFPREGS..

Yes. I'm not sure why I made the save KPI look like it does. I think curthread is correct at the point it's called in cpu_switch(), however it would pay to check that.

Aug 11 2017, 9:21 PM
andrew added inline comments to D11986: One copy to make CPUARCH from ARCH..
Aug 11 2017, 5:22 PM
andrew added a comment to D11972: Don't panic for PT_GETFPREGS..

On arm64 if a thread has used the vfp unit we will store the state on context switch. This means we should only need to call vfp_save_state when we need access to the fpu registers from the current thread. I don't think fill_fpregs has been tested as lldb didn't have vfp support when we did the initial port.

Aug 11 2017, 2:36 PM
andrew closed D11957: Only return the current cpu if it's in the cpumask by committing rS322400: Only return the current cpu if it's in the cpumask. When we restrict the.
Aug 11 2017, 12:46 PM
andrew committed rS322400: Only return the current cpu if it's in the cpumask. When we restrict the.
Only return the current cpu if it's in the cpumask. When we restrict the
Aug 11 2017, 12:46 PM
andrew added a comment to D11972: Don't panic for PT_GETFPREGS..

Where is this being called from? I think the bug is calling vfp_save_state on a non-current thread.

Aug 11 2017, 6:38 AM

Aug 10 2017

andrew created D11957: Only return the current cpu if it's in the cpumask.
Aug 10 2017, 5:08 PM

Aug 7 2017

andrew accepted D11883: Enable pl310 coherent operation in platform init for Armada 38x.
Aug 7 2017, 10:41 PM · ARM
andrew added a comment to D11883: Enable pl310 coherent operation in platform init for Armada 38x.

There is now access to the platform object from outside of platform.c. You could add a method to platform_pl310_if.m to handle this. Each SoC can then implement this if needed.

Aug 7 2017, 4:25 PM · ARM
andrew added inline comments to D11800: RISC-V privilege architecture update v1.10.
Aug 7 2017, 3:47 PM