Tag all armv7 kernels as such in their machine config line.

Transition all boards that support arm cortex CPUs to armv7. This
leaves two armv6 kernels in the tree. RPI-B, which uses the BCM2835
which has a ARM1176 core, and VERSATILEPB, which is a qemu board setup
around the time RPI-B went in. Copy std.armv6 to std.armv7, even
though that duplicates a lot of stuff. More work needs to be done to
sort out the duplication.

Differential Revision: https://reviews.freebsd.org/D12027
This commit is contained in:
Warner Losh 2017-10-05 23:01:50 +00:00
parent 0b972ac92e
commit 094fc1ed0f
42 changed files with 192 additions and 51 deletions

View File

@ -2,7 +2,7 @@
#$FreeBSD$
cpu CPU_CORTEXA
machine arm armv6
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
makeoptions KERNVIRTADDR=0xc0200000

View File

@ -2,7 +2,7 @@
#$FreeBSD$
cpu CPU_CORTEXA
machine arm armv6
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
makeoptions KERNVIRTADDR=0xc0200000

View File

@ -1,7 +1,7 @@
# $FreeBSD$
cpu CPU_CORTEXA
machine arm armv6
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
makeoptions KERNVIRTADDR=0xc0f00000

View File

@ -1,7 +1,7 @@
# $FreeBSD$
cpu CPU_CORTEXA
machine arm armv6
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
# Physical memory starts at 0x80000000. We assume the kernel is loaded

View File

@ -1,7 +1,7 @@
# $FreeBSD$
cpu CPU_CORTEXA
machine arm armv6
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a -DAL_HAVE_TYPES"
makeoptions KERNVIRTADDR=0xa0200000

View File

@ -1,6 +1,6 @@
# $FreeBSD$
machine arm armv6
machine arm armv7
cpu CPU_CORTEXA
makeoptions CONF_CFLAGS="-march=armv7a"
options SOC_BCM2836

View File

@ -20,7 +20,7 @@
ident ALLWINNER_UP
include "std.armv6"
include "std.armv7"
include "../allwinner/std.allwinner_up"
options INTRNG

View File

@ -19,7 +19,7 @@
ident ALPINE
include "std.armv6"
include "std.armv7"
include "../annapurna/alpine/std.alpine"
makeoptions MODULES_OVERRIDE=""

View File

@ -23,7 +23,7 @@
ident AML8726
include "std.armv6"
include "std.armv7"
include "../amlogic/aml8726/std.aml8726"
options SCHED_ULE # ULE scheduler

View File

@ -5,7 +5,7 @@
#
include "../mv/armada38x/std.armada38x"
include "std.armv6"
include "std.armv7"
ident ARMADA38X

View File

@ -23,7 +23,7 @@
ident MV-88F78XX0
include "std.armv6"
include "std.armv7"
include "../mv/armadaxp/std.mv78x60"
options SOC_MV_ARMADAXP

View File

@ -23,7 +23,7 @@
ident BEAGLEBONE
include "std.armv6"
include "std.armv7"
include "../ti/am335x/std.am335x"
makeoptions MODULES_EXTRA="dtb/am335x am335x_dmtpps"

View File

@ -20,7 +20,7 @@
ident EFIKA_MX
include "std.armv6"
include "std.armv7"
include "../freescale/imx/std.imx51"
makeoptions WITHOUT_MODULES="ahc"

View File

@ -20,7 +20,7 @@
makeoptions WERROR="-Werror"
include "std.armv6"
include "std.armv7"
options SCHED_ULE # ULE scheduler
options PLATFORM # Platform based SoC
options PREEMPTION # Enable kernel thread preemption

View File

@ -22,13 +22,13 @@ ident GENERIC
cpu CPU_CORTEXA
options SMP_ON_UP
machine arm armv6
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
makeoptions KERNVIRTADDR=0xc0000000
options KERNVIRTADDR=0xc0000000
include "std.armv6"
include "std.armv7"
files "../allwinner/files.allwinner"
files "../allwinner/files.allwinner_up"
files "../allwinner/a10/files.a10"

View File

@ -20,7 +20,7 @@
ident IMX53
include "std.armv6"
include "std.armv7"
include "../freescale/imx/std.imx53"
options SOC_IMX53

View File

