Horstbox DVA-G3342SB with FreeBSD

Sam Leffler sam at freebsd.org
Sat May 17 14:14:37 UTC 2008


Michael Fuckner wrote:
> Sam Leffler wrote:
> 
> Hi!
> 
>>> - where do I get information about the memory regions used in kernel 
>>> configuration
>>>
>>> options         PHYSADDR=0x10000000
>>> options         KERNPHYSADDR=0x10200000
>>> options         KERNVIRTADDR=0xc0200000         # Used in ldscript.arm
>>> options         FLASHADDR=0x50000000
>>> options         LOADERRAMADDR=0x00000000
>>
>> Not sure what you asking.  The memory layout for the board should be 
>> documented by the vendor.  Much is standardized by the IXP42xx but 
>> others are board-specific.  Many memory locations are defined relative 
>> to the base address of IXP memory boundaries in arm/xscale/ixp*/*.h. 
>> Some bits that have been found to vary between boards are already 
>> settable as hints (e.g. look in AVILA.hints).
> 
> They sell it as a VoIP-Appliance, designed by Maxina, sold by D-link, so 
> I'm not sure if they are willing to help me. The maxina.de-website seems 
> to be dead. No reply until now.
> 
> 
> 
>>> pcib0: <IXP425 PCI Bus> on ixp0
>>> pci0: <PCI bus> on pcib0
>>> ixppcib: no mapping for 0/12/0
>>> ixppcib: no mapping for 0/13/0
>>> ixppcib: no mapping for 0/14/0
>>> ixppcib: no mapping for 0/14/1
>>> ixppcib: no mapping for 0/14/2
>>
>> This indicates the mapping isn't recognized/handled.  Not sure if this 
>> is because your hardware is different or the system is reading 
>> information from the wrong memory locations.
> 
> RedBoot> lspci
> 0:0:0   Vendor[8086] Device[8500] Type[00] Class[0b4000]
>         BAR0: 00000008
>         BAR1: 01000008
>         BAR2: 02000008
>         BAR3: 03000008
>         BAR4: 80000008
>         BAR5: 90000001
> 0:8:0   Vendor[1033] Device[0035] Type[80] Class[0c0310]
> 0:8:1   Vendor[1033] Device[0035] Type[00] Class[0c0310]
> 0:8:2   Vendor[1033] Device[00e0] Type[00] Class[0c0320]
> 0:9:0   Vendor[1397] Device[2bd0] Type[00] Class[028000]
> 0:10:0   Vendor[1397] Device[2bd0] Type[00] Class[028000]
> 
> Does this help? Do I have to put these settings into the hints-file?

If you look in sys/arm/xscale/ixp425/ixp425_pci.c for the error message 
you'll find a fixed mapping table for routing interrupts.  Your board 
appears to use irq's that are not in the table.  If we assume you've 
located the PCI bus properly then you might try adding entries for your 
devices and see if they are probed correctly.

This table may need to be broken out into hints or, more likely, setup 
based on the board type to handle the required irq routing (you'll note 
there's already a bit of hack in the table for the optional USB 
controller on a Gateworks board I have).


> 
> 
> Right now, booting looks like this:
> 
> RedBoot> load -b 0x200000 kernel-horst.nfs
> Using default protocol (TFTP)
> Address offset = 0x40000000
> Entry point: 0x00200100, address range: 0x00200000-0x0054fb28
> RedBoot> go
> KDB: debugger backends: ddb
> KDB: current backend: ddb
> Copyright (c) 1992-2008 The FreeBSD Project.
> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
>         The Regents of the University of California. All rights reserved.
> FreeBSD is a registered trademark of The FreeBSD Foundation.
> FreeBSD 7.0-STABLE #8: Thu May 15 18:52:49 CEST 2008
>     root at g33.rebootking.de:/usr/obj/arm/samba/freebsd7-arm/src/sys/HORST
> CPU: IXP425 533MHz rev 1 (ARMv5TE) (XScale core)
>   DC enabled IC enabled WB enabled LABT branch prediction enabled
>   32KB/32B 32-way Instruction cache
>   32KB/32B 32-way write-back-locking Data cache
> real memory  = 67108864 (64 MB)
> avail memory = 58355712 (55 MB)
> ixp0: <Intel IXP425> on motherboard
> pcib0: <IXP425 PCI Bus> on ixp0
> pci0: <PCI bus> on pcib0
> ixpclk0: <IXP425 Timer> on ixp0
> ixpiic0: <IXP425 GPIO-Based I2C Interface> on ixp0
> iicbb0: <I2C bit-banging driver> on ixpiic0
> iicbus0: <Philips I2C bus> on iicbb0 master-only
> iicbus0: <unknown card> at addr 0
> iic0: <I2C generic I/O> on iicbus0
> ad74180: <Analog Devices AD7418 ADC> at addr 0x50 on iicbus0
> ds16720: <Dallas Semiconductor DS1672 RTC> at addr 0xd0 on iicbus0
> ixpwdog0: <IXP425 Watchdog Timer> on ixp0
> uart0: <Non-standard ns8250 class UART with FIFOs> on ixp0
> uart0: [FILTER]
> uart0: console (115200,n,8,1)
> ixpqmgr0: <IXP425 Q-Manager> on ixp0
> ixpqmgr0: [ITHREAD]
> npe0: <IXP NPE-B> on ixp0
> npe0: [ITHREAD]
> npe0: remember to fix rx q setup
> npe0: Cannot find my PHY.
> device_attach: npe0 attach returned 6
> npe1: <IXP NPE-C> on ixp0
> npe1: [ITHREAD]
> npe1: remember to fix rx q setup
> miibus0: <MII bus> on npe1
> rlphy0: <RTL8201L 10/100 media interface> PHY 1 on miibus0
> rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
> npe1: Ethernet address: 00:03:47:df:32:aa
> led_avila0: <Gateworks Avila GPIO connected LED> on ixp0
> ixpclk0: [FILTER]
> Timecounter "IXP425 Timer" frequency 66666600 Hz quality 1000
> Timecounters tick every 10.000 msec
> bootpc_init: wired to interface 'npe1'
> Sending DHCP Discover packet from interface npe1 (00:03:47:df:32:aa)
> npe1: link state changed to UP
> DHCP/BOOTP timeout for server 255.255.255.255
> DHCP/BOOTP timeout for server 255.255.255.255
> DHCP/BOOTP timeout for server 255.255.255.255
> DHCP/BOOTP timeout for server 255.255.255.255
> DHCP/BOOTP timeout for server 255.255.255.255
> DHCP/BOOTP timeout for server 255.255.255.255
> 
> 
> Now it looks better, it recognizes the NPE-C-network-card, but it 
> doesn't seem to be usable. And I lost my USB-Chip on the way. SO no 
> ethernet via npe nor my axe-based USB-Stick :(

Have you sniffed to see if the BOOTP packets are being sent out properly 
on npe1?

> 
> In RedBoot it shows something different:
> 
> +
> Trying NPE-B...success. Using NPE-B with PHY 1.
> Ethernet eth0: MAC address 00:03:47:df:32:a8
> IP: 192.168.2.45/255.255.255.0, Gateway: 0.0.0.0
> Default server: 192.168.2.64
> 
> I think the hints should look like this:
> hint.npe.0.at="ixp0"
> hint.npe.0.mac="A"
> hint.npe.0.mii="A"
> hint.npe.0.phy=1
> 
> 
> I only have a single Ethernet-Interface NPE-B, connected to PHY1, MAC 
> should be ...32:a8 and not ...32:aa. Do I have to generate my own 
> IxNpeMicrocode.dat?

No, the microcode is not affected.  Try altering the hints to bind only 
npe0 to the MAC+PHY (as you've done above).

When you're all done you should have a config file + hints that gives 
you a working board.  If you send it we can add it to the tree.

	Sam


More information about the freebsd-arm mailing list