e15461c7e9
This adds support for EARLY_PRINTF via the CFE console; the aim is to provide a fix for the otherwise cyclic dependency between PMU discovery and console printf/DELAY: - We need to parse the bhnd(4) core table to determine the address (and type) of the PMU/PLL registers and calculate the CPU clock frequency. - The core table parsing code will emit a printf() if a parse error is hit. - Safely calling printf() without EARLY_PRINTF requires a working DELAY+cninit, which means we need the PMU. Errors in core table parsing shouldn't happen, but lack of EARLY_PRINTF makes debugging more difficult. Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D7498
90 lines
2.4 KiB
Plaintext
90 lines
2.4 KiB
Plaintext
#
|
|
# $FreeBSD$
|
|
#
|
|
# The Broadcom Sentry5 series of processors and boards is very commonly
|
|
# used in COTS hardware including the Netgear WGT634U.
|
|
#
|
|
# Some tweaks are needed for use with this platform:
|
|
#
|
|
# * CFE firmware's ELF loader expects an ELF kernel which is linked so as
|
|
# not to contain offsets in PT_LOAD which point behind the actual offset
|
|
# of that PT header. FreeBSD normally links the first PT_LOAD header to
|
|
# begin at offset 0.
|
|
#
|
|
# * Broadcom's support package for the internal bus, the Sonics
|
|
# SiliconBackplane, needs to be integrated to detect and probe hardware
|
|
# correctly.
|
|
#
|
|
# * The clock needs to be calibrated correctly, so that DELAY() may work.
|
|
# One problem with this is that the low-level printf() routine calls DELAY(),
|
|
# which currently causes divide-by-zero trap
|
|
#
|
|
# * The Broadcom CPUs have no FPU. Attempting to detect one by reading CP1's
|
|
# status register causes an unhandled boot-time exception. An FPU emulator
|
|
# will be necessary to support multi-user boot.
|
|
#
|
|
|
|
ident SENTRY5
|
|
cpu CPU_MIPS4KC
|
|
makeoptions TRAMPLOADADDR=0x807963c0
|
|
|
|
hints "SENTRY5.hints"
|
|
include "../broadcom/std.broadcom"
|
|
|
|
# sentry5 normally ships with cfe firmware
|
|
options CFE
|
|
options ALT_BREAK_TO_DEBUGGER
|
|
device cfe
|
|
|
|
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
|
|
makeoptions MODULES_OVERRIDE=""
|
|
|
|
options DDB
|
|
options KDB
|
|
|
|
options SCHED_4BSD #4BSD scheduler
|
|
options INET #InterNETworking
|
|
options NFSCL #Network Filesystem Client
|
|
options NFS_ROOT #NFS usable as /, requires NFSCL
|
|
options PSEUDOFS #Pseudo-filesystem framework
|
|
options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
|
|
|
|
# Debugging for use in -current
|
|
#options DEADLKRES
|
|
options INVARIANTS
|
|
options INVARIANT_SUPPORT
|
|
|
|
#options BUS_DEBUG
|
|
#makeoptions BUS_DEBUG
|
|
options EARLY_PRINTF
|
|
|
|
device bhnd
|
|
device siba
|
|
device siba_nexus
|
|
device bhnd_pcib
|
|
device pci # bhnd_pcib
|
|
|
|
# device bfe # XXX will build both pci and siba
|
|
# device miibus # attachments
|
|
|
|
# pci devices
|
|
# notyet:
|
|
#device ath # in pci slot
|
|
#device ath_pci # Atheros pci/cardbus glue
|
|
#device ath_hal # pci chip support
|
|
#options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors
|
|
|
|
options USB_DEBUG # enable debug msgs
|
|
device usb # USB Bus (required)
|
|
device uhci # UHCI PCI->USB interface
|
|
device ehci # EHCI PCI->USB interface (USB 2.0)
|
|
|
|
device cfi # parallel flash
|
|
device cfid
|
|
|
|
device uart
|
|
|
|
device loop
|
|
device ether
|
|
device md
|