Add arm64 status report submitted by andrew@FreeBSD.org.
Reviewed by: wblock Sponsored by: iXsystems
This commit is contained in:
parent
ccaeb56930
commit
0697c98f99
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=49105
1 changed files with 85 additions and 0 deletions
|
|
@ -1886,4 +1886,89 @@
|
||||||
meeting to discuss various items.</p>
|
meeting to discuss various items.</p>
|
||||||
</body>
|
</body>
|
||||||
</project>
|
</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>
|
</report>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue