In order to build a kernel with one of these configs the user should do

the following:

1. Give the appropriate board dts file to be used by either:
1.1. edit the SoC kernel config required (e.g., MT7620A_FDT) and include
the required FDT_DTS_FILE makeoption; or
1.2. simply supply FDT_DTS_FILE="xx.dts" on the command line when building
the kernel
Of course, the user can also create a completely new kernel config to
match the desired board and include the SoC kernel config from within
it.

If required, edit the MEDIATEK config file, which includes optional
drivers and comment out the unneeded ones.
2.1. this would only make sense if kernel size is a concern. Even if we
build the kernel with all drivers, if we lzma it and package it as a uImage,
its size is still around 1.1MiB.

The user will have to choose a dts file (or create a new one) from
sys/gnu/dts/mips , where all Mediatek/Ralink dts files will be imported via
a later revision.

Approved by:	adrian (mentor)
Sponsored by:	Smartcom - Bulgaria AD
Differential Revision:	https://reviews.freebsd.org/D5966
This commit is contained in:
Stanislav Galabov 2016-04-15 15:20:41 +00:00
parent 9e297f96d4
commit 3e4b91800a
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=298057
10 changed files with 411 additions and 0 deletions

81
sys/mips/conf/MEDIATEK Normal file
View File

@ -0,0 +1,81 @@
#
# MEDIATEK -- Kernel configuration file for FreeBSD/MIPS Mediatek/Ralink SoCs
#
# This includes all the configurable parts of the kernel. Please read through
# the sections below and customize the options to fit your board if needed.
#
# $FreeBSD$
#
#NO_UNIVERSE
# Don't build any modules by default
makeoptions MODULES_OVERRIDE=""
#
# Default rootfs device configuration, should be changed to suit target board
#
options ROOTDEVNAME=\"ufs:md0.uzip\"
#
# Optional drivers section
#
# What follows is optional support drivers for the Mediatek SoCs.
# The kernel can be compiled without them if size is a concern.
# All optional drivers are built by default.
#
# Support geom_uzip(4) compressed disk images
device geom_uzip
options GEOM_UZIP
# Support md(4) and md-based rootfs
device md
options MD_ROOT
# SPI and SPI flash support
device spibus
device mx25l
# GPIO and gpioled support
device gpio
device gpioled
# PCI support
device pci
#
# USB (ehci, ohci, xhci, otg) support. Unneeded drivers can be commented in
# order to lower kernel size. See below for driver SoC support.
#
# For all SoCs that require USB support
device usb
# For RT3050, RT3052 and RT3350 SoCs
device dwcotg
# For RT3352, RT3662, RT3883, RT5350, MT7620, MT7628 and MT7688
device ohci
device ehci
# For MT7621, or cases where the target board has a XHCI controller on PCI
# (for example Asus RT-N65U)
device xhci
# USB umass(4) storage and da(4) support
device umass
device da
# ahci(4) and ada(4) support, depends on PCI
device ahci
device ada
# CAM support, required if either umass(4) or ahci(4) is enabled above
device pass
device scbus
# Ethernet, BPS and bridge support
device rt
device bpf
device if_bridge
# Extres
device ext_resources
device clk

View File

