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: elansc.4,v 1.15 2017/02/18 22:39:01 wiz Exp $
.\"
.\" Copyright (c) 2002 The NetBSD Foundation, Inc.
.\" All rights reserved.
.\"
.\" This code is derived from software contributed to The NetBSD Foundation
.\" by Jason R. Thorpe.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd February 17, 2017
.Dt ELANSC 4 i386
.Os
.Sh NAME
.Nm elansc
.Nd AMD Elan SC520 System Controller driver
.Sh SYNOPSIS
.Cd "elansc* at mainbus? bus ?"
.Cd "gpio* at elansc?"
.Cd "pci* at elansc?"
.Cd "elanpar* at elansc?"
.Cd "elanpex* at elansc?"
.Sh DESCRIPTION
The
.Nm
driver supports the system controller of the AMD Elan SC520 microcontroller.
The SC520 consists of an AMD Am5x86 processor core, integrated PCI host
controller, and several standard on-chip devices, such as NS16550-compatible
UARTs, real-time clock, and timers.
.Pp
The Elan SC520 also provides several special on-chip devices.
The following are supported by the
.Nm
driver:
.Bl -bullet
.It
Watchdog timer.
The watchdog timer may be configured for a 1
second, 2 second, 4 second, 8 second, 16 second, or 32 second
expiration period.
.It
PCI exceptions reporting.
The SC520 microcontroller can report exceptions that occur as it
acts as both a PCI bus master and a bus target.
See
.Xr i386/elanpex 4 .
.It
RAM write-protection.
The SC520 microcontroller can designate write-protected regions of RAM using
the Programmable Address Regions registers.
See
.Xr i386/elanpar 4 .
.It
Programmable Input/Output.
The SC520 microcontroller supports 32 programmable I/O signals (PIOs)
that can be used on the system board to monitor signals or control devices
that are not handled by the other functions in the SC520 microcontroller.
These signals can be programmed to be inputs or to be driven
.Dq high
or
.Dq low
as outputs.
Pins can be accessed through the
.Xr gpio 4
framework.
The
.Xr gpioctl 8
program allows easy manipulation of pins from userland.
.It
PCI host-bridge optimization.
.Nm
takes advantage of a suspend/resume cycle to tune the PCI host-bridge
for higher performance.
.El
.Sh SEE ALSO
.Xr gpio 4 ,
.Xr i386/elanpar 4 ,
.Xr i386/elanpex 4 ,
.Xr gpioctl 8 ,
.Xr wdogctl 8
.Sh HISTORY
The
.Nm
device first appeared in
.Nx 2.0 .
PIO function support was added in
.Ox 3.6 ,
and subsequently ported to
.Nx 4.0 .
Support for PCI exceptions reporting and for RAM write-protection
first appeared in
.Nx 5.0 .
.Sh AUTHORS
The
.Nm
driver was written by
.An Jason R. Thorpe Aq Mt thorpej@NetBSD.org .
.An Jasper Wallace
provided the work-around for a hardware bug related to the watchdog timer
in some steppings of the SC520 CPU.
Support for the PIO function was added to
.Ox 3.6
by
.An Alexander Yurchenko Aq Mt grange@openbsd.org
and was ported to
.Nx
by
.An Jeff Rizzo Aq Mt riz@NetBSD.org .
.An David Young Aq Mt dyoung@NetBSD.org
added support for PCI exceptions reporting and for RAM write-protection
using the Programmable Address Regions.