Add arm64 status report submitted by andrew@FreeBSD.org.

Reviewed by: wblock
Sponsored by: iXsystems
This commit is contained in:
Dru Lavigne 2016-07-13 17:50:42 +00:00
parent ccaeb56930
commit 0697c98f99
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=49105

View file

@ -1886,4 +1886,89 @@
meeting to discuss various items.</p>
</body>
</project>
<project cat='arch'>
<title>FreeBSD/arm64</title>
<contact>
<person>
<name>
<given>Andrew</given>
<common>Turner</common>
</name>
<email>andrew@FreeBSD.org</email>
</person>
</contact>
<links>
<url href="https://wiki.freebsd.org/arm64">FreeBSD arm64 Wiki Entry</url>
</links>
<body>
<p>The <tt>arm64 pmap</tt> code has been updated to work with
the full 4 pagetable levels. This allows us to increase the
user virtual address space to 256TB, with an increase of the
kernel virtual address space. It also allows an increase in
the size of the physical memory &os; can handle to up to
2TB.</p>
<p>The interrupt framework has been replaced with
<tt>intrng</tt> on <tt>arm64</tt>. This allows both
<tt>arm</tt> and <tt>arm64</tt> to share interrupt controller
drivers, as is the case with the <tt>GICv2</tt> driver. The
<tt>GICv3 ITS</tt> driver has been rewritten to better
integrate with <tt>intrng</tt>.</p>
<p>Busdma was updated to handle the cache. The updated code
assumes the device is non-coherent by default, unless the
device driver marks the DMA tag as coherent when creating it.
The generic and ThunderX PCIe drivers have been updated to
create coherent mappings when the device tree marks the
hardware as coherent. This work also fixed issues found with
the sync operation where it was missing memory barriers.</p>
<p>A number of issues with <tt>hwpmc</tt> have been fixed. This
improves the stability of <tt>hwpmc</tt> on <tt>arm64</tt>
with no known software issues. There is a single known issue
which seems to be hardware-related, however further testing is
required.</p>
<p><tt>NEW_PCIB</tt> has been enabled on <tt>arm64</tt>. This
includes handling the <tt>PCI_RES_BUS</tt> resource type.</p>
<p>Old interfaces replaced before 11 have been removed from the
<tt>arm64</tt> kernel and libraries. This includes support
for compatibility with <tt>libc</tt> from releases prior to
11. The <tt>brk</tt> and <tt>sbrk</tt> functions have also
been removed. This allows a workaround for these functions in
the <tt>arm64</tt> C runtime to be removed.</p>
<p><tt>loader.efi</tt> has been updated to use an event timer to
implement its internal time function. This is needed as many
UEFI implementations do not handle The <tt>GetTime</tt>
runtime service method. This means <tt>loader.efi</tt> will
now correctly count down before automatically booting.</p>
<p>Initial support for the ARM Juno reference platform has been
added. This hardware is common within ARM, and has been
useful for finding assumptions on cpuids. Booting on the Juno
required fixing the kernel to remove the assumption it is
booting from CPU zero. This included assigning cpuids and
fixing assumptions within the <tt>GICv2</tt> driver that the
cpuid is the same as the <tt>GIC</tt> cpuid. &os; can now
boot on the 4 Cortex-A53 CPUs. Further investigation is
needed to track down why the boot fails when the 2 Cortex-A57
CPUs are enabled.</p>
<p>Initial work has started on booting &os; on the Pine64 and
Raspberry Pi 3 boards. Both can boot to multiuser mode with
out-of-tree patches. Further work is needed to bring these
patches into the tree, but it is expected this will happen
soon after the end of the code freeze.</p>
</body>
<sponsor>The FreeBSD Foundation</sponsor>
<sponsor>ABT Systems Ltd</sponsor>
</project>
</report>