@ -0,0 +1,89 @@
#
# MEDIATEK_BASE -- Base kernel configuration file for FreeBSD/MIPS
# Mediatek/Ralink SoCs.
#
# This includes all the required drivers for the SoCs.
# Ususally, users should not build this kernel configuration. It is provided
# only as a minimum base, from which customizations can be made. Please look
# at MEDIATEK kernel configuration for customization details.
#
# $FreeBSD$
#
#NO_UNIVERSE
# Include the standard file list for Mediatek SoCs.
files "../mediatek/files.mtk"
# Building a mips/mipsel kernel
machine mips mipsel
# Little-endian machine
makeoptions MIPS_LITTLE_ENDIAN=defined
# Default kernel load address
makeoptions KERNLOADADDR=0x80001000
# Mediatek/Ralink SoC support depends on FDT (with static DTB for the moment)
options FDT
options FDT_DTB_STATIC
# We rely on MIPS_INTRNG code
options MIPS_INTRNG
options MIPS_NIRQ=256
# We rely on NEW_PCIB code
options NEW_PCIB
# Build kernel with gdb(1) debug symbols
makeoptions DEBUG=-g
# Support for DDB and KDB
options DDB
options KDB
# Debugging for use in -current
options INVARIANTS
options INVARIANT_SUPPORT
options WITNESS
options WITNESS_SKIPSPIN
options DEBUG_REDZONE
options DEBUG_MEMGUARD
# For small memory footprints
options VM_KMEM_SIZE_SCALE=1
# General options, including scheduler, etc.
options SCHED_ULE # ULE scheduler
options INET # InterNETworking
#options INET6 # IPv6
options PSEUDOFS # Pseude-filesystem framework
options FFS # Berkeley Fast Filesystem
#options SOFTUPDATES # Enable FFS soft updates support
#options UFS_ACL # Support for access control lists
#options UFS_DIRHASH # Improve big directory performance
#options MSDOSFS # Enable support for MSDOS filesystems
options _KPOSIX_PRIORITY_SCHEDULING # Posix P1003_1B real-time ext.
#
# Standard drivers section
#
# The drivers in the following section are required in order to successfully
# compile the kernel.
#
# FDT clock and pinctrl framework
device fdt_clock
device fdt_pinctrl
# UART support
device uart
# random support
device random
# loop device support
device loop
# ether device support
device ether

30
sys/mips/conf/MT7620A_FDT Normal file
View File

@ -0,0 +1,30 @@
#
# MT7620A_FDT -- Kernel configuration file for FreeBSD/MIPS MT7620A SoC
#
# This includes all the configurable parts of the kernel. Please read through
# MEDIATEK kernel config and customize the options to fit your board if needed.
#
# $FreeBSD$
#
#NO_UNIVERSE
#
# FDT_DTS_FILE should be modified to suit the target board type.
#
#makeoptions FDT_DTS_FILE=MT7620a.dts
#
# The user should never have to edit what's below this line.
# If customizations are needed, they should be done to the MEDIATEK kernel
# configuration.
#
# Start with a base configuration
include MEDIATEK_BASE
ident MT7620A
cpu CPU_MIPS24K
# Include optional configuration (to be edited by the user if needed)
include MEDIATEK

30
sys/mips/conf/MT7620N_FDT Normal file
View File

@ -0,0 +1,30 @@
#
# MT7620N_FDT -- Kernel configuration file for FreeBSD/MIPS MT7620N SoC
#
# This includes all the configurable parts of the kernel. Please read through
# MEDIATEK kernel config and customize the options to fit your board if needed.
#
# $FreeBSD$
#
#NO_UNIVERSE
#
# FDT_DTS_FILE should be modified to suit the target board type.
#
#makeoptions FDT_DTS_FILE=WRTNODE.dts
#
# The user should never have to edit what's below this line.
# If customizations are needed, they should be done to the MEDIATEK kernel
# configuration.
#
# Start with a base configuration
include MEDIATEK_BASE
ident MT7620N
cpu CPU_MIPS24K
# Include optional configuration (to be edited by the user if needed)
include MEDIATEK

30
sys/mips/conf/MT7621_FDT Normal file
View File

@ -0,0 +1,30 @@
#
# MT7621_FDT -- Kernel configuration file for FreeBSD/MIPS MT7621 SoC
#
# This includes all the configurable parts of the kernel. Please read through
# MEDIATEK kernel config and customize the options to fit your board if needed.
#
# $FreeBSD$
#
#NO_UNIVERSE
#
# FDT_DTS_FILE should be modified to suit the target board type.
#
#makeoptions FDT_DTS_FILE=ZBT-WG2626.dts
#
# The user should never have to edit what's below this line.
# If customizations are needed, they should be done to the MEDIATEK kernel
# configuration.
#
# Start with a base configuration
include MEDIATEK_BASE
ident MT7621
cpu CPU_MIPS1004K
# Include optional configuration (to be edited by the user if needed)
include MEDIATEK

30
sys/mips/conf/MT7628_FDT Normal file
View File