@ -19,7 +19,7 @@
# $FreeBSD$
ident IMX6
include "std.armv6"
include "std.armv7"
include "../freescale/imx/std.imx6"
options INTRNG

View File

@ -27,7 +27,7 @@ ident PANDABOARD
hints "PANDABOARD.hints"
include "std.armv6"
include "std.armv7"
include "../ti/omap4/std.omap4"
makeoptions MODULES_EXTRA=dtb/omap4

View File

@ -20,7 +20,7 @@
ident RK3188
include "std.armv6"
include "std.armv7"
include "../rockchip/std.rk30xx"
options SOC_ROCKCHIP_RK3188

View File

@ -22,7 +22,7 @@
ident RPI2
include "std.armv6"
include "std.armv7"
include "../broadcom/bcm2835/std.rpi"
include "../broadcom/bcm2835/std.bcm2836"

View File

@ -19,7 +19,7 @@
# $FreeBSD$
ident SOCFPGA
include "std.armv6"
include "std.armv7"
include "../altera/socfpga/std.socfpga"
makeoptions MODULES_OVERRIDE=""

View File

@ -18,7 +18,7 @@
#
# $FreeBSD$
include "std.armv6"
include "std.armv7"
include "../nvidia/tegra124/std.tegra124"
ident TEGRA124

59
sys/arm/conf/VIRT Normal file
View File

@ -0,0 +1,59 @@
#
# VIRT -- Custom configuration for the qemu virt platform
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ../../conf/NOTES and NOTES files.
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
# $FreeBSD$
ident VIRT
include "std.armv7"
include "../qemu/std.virt"
options SCHED_ULE # ULE scheduler
options PLATFORM
options SMP # Enable multiple cores
# Interrupt controller
device gic
options INTRNG
# ARM Generic Timer
device generic_timer
device bpf
device loop
device ether
device uart
device pty
device snp
device pl011
device psci
device virtio
device virtio_mmio
device virtio_blk
device vtnet
device md
device random # Entropy device
# Flattened Device Tree
options FDT # Configure using FDT/DTB data
# Extensible Firmware Interface
options EFI

View File

@ -19,7 +19,7 @@
# $FreeBSD$
ident VYBRID
include "std.armv6"
include "std.armv7"
include "../freescale/vybrid/std.vybrid"
makeoptions WERROR="-Werror"

View File

@ -21,7 +21,7 @@
ident ZEDBOARD
include "std.armv6"
include "std.armv7"
include "../xilinx/std.zynq7"
makeoptions MODULES_EXTRA="dtb/zynq"

View File

@ -1,4 +1,4 @@
# Standard kernel config items for all ARMv6/v7 systems.
# Standard kernel config items for all ARMv6 systems.
#
# $FreeBSD$

79
sys/arm/conf/std.armv7 Normal file
View File

@ -0,0 +1,79 @@
# Standard kernel config items for all ARMv7 systems.
#
# $FreeBSD$
options HZ=1000
options ARM_L2_PIPT # Only L2 PIPT is supported
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options TCP_HHOOK # hhook(9) framework for TCP
options IPSEC # IP (v4/v6) security
options SCTP # Stream Control Transmission Protocol
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options QUOTA # Enable disk quotas for UFS
options NFSCL # Network Filesystem Client
options NFSLOCKD # Network Lock Manager
options NFS_ROOT # NFS usable as /, requires NFSCL
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options TMPFS # Efficient memory filesystem
options GEOM_PART_GPT # GUID Partition Tables
options GEOM_PART_BSD # BSD partition scheme
options GEOM_PART_MBR # MBR partition scheme
options GEOM_LABEL # Provides labelization
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed.
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4)
options FREEBSD_BOOT_LOADER # Process metadata passed from loader(8)
options VFP # Enable floating point hardware support
options COMPAT_FREEBSD10 # Compatible with FreeBSD10
options COMPAT_FREEBSD11 # Compatible with FreeBSD11
# DTrace support
options KDTRACE_HOOKS # Kernel DTrace hooks
options DDB_CTF # all architectures - kernel ELF linker loads CTF data
makeoptions WITH_CTF=1
# Debugging support. Always need this:
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
options KDB # Enable kernel debugger support.
options KDB_TRACE # Print a stack trace for a panic.
# For full debugger support use (turn off in stable branch):
options DDB # Support DDB
#options DEADLKRES # Enable the deadlock resolver
options INVARIANTS # Enable calls of extra sanity checking
options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS
options WITNESS # Enable checks to detect deadlocks and cycles
options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
options MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones
options ALT_BREAK_TO_DEBUGGER # Enter debugger on keyboard escape sequence
options USB_DEBUG # Enable usb debug support code
# Optional extras, never enabled by default:
#options BOOTVERBOSE
#options DEBUG # May result in extreme spewage
#options KTR
#options KTR_COMPILE=KTR_ALL
#options KTR_ENTRIES=16384
#options KTR_MASK=(KTR_SPARE2)
#options KTR_VERBOSE=0
#options USB_REQ_DEBUG
#options USB_VERBOSE
#options VERBOSE_SYSINIT # Enable verbose sysinit messages

