Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

#	$NetBSD: files.bcm2835,v 1.43 2022/04/22 12:41:06 skrll Exp $
#
# Configuration info for Broadcom BCM2835 ARM Peripherals
#

file	arch/arm/broadcom/bcm2835_dma.c
file	arch/arm/broadcom/bcm2835_mbox_subr.c
file	arch/arm/broadcom/bcm283x_platform.c

define bcmmboxbus { }

# Interrupt Controller (BCM2835_ARMICU_BASE)
device	bcmicu: pic, pic_splfuncs
attach	bcmicu at fdt with bcmicu
file	arch/arm/broadcom/bcm2835_intr.c	bcmicu

# VC Mailbox (BCM2835_ARMMBOX_BASE)
device	bcmmbox: bcmmboxbus
file	arch/arm/broadcom/bcm2835_mbox.c	bcmmbox
attach	bcmmbox at fdt with bcmmbox_fdt
file    arch/arm/broadcom/bcm2835_mbox_fdt.c	bcmmbox_fdt

ifdef acpinodebus
attach  bcmmbox at acpinodebus with bcmmbox_acpi
file	arch/arm/broadcom/bcm2835_mbox_acpi.c	bcmmbox_acpi
endif

# System Timer (BCM2835_TIMER_BASE)
device	bcmtmr
attach	bcmtmr at fdt with bcmtmr_fdt
file	arch/arm/broadcom/bcm2835_tmr.c		bcmtmr & !soc_bcm2836

# Power Management, Reset Controller, and Watchdog (BCM2835_PM_BASE)
device	bcmpmwdog: sysmon_wdog
attach	bcmpmwdog at fdt with bcmpmwdog_fdt
file	arch/arm/broadcom/bcm2835_pmwdog.c	bcmpmwdog_fdt

# Random number generator (BCM2835_RNG_BASE)
device	bcmrng
attach bcmrng at fdt with bcmrng_fdt
file	arch/arm/broadcom/bcm2835_rng.c		bcmrng

# Random number generator (BCM2835_RNG_BASE (!))
device	bcm2838rng
attach bcm2838rng at fdt with bcm2838rng_fdt
file	arch/arm/broadcom/bcm2838_rng.c		bcm2838rng
file	dev/ic/rng200.c				bcm2838rng

# Broadcom STB PCIE host
device	bcm2838pcie: pcibus
attach bcm2838pcie at fdt with bcm2838pcie_fdt
file	arch/arm/broadcom/bcm2838_pcie.c	bcm2838pcie

# AUX
device	bcmaux
attach	bcmaux at fdt with bcmaux_fdt
file	arch/arm/broadcom/bcm2835_aux.c		bcmaux

# AUX UART (BCM2835_AUX_UART_BASE)
attach	com at fdt with bcmcom
file	arch/arm/broadcom/bcm2835_com.c		bcmcom

ifdef acpinodebus
attach	com at acpinodebus with bcmcom_acpi
file	arch/arm/broadcom/bcm2835_com_acpi.c	bcmcom_acpi
endif

# External Mass Media Controller (BCM2835_EMMC_BASE)
attach	sdhc at fdt with bcmemmc
file	arch/arm/broadcom/bcm2835_emmc.c	bcmemmc

ifdef acpinodebus
attach	sdhc at acpinodebus with bcmemmc_acpi
file	arch/arm/broadcom/bcm2835_emmc_acpi.c	bcmemmc_acpi
attach	sdhc at acpinodebus with bcmemmc2_acpi
file	arch/arm/broadcom/bcm2838_emmc2_acpi.c	bcmemmc2_acpi
endif

# SD Host Controller (BCM2835_SDHOST_BASE)
device	bcmsdhost: sdmmcbus
attach	bcmsdhost at fdt with bcmsdhost
file	arch/arm/broadcom/bcm2835_sdhost.c	bcmsdhost	needs-flag

# DMA Controller (BCM2835_DMA0_BASE)
device	bcmdmac
attach	bcmdmac at fdt with bcmdmac_fdt
file	arch/arm/broadcom/bcm2835_dmac.c	bcmdmac		needs-flag

# USB (BCM2835_USB_BASE)
attach dwctwo at fdt with bcmdwctwo
file	arch/arm/broadcom/bcm2835_dwctwo.c	bcmdwctwo	needs-flag

# SPI controller (BCM2835_SPI0_BASE)
device	bcmspi: spibus, bcm2835_gpio_subr
attach	bcmspi at fdt
file	arch/arm/broadcom/bcm2835_spi.c		bcmspi	needs-flag

# BSC (I2C) controller (BCM2835_BSC[01]_BASE)
device	bsciic: i2cbus, bcm2835_gpio_subr
file	arch/arm/broadcom/bcm2835_bsc.c		bsciic	needs-flag
attach	bsciic at fdt with bsciic_fdt
file	arch/arm/broadcom/bcm2835_bsc_fdt.c	bsciic_fdt
ifdef acpinodebus
attach	bsciic at acpinodebus with bsciic_acpi
file	arch/arm/broadcom/bcm2835_bsc_acpi.c	bsciic_acpi
endif

# Generic framebuffer console driver
attach genfb at fdt with bcmgenfb: edid
file	arch/arm/broadcom/bcm2835_genfb.c	bcmgenfb	needs-flag

# VCHIQ
include "external/bsd/vchiq/conf/files.vchiq"

# VC audio
device	vcaudio: audiobus
attach	vcaudio at vchiqbus
file	arch/arm/broadcom/bcm2835_vcaudio.c	vcaudio

# GPIO
device	bcmgpio: gpiobus
attach	bcmgpio at fdt
file	arch/arm/broadcom/bcm2835_gpio.c

# Clock Manager (BCM2835_CM_BASE)
device	bcmcprman
attach	bcmcprman at fdt with bcmcprman_fdt
file	arch/arm/broadcom/bcm2835_cprman.c	bcmcprman	needs-flag

# PWM Controller (BCM2835_PWM_BASE)
device	bcmpwm
attach	bcmpwm at fdt with bcmpwm
file	arch/arm/broadcom/bcm2835_pwm.c		bcmpwm		needs-flag

# VideoCore IV property interface
file    arch/evbarm/rpi/vcprop_subr.c		bcmmbox
makeoptions     "COPTS.vcprop_subr.c"+="-fno-stack-protector"

# Raspberry Pi Mailbox interface
device  vcmbox: sysmon_envsys
attach  vcmbox at bcmmboxbus
file    arch/evbarm/rpi/rpi_vcmbox.c            vcmbox

# Maximum command-line length
defparam opt_vcprop.h                           VCPROP_MAXCMDLINE
defflag opt_rpi.h                               RPI_HWCURSOR

# SOC parameters
defflag	opt_bcm283x.h			SOC_BCM2835
defflag	opt_bcm283x.h			SOC_BCM2836
defflag opt_bcm283x.h			SOC_BCM2837: SOC_BCM2836