Page MenuHomeFreeBSD

andrew (Andrew Turner)
User

Projects

User Details

User Since
May 10 2014, 2:21 PM (307 w, 16 h)

Recent Activity

Mon, Mar 23

andrew added inline comments to D24158: Remove the secondary_stacks array in arm64 and riscv kernels..
Mon, Mar 23, 9:52 AM

Sat, Mar 14

andrew added reviewers for D24065: Add Arm pl061 GPIO driver: arm64, ARM.
Sat, Mar 14, 7:36 AM

Fri, Mar 13

andrew updated the diff for D23875: Support creating and using arm64 stage 2 pmap.
  • Add/update comments to help with unobvious code
  • Fix a style bug
  • Switch back to clearing the AF bit, clearing the valid bit breaks when destroying the pmap
Fri, Mar 13, 11:38 AM

Thu, Mar 12

andrew added a comment to D23875: Support creating and using arm64 stage 2 pmap.

Ping?

Thu, Mar 12, 1:00 PM

Fri, Mar 6

andrew committed rS358709: Add more are64 special register fields.
Add more are64 special register fields
Fri, Mar 6, 4:00 PM
andrew committed rS358703: Update the hypervisor registers.
Update the hypervisor registers
Fri, Mar 6, 2:47 PM

Thu, Mar 5

andrew updated the diff for D23875: Support creating and using arm64 stage 2 pmap.

Add the missed pmap_clean_stage2_tlbi

Thu, Mar 5, 2:32 PM
andrew updated the diff for D23875: Support creating and using arm64 stage 2 pmap.

Update based on feedback from Mark

Thu, Mar 5, 2:30 PM
andrew committed rS358669: Mark the arm64 machdep.h as kernel only.
Mark the arm64 machdep.h as kernel only
Thu, Mar 5, 10:52 AM
andrew updated the diff for D23875: Support creating and using arm64 stage 2 pmap.

Remove a possible NULL pointer dereference and the position of a PMAP_UNLOCK

Thu, Mar 5, 10:34 AM

Wed, Mar 4

andrew updated the diff for D23875: Support creating and using arm64 stage 2 pmap.

Create an invalid last level page for stage 2 mappings so it won't be affected by ARMv8.1-TTHM

Wed, Mar 4, 10:35 AM

Tue, Mar 3

andrew added inline comments to D23875: Support creating and using arm64 stage 2 pmap.
Tue, Mar 3, 6:46 PM
andrew retitled D23875: Support creating and using arm64 stage 2 pmap from Support stage 2 in pmap_enter to Support creating and using arm64 stage 2 pmap.
Tue, Mar 3, 6:44 PM
andrew updated the diff for D23875: Support creating and using arm64 stage 2 pmap.

Add the supporting code to use stage 2 entries:

  • Add the vmid set
  • Allow a stage 2 pmap to be created & activated
  • Disable superpage promotion for stage 2 entries as it assumes stage 1
  • Add curvmpmap to track the current VM pmap
Tue, Mar 3, 6:13 PM
andrew updated the diff for D23875: Support creating and using arm64 stage 2 pmap.

Add a function pointer for invalidation of the icache at EL2

Tue, Mar 3, 4:35 PM
andrew committed rS358584: Fix the spelling of aliasing..
Fix the spelling of aliasing.
Tue, Mar 3, 3:32 PM
andrew committed rS358583: Move the arm64 cache identification to identcpu.c.
Move the arm64 cache identification to identcpu.c
Tue, Mar 3, 3:25 PM
andrew committed rS358573: Fix the spelling of the VIPT cache type field.
Fix the spelling of the VIPT cache type field
Tue, Mar 3, 12:50 PM
andrew committed rS358567: Store the boot exception level on arm64 so it can be queried later.
Store the boot exception level on arm64 so it can be queried later
Tue, Mar 3, 8:28 AM

Mon, Mar 2

andrew committed rS358547: Add a space missed in r358545.
Add a space missed in r358545
Mon, Mar 2, 2:36 PM
andrew committed rS358545: Generate the offsets for struct arm64_bootparams and use it in locore.S.
Generate the offsets for struct arm64_bootparams and use it in locore.S
Mon, Mar 2, 2:07 PM

Fri, Feb 28

andrew created D23875: Support creating and using arm64 stage 2 pmap.
Fri, Feb 28, 4:08 PM
andrew added a comment to D23871: Fix misleading indentation in arm64's identcpu.

There should be at most one field to print in the inner loop. The break outside the if block is correct, just at the wrong indentation level.