View File

@ -1,5 +1,5 @@
# $FreeBSD$
machine arm armv6
machine arm armv7
cpu CPU_CORTEXA
makeoptions CONF_CFLAGS="-march=armv7a"

View File

@ -1,5 +1,5 @@
# $FreeBSD$
machine arm armv6
machine arm armv7
cpu CPU_CORTEXA
makeoptions CONF_CFLAGS="-march=armv7a"

View File

@ -1,5 +1,5 @@
# $FreeBSD$
machine arm armv6
machine arm armv7
cpu CPU_CORTEXA
makeoptions CONF_CFLAGS="-march=armv7a"

View File

@ -1,7 +1,7 @@
# $FreeBSD$
cpu CPU_CORTEXA
machine arm armv6
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
makeoptions KERNVIRTADDR=0xc0100000

View File

@ -2,7 +2,7 @@
files "../mv/armada38x/files.armada38x"
files "../mv/files.mv"
cpu CPU_CORTEXA
machine arm armv6
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
makeoptions KERNVIRTADDR=0xc0000000

View File

@ -2,7 +2,7 @@
files "../mv/files.mv"
cpu CPU_MV_PJ4B
machine arm armv6
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
# This was originally defined as "(KERNBASE-(1024*1024*1024))" but that

View File

@ -1,6 +1,6 @@
# $FreeBSD$
cpu CPU_CORTEXA
machine arm armv6
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
options KERNVIRTADDR = 0xc0200000

View File

@ -1,5 +1,5 @@
# $FreeBSD$
machine arm armv6
machine arm armv7
cpu CPU_CORTEXA
makeoptions CONF_CFLAGS="-march=armv7a"

View File

@ -2,7 +2,7 @@
#$FreeBSD$
cpu CPU_CORTEXA
machine arm armv6
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
makeoptions KERNVIRTADDR=0xc0400000

View File

@ -1,7 +1,7 @@
# $FreeBSD$
cpu CPU_CORTEXA
machine arm armv6
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
makeoptions KERNVIRTADDR=0xc0f00000

View File

@ -1,7 +1,7 @@
# $FreeBSD$
cpu CPU_CORTEXA
machine arm armv6
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
makeoptions KERNVIRTADDR=0xc0f00000

View File

@ -1,6 +1,6 @@
# $FreeBSD$
machine arm armv6
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
files "../ti/files.ti"

View File

@ -4,7 +4,7 @@
# $FreeBSD$
cpu CPU_CORTEXA
machine arm armv6
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
files "../xilinx/files.zynq7"

View File

