Freecom FSG-3 Storage Gateway
Bruce M Simpson
bms at incunabulum.net
Tue May 27 01:46:35 UTC 2008
Hi,
It looks as though most, but not all, of the low level board support
needed for this device was done for AVILA (thanks guys!).
Here I attach configs for those who wish to try. I haven't tried booting
this yet, a kernel builds OK using KERNCONF=FSG3 and 7.0-RELEASE sources.
The main issue is going to be the IXP's NPE queues. The PHY indexes used
are different on the FSG3 and it's not immediately obvious to me how to
reprogram those PHY indexes in the IXP.
There are a couple of devices such as the real-time clock which live on
the I2C bus which would need small drivers written. There is an Ethernet
switch ASIC which probably hangs off the GPIO pins.
A pending Linux git import with the FSG stuff is here:
http://www.linux.org.uk/pub/armlinux/source/kernel-patches/git-cur/arm:devel.diff
cheers
BMS
-------------- next part --------------
# FSG3 -- Freecom FSG-3 Storage Gateway
# kernel configuration file for FreeBSD/arm
#
# For more information on this file, please read 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$
# TODO: NPE PHY remapping.
# TODO: RedBoot support.
# TODO: Gettign the ethernet addresses out of the RedBoot config area.
# TODO: Missing a driver for the RTL8305SB switch ASIC onboard.
# TODO: Intel NOR flash (probably already hadnled by IXP BSP)
# TODO: GPIO LEDs (could be same as AVILA; check Linux BSP.)
# TODO: Winbond W83782G hardware monitoring chip at iic0.
# TODO: Intersil ISL1208 RTC+SRAM chip at iic0. Not a drop-in for ds1672.
machine arm
ident FSG3
options PHYSADDR=0x10000000
options KERNPHYSADDR=0x10200000
options KERNVIRTADDR=0xc0200000 # Used in ldscript.arm
options FLASHADDR=0x50000000
options LOADERRAMADDR=0x00000000
options STARTUP_PAGETABLE_ADDR=0x10000000
# XXX Currently this file depends on the IXP425 specific
# BSP stuff in the avila_machdep.c file.
# That will have to change however...
include "../xscale/ixp425/std.avila"
#To statically compile in device wiring instead of /boot/device.hints
hints "FSG3.hints"
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
makeoptions CONF_CFLAGS=-mcpu=xscale
options HZ=100
options DEVICE_POLLING
options KDB
options DDB #Enable the kernel debugger
#options GDB
#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 DIAGNOSTIC
options SCHED_4BSD #4BSD scheduler
options KSE
options INET #InterNETworking
options INET6 #IPv6 communications protocols
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 NFSCLIENT #Network Filesystem Client
options NFSSERVER #Network Filesystem Server
options NFS_ROOT #NFS usable as /, requires NFSCLIENT
options CD9660 #ISO 9660 Filesystem
options PSEUDOFS #Pseudo-filesystem framework
options SCSI_DELAY=5000 #Delay (in ms) before probing SCSI
options KTRACE #ktrace(1) 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 KBD_INSTALL_CDEV # install a CDEV entry in /dev
# XXX notyet, we need a working NPE mapping first.
#options BOOTP
#options BOOTP_NFSROOT
#options BOOTP_NFSV3
#options BOOTP_WIRED_TO=npe0
#options BOOTP_COMPAT
options VERBOSE_SYSINIT
device genclock
device nexus
device mem # Memory and kernel memory devices
device md
device random
device pci
device uart
# I2C Bus
device iicbus
device iicbb
device iic
device ixpiic
device ixpwdog # watchdog timer
device ata
device atadisk # ATA disk drives
device npe # Network Processing Engine
device npe_fw
device firmware
device qmgr # Q Manager (required by npe)
device miibus # NB: required by npe
device ether
device bpf
device pty
device loop
options XSCALE_CACHE_READ_WRITE_ALLOCATE
#options ARM_USE_SMALL_ALLOC
device usb
options USB_DEBUG
device uhci
device ohci
device ehci
-------------- next part --------------
# $FreeBSD$
#
# Device wiring for the Freecom FSG-3 Storage Gateway.
#
# 64MB SDRAM onboard.
#
# DBGU is unit 0
# XXX This looks correct (against uncommitted Linux changes).
hint.uart.0.at="ixp0"
hint.uart.0.addr=0xc8000000
hint.uart.0.irq=15
hint.uart.0.flags=0x10
# USART0 is unit 1
hint.uart.1.at="ixp0"
hint.uart.1.addr=0xc8001000
hint.uart.1.irq=13
# NPE Hardware Queue Manager
hint.ixpqmgr.0.at="ixp0"
# XXX Do NOT attach these yet. The FSG3 has a totally
# different NPE port mapping from the IXDP425 or Coyote.
# See Linux 2.6 fsg-setup.c for more info (still pending in git).
# ... on further reading, we just need to be able to tie
# down the PHY numbers for each port.
# Port 0 is PHY 5; Port 1 is on PHY 4.
# Also, we need to dike out the Ethernet addresses from
# the Redboot config area in flash.
#
#hint.npe.0.at="ixp0"
#hint.npe.1.at="ixp0"
More information about the freebsd-embedded
mailing list