Fri, Feb 28, 8:09 AM

Feb 26 2020

andrew committed rS358338: Fix the cache type identification.
Fix the cache type identification
Feb 26 2020, 3:56 PM
andrew committed rS358330: Teach the arm64 ident CPU code to print non-ID registers.
Teach the arm64 ident CPU code to print non-ID registers
Feb 26 2020, 1:22 PM
andrew closed D23831: Generalise the arm64 ASID allocator.
Feb 26 2020, 11:50 AM
andrew committed rS358328: Generalise the arm64 ASID allocator..
Generalise the arm64 ASID allocator.
Feb 26 2020, 11:50 AM
andrew committed rS358327: Start to support multiple stages in the arm64 pmap..
Start to support multiple stages in the arm64 pmap.
Feb 26 2020, 11:47 AM
andrew closed D23830: Strt to support multiple stages in the arm64 pmap.
Feb 26 2020, 11:47 AM

Feb 25 2020

andrew updated the diff for D23831: Generalise the arm64 ASID allocator.
  • Move a comment to follow code into pmap_init_asids
  • Assert we have a Stage 1 pmap in pmap_reset_asid_set and remove extra whitespace
Feb 25 2020, 7:06 PM
andrew added a comment to D23831: Generalise the arm64 ASID allocator.
In D23831#523873, @alc wrote:

Is your overall strategy to incrementally replace PMAP_ASSERT_STAGE1(pmap)'s by correct handling of stage 2 PTE?

Feb 25 2020, 7:01 PM
andrew updated the diff for D23831: Generalise the arm64 ASID allocator.

Remove an unused variable

Feb 25 2020, 1:37 PM
andrew created D23831: Generalise the arm64 ASID allocator.
Feb 25 2020, 12:04 PM
andrew created D23830: Strt to support multiple stages in the arm64 pmap.
Feb 25 2020, 12:01 PM

Feb 24 2020

andrew committed rS358294: Split out the stage 1 pte bits and add the stage 2 bits.
Split out the stage 1 pte bits and add the stage 2 bits
Feb 24 2020, 4:45 PM
andrew closed D23669: Split out the stage 1 pte bits and add the stage 2 bits.
Feb 24 2020, 4:45 PM

Feb 17 2020

andrew closed D23717: Use EARLY_DRIVER_MODULE in the acpi bus.
Feb 17 2020, 3:32 PM
andrew committed rS358027: Use EARLY_DRIVER_MODULE in the acpi bus..
Use EARLY_DRIVER_MODULE in the acpi bus.
Feb 17 2020, 3:32 PM

Feb 16 2020

andrew created D23717: Use EARLY_DRIVER_MODULE in the acpi bus.
Feb 16 2020, 2:23 PM

Feb 13 2020

andrew updated the diff for D23669: Split out the stage 1 pte bits and add the stage 2 bits.

Remove a duplicate ATTR_S2_MEMATTR

Feb 13 2020, 7:41 PM
andrew created D23669: Split out the stage 1 pte bits and add the stage 2 bits.
Feb 13 2020, 7:37 PM

Feb 10 2020

andrew added a comment to D23499: Add AUTO_VAR_INIT to ensure the stack it initialised.

It's not intended to be a debugging tool, it's to stop leaking from kernel stack, e.g. CVE-2019-15875 https://lists.freebsd.org/pipermail/freebsd-announce/2020-January/001926.html

Feb 10 2020, 5:20 PM
andrew added a comment to D23437: graphics/drm-devel-kmod: Support arm64.

LGTM

Feb 10 2020, 1:39 PM
andrew added a comment to D23349: arm64 N1SDP PCI root complex driver.

I would be happy to move the existing drivers from sys/dev/pci to sys/dev/pci/controller or similar. We have a similar structure for usb controllers.

Feb 10 2020, 1:33 PM

Feb 8 2020

andrew committed rS357677: Implement the Linux/arm64 VDSO gettimeofday and clock_gettime.
Implement the Linux/arm64 VDSO gettimeofday and clock_gettime
Feb 8 2020, 1:36 PM

Feb 7 2020

andrew added a comment to D23349: arm64 N1SDP PCI root complex driver.

There are no other SoC specific drivers. This driver is at most a quirk for a slightly broken but otherwise standard root complex.

Feb 7 2020, 1:08 PM

Feb 4 2020