@ -25,8 +25,8 @@ arm/arm/blockio.S standard
arm/arm/bus_space_asm_generic.S standard
arm/arm/bus_space_base.c optional fdt
arm/arm/bus_space_generic.c standard
arm/arm/busdma_machdep-v4.c optional !armv6 !ARM_USE_V6_BUSDMA
arm/arm/busdma_machdep-v6.c optional armv6 | ARM_USE_V6_BUSDMA
arm/arm/busdma_machdep-v4.c optional !armv7 !armv6 !ARM_USE_V6_BUSDMA
arm/arm/busdma_machdep-v6.c optional armv7 | armv6 | ARM_USE_V6_BUSDMA
arm/arm/copystr.S standard
arm/arm/cpufunc.c standard
arm/arm/cpufunc_asm.S standard
@ -43,11 +43,12 @@ arm/arm/cpufunc_asm_sheeva.S optional cpu_arm9e
arm/arm/cpufunc_asm_xscale.S optional cpu_xscale_pxa2x0 | cpu_xscale_ixp425 | cpu_xscale_81342
arm/arm/cpufunc_asm_xscale_c3.S optional cpu_xscale_81342
arm/arm/cpuinfo.c standard
arm/arm/cpu_asm-v6.S optional armv6
arm/arm/cpu_asm-v6.S optional armv7 | armv6
arm/arm/db_disasm.c optional ddb
arm/arm/db_interface.c optional ddb
arm/arm/db_trace.c optional ddb
arm/arm/debug_monitor.c optional ddb armv6
arm/arm/debug_monitor.c optional ddb armv7
arm/arm/disassem.c optional ddb
arm/arm/dump_machdep.c standard
arm/arm/elf_machdep.c standard
@ -60,14 +61,14 @@ arm/arm/gdb_machdep.c optional gdb
arm/arm/generic_timer.c optional generic_timer
arm/arm/gic.c optional gic
arm/arm/gic_fdt.c optional gic fdt
arm/arm/identcpu-v4.c optional !armv6
arm/arm/identcpu-v6.c optional armv6
arm/arm/identcpu-v4.c optional !armv7 !armv6
arm/arm/identcpu-v6.c optional armv7 | armv6
arm/arm/in_cksum.c optional inet | inet6
arm/arm/in_cksum_arm.S optional inet | inet6
arm/arm/intr.c optional !intrng
kern/subr_intr.c optional intrng
arm/arm/locore.S standard no-obj
arm/arm/hypervisor-stub.S optional armv6
arm/arm/hypervisor-stub.S optional armv7 | armv6
arm/arm/machdep.c standard
arm/arm/machdep_boot.c standard
arm/arm/machdep_kdb.c standard
@ -85,8 +86,8 @@ arm/arm/pl310.c optional pl310
arm/arm/platform.c optional platform
arm/arm/platform_if.m optional platform
arm/arm/platform_pl310_if.m optional platform pl310
arm/arm/pmap-v4.c optional !armv6
arm/arm/pmap-v6.c optional armv6
arm/arm/pmap-v4.c optional !armv7 !armv6
arm/arm/pmap-v6.c optional armv7 | armv6
arm/arm/pmu.c optional pmu | fdt hwpmc
arm/arm/ptrace_machdep.c standard
arm/arm/sc_machdep.c optional sc
@ -97,12 +98,12 @@ arm/arm/stdatomic.c standard \
compile-with "${NORMAL_C:N-Wmissing-prototypes}"
arm/arm/support.S standard
arm/arm/swtch.S standard
arm/arm/swtch-v4.S optional !armv6
arm/arm/swtch-v6.S optional armv6
arm/arm/swtch-v4.S optional !armv7 !armv6
arm/arm/swtch-v6.S optional armv7 | armv6
arm/arm/sys_machdep.c standard
arm/arm/syscall.c standard
arm/arm/trap-v4.c optional !armv6
arm/arm/trap-v6.c optional armv6
arm/arm/trap-v4.c optional !armv7 !armv6
arm/arm/trap-v6.c optional armv7 | armv6
arm/arm/uio_machdep.c standard
arm/arm/undefined.c standard
arm/arm/unwind.c optional ddb | kdtrace_hooks
@ -128,6 +129,7 @@ dev/fdt/fdt_arm_platform.c optional platform fdt
dev/hdmi/hdmi_if.m optional hdmi
dev/hwpmc/hwpmc_arm.c optional hwpmc
dev/hwpmc/hwpmc_armv7.c optional hwpmc armv6
dev/hwpmc/hwpmc_armv7.c optional hwpmc armv7
dev/iicbus/twsi/twsi.c optional twsi
dev/ofw/ofwpci.c optional fdt pci
dev/pci/pci_host_generic.c optional pci_host_generic pci

View File

@ -1,5 +1,6 @@
#$FreeBSD$
ARMV6 opt_global.h
ARMV7 opt_global.h
ARM_CACHE_LOCK_ENABLE opt_global.h
ARM_KERN_DIRECTMAP opt_vm.h
ARM_L2_PIPT opt_global.h