====== Source ====== This page contains some details about the %%FreeBSD%%/arm64 development process. Now that arm64 is a release architecture this information is largely kept here for historical purposes. The basic %%FreeBSD%%/arm64 support has been available in %%FreeBSD%%-CURRENT for quite some time. Delivery into head: | **Review** | **Commit** | Description | | [[https://reviews.freebsd.org/D2005|D2005]] | [[https://svnweb.freebsd.org/changeset/base/280259|r280259]] | kernel-toolchain | | [[https://reviews.freebsd.org/D2057|D2057]] | [[https://svnweb.freebsd.org/changeset/base/280364|r280364]] | sys/ includes | | [[https://reviews.freebsd.org/D2132|D2132]] | [[https://svnweb.freebsd.org/changeset/base/281197|r281197]] | libc/libstand | | [[https://reviews.freebsd.org/D2136|D2136]] | [[https://svnweb.freebsd.org/changeset/base/280903|r280903]] | rtld-elf | | [[https://reviews.freebsd.org/D2137|D2137]] | [[https://svnweb.freebsd.org/changeset/base/280862|r280862]] | libthr | | [[https://reviews.freebsd.org/D2148|D2148]] | [[https://svnweb.freebsd.org/changeset/base/280711|r280711]] | remaining machine headers | | [[https://reviews.freebsd.org/D2160|D2160]] | [[https://svnweb.freebsd.org/changeset/base/280853|r280853]] | libcompiler-rt | | | [[https://svnweb.freebsd.org/changeset/base/280769|r280769]] | crunchide | | [[https://reviews.freebsd.org/D2173|D2173]] | [[https://svnweb.freebsd.org/changeset/base/281221|r281221]] | libcompiler-rt multc3 | | [[https://reviews.freebsd.org/D2174|D2174]] | [[https://svnweb.freebsd.org/changeset/base/281223|r281223]] | libcompiler-rt float* | | [[https://reviews.freebsd.org/D2175|D2175]] | [[https://svnweb.freebsd.org/changeset/base/280865|r280865]] | LLVM vs ld/gold reloc | | [[https://reviews.freebsd.org/D2183|D2183]] | [[https://svnweb.freebsd.org/changeset/base/281014|r281014]] | rtld TLS | | [[https://reviews.freebsd.org/D2184|D2184]] | [[https://svnweb.freebsd.org/changeset/base/280952|r280952]] | libthread_db | | [[https://reviews.freebsd.org/D2185|D2185]] | [[https://svnweb.freebsd.org/changeset/base/280997|r280997]] | stub libkvm | | [[https://reviews.freebsd.org/D2186|D2186]] | [[https://svnweb.freebsd.org/changeset/base/280951|r280951]] | CDDL defines | | [[https://reviews.freebsd.org/D2199|D2199]] | [[https://svnweb.freebsd.org/changeset/base/281494|r281494]] | Initial kernel merge | | | [[https://svnweb.freebsd.org/changeset/base/280993|r280993]] | libgcc_s infrastructure | | [[https://reviews.freebsd.org/D2249|D2249]] | [[https://svnweb.freebsd.org/changeset/base/281493|r281493]] | devmap arm/arm64 sharing | | | [[https://svnweb.freebsd.org/changeset/base/281466|r281466]] | psci driver | | | [[https://svnweb.freebsd.org/changeset/base/281497|r281497]] | arm64 psci interface | | [[https://reviews.freebsd.org/D2288|D2288]] | [[https://svnweb.freebsd.org/changeset/base/281526|r281526]] | loader.efi for arm64 | | [[https://reviews.freebsd.org/D2357|D2357]] | [[https://svnweb.freebsd.org/changeset/base/282655|r282655]] | busdma (IO coherent systems) | | [[https://reviews.freebsd.org/D2377|D2377]] | [[https://svnweb.freebsd.org/changeset/base/282867|r282867]] | GICv3 | | [[https://reviews.freebsd.org/D2378|D2378]] | [[https://svnweb.freebsd.org/changeset/base/285213|r285213]] | ITS | | [[https://reviews.freebsd.org/D2701|D2701]] | [[https://svnweb.freebsd.org/changeset/base/284196|r284196]] | Options for dmb() and dsb() | | [[https://reviews.freebsd.org/D2463|D2463]] | [[https://svnweb.freebsd.org/changeset/base/284273|r284273]] | ACPI | | [[https://reviews.freebsd.org/D2532|D2532]] | [[https://svnweb.freebsd.org/changeset/base/282909|r282909]] | fabs() | | [[https://reviews.freebsd.org/D2555|D2555]] | [[https://svnweb.freebsd.org/changeset/base/283112|r283112]] | PMC | | [[https://reviews.freebsd.org/D2386|D2386]] | [[https://svnweb.freebsd.org/changeset/base/284317|r284317]] | ECAM PCI driver | | [[https://reviews.freebsd.org/D1997|D1997]] | [[https://svnweb.freebsd.org/changeset/base/284227|r284227]] | DTrace no-modules | | [[https://reviews.freebsd.org/D2738|D2738]] | [[https://svnweb.freebsd.org/changeset/base/285009|r285009]] | DTrace | | | | busdma caching | (Does not include hardware specific support and subsequent bug fixes. Does not include work from July 2015 on.) ====== dmesg ====== From 18 November 2014 with a kernel filesystem: The default boot selection will start in 3 seconds [1] FreeBSD loader from SemiHosting - VenHw(C5B9C74A-6D72-4719-99AB-C59F199091EB)/loader.efi - LoaderType: EFI Application ----------------------- Global FDT Config - VenHw(C5B9C74A-6D72-4719-99AB-C59F199091EB)/foundation-v8.dtb ----------------------- [a] Boot Manager [b] Shell [c] Reboot [d] Shutdown Start: Invalid input, please choose a menu option from the list above Start: 1 Consoles: EFI console Image base: 0x9b189000 EFI version: 2.40 EFI Firmware: ARM Foundation Model EFI Feb 23 2014 22:56:26 (rev 0.00) FreeBSD/arm64 EFI loader, Revision 1.0 (andrew@bender, Thu Nov 13 17:21:08 GMT 2014) /kernel data=0x93e770+0x52008 syms=[0x8+0x981a8+0x8+0x9db5c] Hit [Enter] to boot immediately, or any other key for command prompt. Booting [/kernel]... EFI did not provide DTB, falling back to use /foundation.dtb /foundation.dtb size=0xbcc dtbfp = ffffff8000ac6490 In initarm on arm64 dtbp = ffffff8000ac6490 0 - 0 80000000 - 9b1d7000 9b1e0000 - a0000000 a0300000 - ffab8000 ffafe000 - ffb01000 ffb02000 - ffb19000 ffb1a000 - 100000000 Total = 7fcaf000 pmap_bootstrap ffffff8000004000 99000000 ac9000 ffffff8000004000 End initarm Copyright (c) 1992-2014 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 11.0-CURRENT #65 af5e5a6(userland): Tue Nov 18 11:32:33 GMT 2014 andrew@bender:/usr/obj/arm64.arm64/usr/home/andrew/freebsd/repo/arm64-github/sys/GENERIC arm64 FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512 random device not loaded/active; using insecure pseudo-random number generator random: entropy device infrastructure driver random: selecting highest priority adaptor random: SOFT: yarrow init() random: selecting highest priority adaptor ofwbus0: gic0: mem 0x2c001000-0x2c001fff,0x2c002000-0x2c0020ff on ofwbus0 gic0: pn 0x390, arch 0x2, rev 0x0, implementer 0x43b sc->nirqs 96 generic_timer0: irq 29,30,27,26 on ofwbus0 Timecounter "ARM MPCore Timecounter" frequency 100000000 Hz quality 1000 Event timer "ARM MPCore Eventtimer" frequency 100000000 Hz quality 1000 simplebus0: on ofwbus0 simplebus1: on simplebus0 uart0: mem 0x90000-0x90fff irq 37 on simplebus1 uart0: console (115200,n,8,1) uart1: mem 0xa0000-0xa0fff irq 38 on simplebus1 uart2: mem 0xb0000-0xb0fff irq 39 on simplebus1 uart3: mem 0xc0000-0xc0fff irq 40 on simplebus1 Timecounters tick every 1.000 msec random: unblocking device. Trying to mount root from ufs:/dev/md0 []... Mounting from ufs:/dev/md0 failed with error 2. Trying to mount root from ufs:md0 []... warning: no time-of-day clock registered, system time will not be set accurately Enter full pathname of shell or RETURN for /bin/sh: Cannot read termcap database; using dumb terminal settings. # echo * bin dev sbin # ls bin dev sbin