@ -0,0 +1,30 @@
#
# MT7628_FDT -- Kernel configuration file for FreeBSD/MIPS MT7628/MT7688 SoCs
#
# This includes all the configurable parts of the kernel. Please read through
# MEDIATEK kernel config and customize the options to fit your board if needed.
#
# $FreeBSD$
#
#NO_UNIVERSE
#
# FDT_DTS_FILE should be modified to suit the target board type.
#
#makeoptions FDT_DTS_FILE=MT7628.dts
#
# The user should never have to edit what's below this line.
# If customizations are needed, they should be done to the MEDIATEK kernel
# configuration.
#
# Start with a base configuration
include MEDIATEK_BASE
ident MT7628
cpu CPU_MIPS24K
# Include optional configuration (to be edited by the user if needed)
include MEDIATEK

31
sys/mips/conf/RT3050_FDT Normal file
View File

@ -0,0 +1,31 @@
#
# RT3050_FDT -- Kernel configuration file for FreeBSD/MIPS RT3050/RT3052/RT3350
# SoCs
#
# This includes all the configurable parts of the kernel. Please read through
# MEDIATEK kernel config and customize the options to fit your board if needed.
#
# $FreeBSD$
#
#NO_UNIVERSE
#
# FDT_DTS_FILE should be modified to suit the target board type.
#
#makeoptions FDT_DTS_FILE=DIR-600-B1.dts
#
# The user should never have to edit what's below this line.
# If customizations are needed, they should be done to the MEDIATEK kernel
# configuration.
#
# Start with a base configuration
include MEDIATEK_BASE
ident RT3050
cpu CPU_MIPS24K
# Include optional configuration (to be edited by the user if needed)
include MEDIATEK

30
sys/mips/conf/RT3352_FDT Normal file
View File

@ -0,0 +1,30 @@
#
# RT3352_FDT -- Kernel configuration file for FreeBSD/MIPS RT3352 SoC
#
# This includes all the configurable parts of the kernel. Please read through
# MEDIATEK kernel config and customize the options to fit your board if needed.
#
# $FreeBSD$
#
#NO_UNIVERSE
#
# FDT_DTS_FILE should be modified to suit the target board type.
#
#makeoptions FDT_DTS_FILE=DIR-615-H1.dts
#
# The user should never have to edit what's below this line.
# If customizations are needed, they should be done to the MEDIATEK kernel
# configuration.
#
# Start with a base configuration
include MEDIATEK_BASE
ident RT3352
cpu CPU_MIPS24K
# Include optional configuration (to be edited by the user if needed)
include MEDIATEK

30
sys/mips/conf/RT3883_FDT Normal file
View File

@ -0,0 +1,30 @@
#
# RT3883_FDT -- Kernel configuration file for FreeBSD/MIPS RT3662/RT3883 SoCs
#
# This includes all the configurable parts of the kernel. Please read through
# MEDIATEK kernel config and customize the options to fit your board if needed.
#
# $FreeBSD$
#
#NO_UNIVERSE
#
# FDT_DTS_FILE should be modified to suit the target board type.
#
#makeoptions FDT_DTS_FILE=DIR-645.dts
#
# The user should never have to edit what's below this line.
# If customizations are needed, they should be done to the MEDIATEK kernel
# configuration.
#
# Start with a base configuration
include MEDIATEK_BASE
ident RT3883
cpu CPU_MIPS74K
# Include optional configuration (to be edited by the user if needed)
include MEDIATEK

30
sys/mips/conf/RT5350_FDT Normal file
View File

@ -0,0 +1,30 @@
#
# RT5350_FDT -- Kernel configuration file for FreeBSD/MIPS RT5350 SoC
#
# This includes all the configurable parts of the kernel. Please read through
# MEDIATEK kernel config and customize the options to fit your board if needed.
#
# $FreeBSD$
#
#NO_UNIVERSE
#
# FDT_DTS_FILE should be modified to suit the target board type.
#
#makeoptions FDT_DTS_FILE=DIR-300-B7.dts
#
# The user should never have to edit what's below this line.
# If customizations are needed, they should be done to the MEDIATEK kernel
# configuration.
#
# Start with a base configuration
include MEDIATEK_BASE
ident RT5350
cpu CPU_MIPS24K
# Include optional configuration (to be edited by the user if needed)
include MEDIATEK