andrew updated the summary of D23499: Add AUTO_VAR_INIT to ensure the stack it initialised.
Feb 4 2020, 1:10 PM
andrew created D23499: Add AUTO_VAR_INIT to ensure the stack it initialised.
Feb 4 2020, 1:07 PM
andrew committed rS357499: Print useful debug data on unhandled kernel fault on arm64.
Print useful debug data on unhandled kernel fault on arm64
Feb 4 2020, 12:33 PM

Feb 3 2020

andrew committed rS357448: Remove the GICv3 ITS irq and replace it with an ID.
Remove the GICv3 ITS irq and replace it with an ID
Feb 3 2020, 2:38 PM
andrew accepted D23325: Dynamically select LSE-based atomic(9)s..
Feb 3 2020, 2:19 PM
andrew committed rS357445: Use a unique name for the GICv3 ITS vmem.
Use a unique name for the GICv3 ITS vmem
Feb 3 2020, 1:51 PM
andrew committed rS357443: Disable the use of the quantum cache in the GICv3 ITS.
Disable the use of the quantum cache in the GICv3 ITS
Feb 3 2020, 1:47 PM
andrew accepted D23349: arm64 N1SDP PCI root complex driver.
Feb 3 2020, 11:50 AM
andrew added inline comments to D23325: Dynamically select LSE-based atomic(9)s..
Feb 3 2020, 8:02 AM

Jan 31 2020

andrew created D23439: graphics/mesa-dri: Enable AMD drivers on arm64.
Jan 31 2020, 1:52 PM
andrew created D23437: graphics/drm-devel-kmod: Support arm64.
Jan 31 2020, 1:50 PM
andrew committed rS357330: Call the MAPTI command earlier in the ITS driver.
Call the MAPTI command earlier in the ITS driver
Jan 31 2020, 11:33 AM
andrew committed rS357324: Only create one ITS configuration table.
Only create one ITS configuration table
Jan 31 2020, 10:30 AM
andrew committed rS357323: Ignore the SMMUv3 and PMCG interrupt controller in the IORT tables.
Ignore the SMMUv3 and PMCG interrupt controller in the IORT tables
Jan 31 2020, 9:51 AM

Jan 30 2020

andrew committed rS357304: Shift the ITS processor ID after reading it..
Shift the ITS processor ID after reading it.
Jan 30 2020, 6:49 PM

Jan 27 2020

andrew added inline comments to D23349: arm64 N1SDP PCI root complex driver.
Jan 27 2020, 7:36 PM
andrew accepted D23324: Add LSE-based atomic(9) implementations..
Jan 27 2020, 2:42 PM
andrew accepted D23323: Add wrappers for arm64 atomics..
Jan 27 2020, 2:29 PM
andrew accepted D23322: Provide a single implementation for each of the arm64 ops..
Jan 27 2020, 2:24 PM

Jan 24 2020

andrew added a comment to D23349: arm64 N1SDP PCI root complex driver.

You should add this to files.arm64

Jan 24 2020, 5:56 PM

Jan 16 2020

andrew created D23207: Allow the FACS and XFACS to be zero.
Jan 16 2020, 2:15 PM

Jan 12 2020

andrew accepted D23122: retire BSD_CRTBEGIN option.
Jan 12 2020, 5:15 PM

Jan 9 2020

andrew added inline comments to D22963: Expand generic subword atomic primitives.
Jan 9 2020, 12:45 PM
andrew committed rS356550: Add atomic_testandset/clear on arm64..
Add atomic_testandset/clear on arm64.
Jan 9 2020, 10:26 AM
andrew closed D23019: Add atomic_testandset/clear on arm64.
Jan 9 2020, 10:26 AM

Jan 6 2020

andrew committed rS356426: Add more Arm arm64 CPU identification values.
Add more Arm arm64 CPU identification values
Jan 6 2020, 8:58 PM

Jan 3 2020

andrew added a comment to D22963: Expand generic subword atomic primitives.

Any chance you could be convinced to do the quick copy/paste to add testandclear_long, too, while you're there? If not, no worries- I'll hit it up afterwards. It's another one that Jeff wants for uma/bitstring stuff.

Jan 3 2020, 10:26 AM
andrew created D23019: Add atomic_testandset/clear on arm64.
Jan 3 2020, 10:25 AM
andrew committed rS356316: Add the 8 and 16 bit atomic load/store functions with a barrier on arm64..
Add the 8 and 16 bit atomic load/store functions with a barrier on arm64.
Jan 3 2020, 10:04 AM
andrew closed D22966: Add the 8 and 16 bit atomic load/store functions with a barrier.
Jan 3 2020, 10:04 AM
andrew added a comment to D22966: Add the 8 and 16 bit atomic load/store functions with a barrier.
In D22966#503493, @cem wrote:

