mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-16 10:20:30 +00:00
Add preliminary support for Atmel SAM9260-EK evaluation kit.
Initially identical to the Ethernut5, but will diverge shortly before I refactor...
This commit is contained in:
parent
2f35297b24
commit
f5dca533c2
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=238443
149
sys/arm/at91/board_sam9260ek.c
Normal file
149
sys/arm/at91/board_sam9260ek.c
Normal file
@ -0,0 +1,149 @@
|
||||
/*-
|
||||
* Copyright (c) 2012 Marius Strobl <marius@FreeBSD.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* 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 AUTHOR 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 AUTHOR 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Ethernut 5 board support
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__FBSDID("$FreeBSD$");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
#include <machine/board.h>
|
||||
#include <arm/at91/at91_pioreg.h>
|
||||
#include <arm/at91/at91_piovar.h>
|
||||
#include <arm/at91/at91board.h>
|
||||
#include <arm/at91/at91sam9260reg.h>
|
||||
|
||||
BOARD_INIT long
|
||||
board_init(void)
|
||||
{
|
||||
|
||||
/*
|
||||
* DBGU
|
||||
*/
|
||||
/* DRXD */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOB_BASE, AT91C_PIO_PB14, 0);
|
||||
/* DTXD */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOB_BASE, AT91C_PIO_PB15, 1);
|
||||
|
||||
/*
|
||||
* EMAC
|
||||
*/
|
||||
/* ETX0 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA12, 0);
|
||||
/* ETX1 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA13, 0);
|
||||
/* ERX0 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA14, 0);
|
||||
/* ERX1 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA15, 0);
|
||||
/* ETXEN */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA16, 0);
|
||||
/* ERXDV */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA17, 0);
|
||||
/* ERXER */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA18, 0);
|
||||
/* ETXCK */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA19, 0);
|
||||
/* EMDC */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA20, 0);
|
||||
/* EMDIO */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA21, 0);
|
||||
|
||||
/*
|
||||
* MMC
|
||||
*/
|
||||
/* MCDA0 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA6, 1);
|
||||
/* MCCDA */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA7, 1);
|
||||
/* MCCK */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA8, 1);
|
||||
/* MCDA1 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA9, 1);
|
||||
/* MCDA2 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA10, 1);
|
||||
/* MCDA3 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA11, 1);
|
||||
|
||||
/*
|
||||
* SPI0
|
||||
*/
|
||||
/* MISO */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA0, 0);
|
||||
/* MOSI */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA1, 0);
|
||||
/* SPCK */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA2, 0);
|
||||
/* NPCS0 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA3, 0);
|
||||
|
||||
/*
|
||||
* TWI
|
||||
*/
|
||||
/* TWD */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA23, 1);
|
||||
/* TWCK */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA24, 1);
|
||||
|
||||
/*
|
||||
* USART0
|
||||
*/
|
||||
/* TXD0 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOB_BASE, AT91C_PIO_PB4, 1);
|
||||
/* RXD0 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOB_BASE, AT91C_PIO_PB5, 0);
|
||||
/* DSR0 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOB_BASE, AT91C_PIO_PB22, 0);
|
||||
/* DCD0 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOB_BASE, AT91C_PIO_PB23, 0);
|
||||
/* DTR0 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOB_BASE, AT91C_PIO_PB24, 1);
|
||||
/* RI0 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOB_BASE, AT91C_PIO_PB25, 0);
|
||||
/* RTS0 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOB_BASE, AT91C_PIO_PB26, 1);
|
||||
/* CTS0 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOB_BASE, AT91C_PIO_PB27, 0);
|
||||
|
||||
/*
|
||||
* USART2
|
||||
*/
|
||||
/* RTS2 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA4, 1);
|
||||
/* CTS2 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOA_BASE, AT91C_PIO_PA5, 0);
|
||||
/* TXD2 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOB_BASE, AT91C_PIO_PB8, 1);
|
||||
/* RXD2 */
|
||||
at91_pio_use_periph_a(AT91SAM9260_PIOB_BASE, AT91C_PIO_PB9, 0);
|
||||
|
||||
return (at91_ramsize());
|
||||
}
|
||||
|
||||
ARM_BOARD(AT91SAM9260EK, "Atmel SMA9260-EK")
|
@ -42,6 +42,7 @@ arm/at91/board_hl200.c optional at91_board_hl200
|
||||
arm/at91/board_hl201.c optional at91_board_hl201
|
||||
arm/at91/board_kb920x.c optional at91_board_kb920x
|
||||
arm/at91/board_qila9g20.c optional at91_board_qila9g20
|
||||
arm/at91/board_sam9260ek.c optional at91_board_sam9260ek
|
||||
arm/at91/board_sam9g20ek.c optional at91_board_sam9g20ek
|
||||
arm/at91/board_sam9x25ek.c optional at91_board_sam9x25ek
|
||||
arm/at91/board_tsc4370.c optional at91_board_tsc4370
|
||||
|
11
sys/arm/at91/std.sam9260ek
Normal file
11
sys/arm/at91/std.sam9260ek
Normal file
@ -0,0 +1,11 @@
|
||||
# $FreeBSD$
|
||||
include "../at91/std.at91sam9"
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x20800000
|
||||
makeoptions KERNPHYSADDR=0x20000000
|
||||
makeoptions KERNVIRTADDR=0xc0000000
|
||||
options KERNPHYSADDR=0x20000000
|
||||
options KERNVIRTADDR=0xc0000000
|
||||
|
||||
device at91_board_sam9260ek
|
||||
device at91sam9260
|
@ -25,6 +25,7 @@ device at91_board_hl200
|
||||
device at91_board_hl201
|
||||
device at91_board_kb920x
|
||||
device at91_board_qila9g20
|
||||
device at91_board_sam9260ek
|
||||
device at91_board_sam9g20ek
|
||||
device at91_board_sam9x25ek
|
||||
device at91_board_tsc4370
|
||||
|
158
sys/arm/conf/SAM9260EK
Normal file
158
sys/arm/conf/SAM9260EK
Normal file
@ -0,0 +1,158 @@
|
||||
# Kernel configuration for Ethernut 5 boards
|
||||
#
|
||||
# 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 ETHERNUT5
|
||||
|
||||
include "../at91/std.ethernut5"
|
||||
|
||||
# To statically compile in device wiring instead of /boot/device.hints
|
||||
hints "ETHERNUT5.hints"
|
||||
|
||||
#makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
|
||||
|
||||
options SCHED_4BSD # 4BSD scheduler
|
||||
#options PREEMPTION # Enable kernel thread preemption
|
||||
options INET # InterNETworking
|
||||
#options INET6 # IPv6 communications protocols
|
||||
#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 MD_ROOT # MD is a potential root device
|
||||
options NFSCL # New Network Filesystem Client
|
||||
#options NFSD # New Network Filesystem Server
|
||||
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 GEOM_PART_GPT # GUID Partition Tables.
|
||||
#options GEOM_LABEL # Provides labelization
|
||||
#options COMPAT_FREEBSD5 # Compatible with FreeBSD5
|
||||
#options COMPAT_FREEBSD6 # Compatible with FreeBSD6
|
||||
#options COMPAT_FREEBSD7 # Compatible with FreeBSD7
|
||||
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
|
||||
options KTRACE # ktrace(1) support
|
||||
#options STACK # stack(9) 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 HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4)
|
||||
#options AUDIT # Security event auditing
|
||||
#options CAPABILITY_MODE # Capsicum capability mode
|
||||
#options CAPABILITIES # Capsicum capabilities
|
||||
#options MAC # TrustedBSD MAC Framework
|
||||
#options INCLUDE_CONFIG_FILE # Include this file in kernel
|
||||
|
||||
# required for netbooting
|
||||
options BOOTP
|
||||
options BOOTP_COMPAT
|
||||
options BOOTP_NFSROOT
|
||||
options BOOTP_NFSV3
|
||||
options BOOTP_WIRED_TO=ate0
|
||||
|
||||
# alternatively, boot from a MMC/SD memory card
|
||||
#options ROOTDEVNAME=\"ufs:/dev/mmcsd0a\"
|
||||
|
||||
# kernel/memory size reduction
|
||||
options MUTEX_NOINLINE
|
||||
options NO_FFS_SNAPSHOT
|
||||
options NO_SWAPPING
|
||||
options NO_SYSCTL_DESCR
|
||||
options RWLOCK_NOINLINE
|
||||
|
||||
# Debugging support. Always need this:
|
||||
#options KDB # Enable kernel debugger support.
|
||||
# For minimum debugger support (stable branch) use:
|
||||
#options KDB_TRACE # Print a stack trace for a panic.
|
||||
# For full debugger support use this instead:
|
||||
#options DDB # Support DDB.
|
||||
#options GDB # Support remote GDB.
|
||||
#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
|
||||
|
||||
# The `bpf' device enables the Berkeley Packet Filter.
|
||||
# Be aware of the administrative consequences of enabling this!
|
||||
# Note that 'bpf' is required for DHCP.
|
||||
device bpf # Berkeley packet filter
|
||||
|
||||
# Ethernet
|
||||
device mii # Minimal MII support
|
||||
device ate # Atmel AT91 Ethernet friver
|
||||
|
||||
# I2C
|
||||
device at91_twi # Atmel AT91 Two-wire Interface
|
||||
device iic # I2C generic I/O device driver
|
||||
device iicbus # I2C bus system
|
||||
device pcf8563 # NXP PCF8563 clock/calendar
|
||||
|
||||
# MMC/SD
|
||||
device at91_mci # Atmel AT91 Multimedia Card Interface
|
||||
options AT91_MCI_HAS_4WIRE
|
||||
device mmc # MMC/SD bus
|
||||
device mmcsd # MMC/SD memory card
|
||||
|
||||
# DataFlash
|
||||
device at91_spi # Atmel AT91 Serial Peripheral Interface
|
||||
device spibus # SPI bus
|
||||
device at45d # Atmel AT45D
|
||||
device geom_map # GEOM partition mapping
|
||||
|
||||
# Pseudo devices.
|
||||
device loop # Network loopback
|
||||
device random # Entropy device
|
||||
device ether # Ethernet support
|
||||
#device vlan # 802.1Q VLAN support
|
||||
#device tun # Packet tunnel.
|
||||
#device md # Memory "disks"
|
||||
#device gif # IPv6 and IPv4 tunneling
|
||||
#device faith # IPv6-to-IPv4 relaying (translation)
|
||||
#device firmware # firmware assist module
|
||||
|
||||
# SCSI peripherals
|
||||
#device scbus # SCSI bus (required for ATA/SCSI)
|
||||
#device ch # SCSI media changers
|
||||
#device da # Direct Access (disks)
|
||||
#device sa # Sequential Access (tape etc)
|
||||
#device cd # CD
|
||||
#device pass # Passthrough device (direct ATA/SCSI access)
|
||||
#device ses # Enclosure Services (SES and SAF-TE)
|
||||
#device ctl # CAM Target Layer
|
||||
|
||||
# Serial (COM) ports
|
||||
device uart # Multi-uart driver
|
||||
options ALT_BREAK_TO_DEBUGGER
|
||||
|
||||
# USB support
|
||||
#options USB_DEBUG # enable debug msgs
|
||||
device ohci # OHCI PCI->USB interface
|
||||
device usb # USB Bus (required)
|
||||
#device umass # Disks/Mass storage - Requires scbus and da
|
||||
|
||||
# watchdog
|
||||
device at91_wdt # Atmel AT91 Watchdog Timer
|
51
sys/arm/conf/SAM9260EK.hints
Normal file
51
sys/arm/conf/SAM9260EK.hints
Normal file
@ -0,0 +1,51 @@
|
||||
# $FreeBSD$
|
||||
|
||||
# Atmel AT45DB21D
|
||||
hint.at45d.0.at="spibus0"
|
||||
hint.at45d.0.addr=0x00
|
||||
# user 132 kbytes
|
||||
hint.map.0.at="flash/spi0"
|
||||
hint.map.0.start=0x00000000
|
||||
hint.map.0.end=0x00020fff
|
||||
hint.map.0.name="user"
|
||||
hint.map.0.readonly=1
|
||||
# setup 132 kbytes
|
||||
hint.map.1.at="flash/spi0"
|
||||
hint.map.1.start=0x00021000
|
||||
hint.map.1.end=0x00041fff
|
||||
hint.map.1.name="setup"
|
||||
hint.map.1.readonly=1
|
||||
# uboot 528 kbytes
|
||||
hint.map.2.at="flash/spi0"
|
||||
hint.map.2.start=0x00042000
|
||||
hint.map.2.end=0x000c5fff
|
||||
hint.map.2.name="uboot"
|
||||
hint.map.2.readonly=1
|
||||
# kernel 2640 kbytes
|
||||
hint.map.3.at="flash/spi0"
|
||||
hint.map.3.start=0x000c6000
|
||||
hint.map.3.end=0x00359fff
|
||||
hint.map.3.name="kernel"
|
||||
#hint.map.3.readonly=1
|
||||
# nutos 528 kbytes
|
||||
hint.map.4.at="flash/spi0"
|
||||
hint.map.4.start=0x0035a000
|
||||
hint.map.4.end=0x003ddfff
|
||||
hint.map.4.name="nutos"
|
||||
hint.map.4.readonly=1
|
||||
# env 132 kbytes
|
||||
hint.map.5.at="flash/spi0"
|
||||
hint.map.5.start=0x003de000
|
||||
hint.map.5.end=0x003fefff
|
||||
hint.map.5.name="env"
|
||||
hint.map.5.readonly=1
|
||||
# env 132 kbytes
|
||||
hint.map.6.at="flash/spi0"
|
||||
hint.map.6.start=0x003ff000
|
||||
hint.map.6.end=0x0041ffff
|
||||
hint.map.6.name="nutoscfg"
|
||||
hint.map.6.readonly=1
|
||||
|
||||
# NXP PCF8563 clock/calendar
|
||||
hint.pcf8563_rtc.0.at="iicbus0"
|
||||
hint.pcf8563_rtc.0.addr=0xa2
|
Loading…
Reference in New Issue
Block a user