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