The half- and byte-suffix variants are available in the base arm64 ISA, right?

Jan 3 2020, 10:03 AM

Jan 2 2020

andrew committed rS356269: Add the missing trailing '/' when setting TARGET_ARCH from TARGET.
Add the missing trailing '/' when setting TARGET_ARCH from TARGET
Jan 2 2020, 11:02 AM

Dec 30 2019

andrew added a comment to D22963: Expand generic subword atomic primitives.

Which of these are needed on arm64? I created D22966 to add the 8 and 16 bit load_acq & store_rel functions.

Dec 30 2019, 10:00 AM
andrew created D22966: Add the 8 and 16 bit atomic load/store functions with a barrier.
Dec 30 2019, 9:59 AM
andrew accepted D22907: Enable hardware updates to the accessed flag and dirty state on recent arm64 processors .
Dec 30 2019, 9:16 AM

Dec 19 2019

andrew committed rS355907: Stop speculation past an eret instruction.
Stop speculation past an eret instruction
Dec 19 2019, 8:52 AM

Dec 12 2019

andrew committed rS355659: Add comments and macros to the tcr_el1 setting code to help understand it..
Add comments and macros to the tcr_el1 setting code to help understand it.
Dec 12 2019, 6:28 PM

Dec 5 2019

andrew created D22692: Add support for the RK805/RK808 RTC.
Dec 5 2019, 3:31 PM
andrew updated the diff for D22606: Switch to an empty ttbr0 pagetable when the MMU is enabled.

Switch to the empty ttbr0 after cninit is called

Dec 5 2019, 1:24 PM

Dec 4 2019

andrew committed rS355398: Fix the signature for zone_import and zone_release.
Fix the signature for zone_import and zone_release
Dec 4 2019, 6:40 PM
andrew closed D22671: Fix the signature for zone_import and zone_release.
Dec 4 2019, 6:40 PM
andrew added a comment to D22671: Fix the signature for zone_import and zone_release.

It will find all pointers that are used, however I exclude a few functions that may call different, but compatible types e.g. SYSINITS should be void func(const void *), but many don't include the const so I mark mi_startup with a no-cfi attribute.

Dec 4 2019, 6:32 PM
andrew created D22671: Fix the signature for zone_import and zone_release.
Dec 4 2019, 2:52 PM
andrew added inline comments to D22650: Introduce vm_page_astate..
Dec 4 2019, 7:37 AM

Dec 3 2019

andrew accepted D22622: Handle the possibility of preemption after an "ic" or "tlbi" instruction.

Which context synchronization event are you using after the dsb? ARMv8.5 adds the ARMv8.5-CSEH (Context synchronization and exception handling) extension that allows us to remove exceptions as a context synchronization event. It might pay to document where we know we are relying on exception entry/exit for these to help later if we decide to use the extension.

Dec 3 2019, 11:58 AM

Nov 29 2019

andrew added reviewers for D22606: Switch to an empty ttbr0 pagetable when the MMU is enabled: alc, markj.
Nov 29 2019, 4:15 PM
andrew committed rS355213: Use the VM_MEMATTR macros to describe the MAIR offsets..
Use the VM_MEMATTR macros to describe the MAIR offsets.
Nov 29 2019, 4:14 PM
andrew closed D22241: Use the VM_MEMATTR macros to describe the MAIR offsets.
Nov 29 2019, 4:14 PM
andrew created D22606: Switch to an empty ttbr0 pagetable when the MMU is enabled.
Nov 29 2019, 3:51 PM

Nov 27 2019

andrew committed rS355132: Support kernels larger than EFI_STAGING_SIZE in loader.efi.
Support kernels larger than EFI_STAGING_SIZE in loader.efi
Nov 27 2019, 4:53 PM
andrew closed D22569: Add support to allocate more space before and after a current allocation.
Nov 27 2019, 4:52 PM
andrew created D22569: Add support to allocate more space before and after a current allocation.
Nov 27 2019, 3:01 PM
andrew added inline comments to D14698: [new driver] zilinx/zy7_qspi: Add a qspi driver for Zynq platforms..
Nov 27 2019, 8:19 AM · ARM
andrew accepted D22502: Eliminate thread pinning from broadcast TLB invalidation functions on arm64.
Nov 27 2019, 8:10 AM