Author: ian
Date: Sun Jan 27 01:17:37 2013
New Revision: 245955
URL: http://svnweb.freebsd.org/changeset/base/245955

Log:
  Add support for the GlobalScale Technologies DreamPlug computer.
  
  This adds support for version 10, revision 01, but it should also work
  without changes for the 0901 model, at least until we get drivers for the
  two different wifi chips involved.
  
  Many users contributed to and tested the various patchsets floating around
  for the past year that have eventually evolved into this checkin, most notably
  Richard Neese who provided the bulk of the kernel config file.
  
  Approved by:  cognet (mentor)

Added:
  head/sys/arm/conf/DREAMPLUG-1001   (contents, props changed)
  head/sys/boot/fdt/dts/dreamplug-1001.dts   (contents, props changed)
  head/sys/boot/fdt/dts/dreamplug-1001N.dts   (contents, props changed)

Added: head/sys/arm/conf/DREAMPLUG-1001
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/arm/conf/DREAMPLUG-1001    Sun Jan 27 01:17:37 2013        
(r245955)
@@ -0,0 +1,183 @@
+# Kernel config for GlobalScale Technologies DreamPlug version 1001.
+#
+# This is for units that are version 10, revision 01, with NOR SPI flash.
+# These units are identified with the number "1001" on the S/N label.
+#
+# 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$
+#
+
+ident          DREAMPLUG-1001
+
+include                "../mv/kirkwood/std.db88f6xxx"
+
+makeoptions    FDT_DTS_FILE=dreamplug-1001.dts
+
+makeoptions    MODULES_OVERRIDE=""
+
+options        SOC_MV_KIRKWOOD
+
+options        SCHED_4BSD              #4BSD scheduler
+options        INET                    #InterNETworking
+options        INET6                   #IPv6 communications protocols
+options        SOFTUPDATES
+options        CD9660                  #ISO 9660 filesystem
+options        FFS                     #Berkeley Fast Filesystem
+options        MSDOSFS                 #MS DOS File System (FAT, FAT32)
+options        NULLFS                  #NULL filesystem
+options        TMPFS                   #Efficient memory filesystem
+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        GEOM_ELI                # Disk encryption.
+options        GEOM_LABEL              # Providers labelization.
+options        GEOM_PART_GPT           # GPT partitioning
+
+# Flattened Device Tree
+device         fdt
+options        FDT
+options        FDT_DTB_STATIC
+
+# Misc pseudo devices
+device         bpf                     #Required for DHCP
+device         faith                   #IPv6-to-IPv4 relaying (translation)
+device         firmware                #firmware(9) required for USB wlan
+device         gif                     #IPv6 and IPv4 tunneling
+device         loop                    #Network loopback
+device         md                      #Memory/malloc disk
+device         pty                     #BSD-style compatibility pseudo ttys
+device         random                  #Entropy device
+device         tun                     #Packet tunnel.
+device         ether                   #Required for all ethernet devices
+device         vlan                    #802.1Q VLAN support
+device         wlan                    #802.11 WLAN support
+
+# cam support for umass and ahci
+device         scbus
+device         pass
+device         da
+device                 cd
+
+# Serial ports
+device         uart
+
+# Networking
+device         mge                     # Marvell Gigabit Ethernet controller
+device         mii
+device         e1000phy
+
+# USB
+options        USB_HOST_ALIGN=32       # Align DMA to cacheline
+#options       USB_DEBUG               # Compile in USB debug support
+device         usb                     # Basic usb support                     
+device         ehci                    # USB host controller
+device         umass                   # Mass storage
+device         uhid                    # Human-interface devices
+device         rum                     # Ralink Technology RT2501USB wireless 
NICs
+device         uath                    # Atheros AR5523 wireless NICs
+device         ural                    # Ralink Technology RT2500USB wireless 
NICs
+device         zyd                     # ZyDAS zb1211/zb1211b wireless NICs
+device         urtw                    # Realtek RTL8187B/L USB
+device         upgt                    # Conexant/Intersil PrismGT SoftMAC USB
+device         u3g                     # USB-based 3G modems (Option, Huawei, 
Sierra)
+
+# I2C (TWSI)
+device         iic
+device         iicbus
+
+# SATA
+device         mvs
+device         ahci
+
+# Sound
+device                 sound
+device                 snd_uaudio
+
+#crypto
+device         cesa                    # Marvell security engine
+device         crypto
+device         cryptodev
+
+# IPSec
+device         enc
+options        IPSEC
+options        IPSEC_NAT_T
+options        TCP_SIGNATURE           #include support for RFC 2385
+
+# IPFW
+options        IPFIREWALL
+options        IPFIREWALL_DEFAULT_TO_ACCEPT
+options        IPFIREWALL_VERBOSE
+options        IPFIREWALL_VERBOSE_LIMIT=100
+options        IPFIREWALL_NAT
+options        LIBALIAS
+options        DUMMYNET
+options        IPDIVERT
+
+#PF 
+device         pf
+device         pflog
+device         pfsync
+
+# ALTQ, required for PF
+options        ALTQ                  # Basic ALTQ support
+options        ALTQ_CBQ              # Class Based Queueing
+options        ALTQ_RED              # Random Early Detection
+options        ALTQ_RIO              # RED In/Out
+options        ALTQ_HFSC             # Hierarchical Packet Scheduler
+options        ALTQ_CDNR             # Traffic conditioner
+options        ALTQ_PRIQ             # Priority Queueing
+options        ALTQ_NOPCC            # Required if the TSC is unusable
+#options       ALTQ_DEBUG
+
+# Debugging
+makeoptions    DEBUG=-g                #Build kernel with gdb(1) debug symbols
+options        BREAK_TO_DEBUGGER
+options        ALT_BREAK_TO_DEBUGGER
+options        DDB
+options        KDB
+options        DIAGNOSTIC
+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       WITNESS_KDB
+
+# Enable these options for nfs root configured via BOOTP.
+options        NFSCL                   #Network Filesystem Client
+options        NFSLOCKD                #Network Lock Manager
+#options       NFS_ROOT                #NFS usable as /, requires NFSCLIENT
+#options       BOOTP
+#options       BOOTP_NFSROOT
+#options       BOOTP_NFSV3
+#options       BOOTP_WIRED_TO=mge0
+
+# If not using BOOTP, use something like one of these...
+#options       ROOTDEVNAME=\"ufs:/dev/da1a\"
+options        ROOTDEVNAME=\"ufs:/dev/da1s1a\"
+#options       ROOTDEVNAME=\"ufs:/dev/da1p10\"
+#options       ROOTDEVNAME=\"nfs:192.168.0.254/dreamplug\"
+
+# To use this configuration with the (rare) model 1001N (nand flash),
+# create a kernel config file that looks like this:
+#
+# include DREAMPLUG-1001
+# nomakeoptions FDT_DTS_FILE
+# makeoptions  FDT_DTS_FILE=dreamplug-1001N.dts
+# device       nand
+

Added: head/sys/boot/fdt/dts/dreamplug-1001.dts
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/boot/fdt/dts/dreamplug-1001.dts    Sun Jan 27 01:17:37 2013        
(r245955)
@@ -0,0 +1,319 @@
+/*
+ * Copyright (c) 2013 Ian Lepore
+ * Copyright (c) 2010 The FreeBSD Foundation
+ * All rights reserved.
+ *
+ * This software substantially based on work developed by Semihalf 
+ * under sponsorship from the FreeBSD Foundation.
+ *
+ * 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.
+ *
+ * GlobalScale Technologies DreamPlug Device Tree Source.
+ *
+ * This source is for version 10 revision 01 units with NOR SPI flash.
+ * These units are marked "1001" on the serial number label.
+ *
+ * $FreeBSD$
+ */
+
+/dts-v1/;
+
+/ {
+       model = "GlobalScale Technologies Dreamplug v1001";
+       compatible = "globalscale,dreamplug-003-ds2001", 
"globalscale,dreamplug", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       aliases {
+               ethernet0 = &enet0;
+               ethernet1 = &enet1;
+               mpp = &MPP;
+               serial0 = &serial0;
+               serial1 = &serial1;
+               soc = &SOC;
+               sram = &SRAM;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "ARM,88FR131";
+                       reg = <0x0>;
+                       d-cache-line-size = <32>;       // 32 bytes
+                       i-cache-line-size = <32>;       // 32 bytes
+                       d-cache-size = <0x4000>;        // L1, 16K
+                       i-cache-size = <0x4000>;        // L1, 16K
+                       timebase-frequency = <0>;
+                       bus-frequency = <0>;
+                       clock-frequency = <0>;
+               };
+
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x0 0x20000000>;         // 512M at 0x0
+       };
+
+       localbus@0 {
+               #address-cells = <2>;
+               #size-cells = <1>;
+               compatible = "mrvl,lbc";
+               bank-count = <1>;
+
+               /* This reflects CPU decode windows setup. */
+               ranges = <0x0 0x1e 0xfa000000 0x00100000>;
+
+               nor@0,0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "cfi-flash";
+                       reg = <0x0 0x0 0x00100000>;
+                       bank-width = <2>;
+                       device-width = <1>;
+               };
+       };
+
+       SOC: soc88f6281@f1000000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               ranges = <0x0 0xf1000000 0x00100000>;
+               bus-frequency = <0>;
+
+               PIC: pic@20200 {
+                       interrupt-controller;
+                       #address-cells = <0>;
+                       #interrupt-cells = <1>;
+                       reg = <0x20200 0x3c>;
+                       compatible = "mrvl,pic";
+               };
+
+               timer@20300 {
+                       compatible = "mrvl,timer";
+                       reg = <0x20300 0x30>;
+                       interrupts = <1>;
+                       interrupt-parent = <&PIC>;
+                       mrvl,has-wdt;
+               };
+
+               MPP: mpp@10000 {
+                       #pin-cells = <2>;
+                       compatible = "mrvl,mpp";
+                       reg = <0x10000 0x34>;
+                       pin-count = <50>;
+                       pin-map = <
+                                0 2            /* MPP[ 0]:  SPI_SCn */
+                                1 2            /* MPP[ 1]:  SPI_MOSI */
+                                2 2            /* MPP[ 2]:  SPI_SCK */
+                                3 2            /* MPP[ 3]:  SPI_MISO */
+                                4 1            /* MPP[ 4]: NF_IO[6] */
+                                5 1            /* MPP[ 5]: NF_IO[7] */
+                                6 1            /* MPP[ 6]: SYSRST_OUTn */
+                                7 0            /* MPP[ 7]: GPO[7] */
+                                8 1            /* MPP[ 8]: TW_SDA */
+                                9 1            /* MPP[ 9]: TW_SCK */
+                               10 3            /* MPP[10]: UA0_TXD */
+                               11 3            /* MPP[11]: US0_RXD */
+                               12 1            /* MPP[12]: SD_CLK */
+                               13 1            /* MPP[13]: SD_CMD */
+                               14 1            /* MPP[14]: SD_D[0] */
+                               15 1            /* MPP[15]: SD_D[1] */
+                               16 1            /* MPP[16]: SD_D[2] */
+                               17 1            /* MPP[17]: SD_D[3] */
+                               18 1            /* MPP[18]: NF_IO[0] */
+                               19 1            /* MPP[19]: NF_IO[1] */
+                               20 3            /* MPP[20]: GE1[ 0] */
+                               21 3            /* MPP[21]: GE1[ 1] */
+                               22 3            /* MPP[22]: GE1[ 2] */
+                               23 3            /* MPP[23]: GE1[ 3] */
+                               24 3            /* MPP[24]: GE1[ 4] */
+                               25 3            /* MPP[25]: GE1[ 5] */
+                               26 3            /* MPP[26]: GE1[ 6] */
+                               27 3            /* MPP[27]: GE1[ 7] */
+                               28 3            /* MPP[28]: GE1[ 8] */
+                               29 3            /* MPP[29]: GE1[ 9] */
+                               30 3            /* MPP[30]: GE1[10] */
+                               31 3            /* MPP[31]: GE1[11] */
+                               32 3            /* MPP[32]: GE1[12] */
+                               33 3            /* MPP[33]: GE1[13] */
+                               34 3            /* MPP[34]: GE1[14] */
+                               35 3            /* MPP[35]: GE1[15] */
+                               36 0            /* MPP[36]: GPIO[36] */
+                               37 0            /* MPP[37]: GPIO[37] */
+                               38 0            /* MPP[38]: GPIO[38] */
+                               39 0            /* MPP[39]: GPIO[39] */
+                               40 2            /* MPP[40]: TDM_SPI_SCK */
+                               41 2            /* MPP[41]: TDM_SPI_MISO */
+                               42 2            /* MPP[42]: TDM_SPI_MOSI */
+                               43 0            /* MPP[43]: GPIO[43] */
+                               44 0            /* MPP[44]: GPIO[44] */
+                               45 0            /* MPP[45]: GPIO[45] */
+                               46 0            /* MPP[46]: GPIO[46] */
+                               47 0            /* MPP[47]: GPIO[47] */
+                               48 0            /* MPP[48]: GPIO[48] */
+                               49 0            /* MPP[49]: GPIO[49] */
+                               >;
+               };
+
+               GPIO: gpio@10100 {
+                       #gpio-cells = <3>;
+                       compatible = "mrvl,gpio";
+                       reg = <0x10100 0x20>;
+                       gpio-controller;
+                       interrupts = <35 36 37 38 39 40 41>;
+                       interrupt-parent = <&PIC>;
+                       pin-count = <50>;
+               };
+
+               gpioled@0 {
+                       compatible = "mrvl,gpioled";
+
+                       gpios = <&GPIO 47 2 0   /* GPIO[47] BT LED: OUT */
+                                &GPIO 48 2 0   /* GPIO[48] WLAN LED: OUT */
+                                &GPIO 49 2 0>; /* GPIO[49] WLAN AP LED: OUT */
+               };
+
+               rtc@10300 {
+                       compatible = "mrvl,rtc";
+                       reg = <0x10300 0x08>;
+               };
+
+               twsi@11000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "mrvl,twsi";
+                       reg = <0x11000 0x20>;
+                       interrupts = <43>;
+                       interrupt-parent = <&PIC>;
+               };
+
+               enet0: ethernet@72000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       model = "V2";
+                       compatible = "mrvl,ge";
+                       reg = <0x72000 0x2000>;
+                       ranges = <0x0 0x72000 0x2000>;
+                       local-mac-address = [ 00 00 00 00 00 00 ];
+                       interrupts = <12 13 14 11 46>;
+                       interrupt-parent = <&PIC>;
+                       phy-handle = <&phy0>;
+
+                       mdio@0 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "mrvl,mdio";
+
+                               phy0: ethernet-phy@0 {
+                                       reg = <0x0>;
+                               };
+
+                               phy1: ethernet-phy@1 {
+                                       reg = <0x1>;
+                               };
+                       };
+               };
+
+               enet1: ethernet@76000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       model = "V2";
+                       compatible = "mrvl,ge";
+                       reg = <0x76000 0x02000>;
+                       ranges = <0x0 0x76000 0x2000>;
+                       local-mac-address = [ 00 00 00 00 00 00 ];
+                       interrupts = <16 17 18 15 47>;
+                       interrupt-parent = <&PIC>;
+                       phy-handle = <&phy1>;
+               };
+
+               serial0: serial@12000 {
+                       compatible = "ns16550";
+                       reg = <0x12000 0x20>;
+                       reg-shift = <2>;
+                       clock-frequency = <0>;
+                       interrupts = <33>;
+                       interrupt-parent = <&PIC>;
+               };
+
+               serial1: serial@12100 {
+                       compatible = "ns16550";
+                       reg = <0x12100 0x20>;
+                       reg-shift = <2>;
+                       clock-frequency = <0>;
+                       interrupts = <34>;
+                       interrupt-parent = <&PIC>;
+               };
+
+               crypto@30000 {
+                       compatible = "mrvl,cesa";
+                       reg = <0x30000 0x10000>;
+                       interrupts = <22>;
+                       interrupt-parent = <&PIC>;
+
+                       sram-handle = <&SRAM>;
+               };
+
+               usb@50000 {
+                       compatible = "mrvl,usb-ehci", "usb-ehci";
+                       reg = <0x50000 0x1000>;
+                       interrupts = <48 19>;
+                       interrupt-parent = <&PIC>;
+               };
+
+               xor@60000 {
+                       compatible = "mrvl,xor";
+                       reg = <0x60000 0x1000>;
+                       interrupts = <5 6 7 8>;
+                       interrupt-parent = <&PIC>;
+               };
+
+               sata@80000 {
+                       compatible = "mrvl,sata";
+                       reg = <0x80000 0x6000>;
+                       interrupts = <21>;
+                       interrupt-parent = <&PIC>;
+               };
+
+               sdio@90000 {
+                       compatible = "mrvl,sdio";
+                       reg = <0x90000 0x134>;
+                       interrupts = <28>;
+                       interrupt-parent = <&PIC>;
+               };
+       };
+
+       SRAM: sram@fd000000 {
+               compatible = "mrvl,cesa-sram";
+               reg = <0xfd000000 0x00100000>;
+       };
+
+       chosen {
+               stdin = "serial0";
+               stdout = "serial0";
+       };
+
+};

Added: head/sys/boot/fdt/dts/dreamplug-1001N.dts
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/boot/fdt/dts/dreamplug-1001N.dts   Sun Jan 27 01:17:37 2013        
(r245955)
@@ -0,0 +1,340 @@
+/*
+ * Copyright (c) 2013 Ian Lepore
+ * Copyright (c) 2010 The FreeBSD Foundation
+ * All rights reserved.
+ *
+ * This software substantially based on work developed by Semihalf 
+ * under sponsorship from the FreeBSD Foundation.
+ *
+ * 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.
+ *
+ * GlobalScale Technologies DreamPlug Device Tree Source.
+ *
+ * This source is for version 10 revision 01 units with NAND flash.
+ * These units are marked "1001N" on the serial number label.
+ *
+ * $FreeBSD$
+ */
+
+/dts-v1/;
+
+/ {
+       model = "GlobalScale Technologies Dreamplug v1001N";
+       compatible = "globalscale,dreamplug-003-ds2001", 
"globalscale,dreamplug", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       aliases {
+               ethernet0 = &enet0;
+               ethernet1 = &enet1;
+               mpp = &MPP;
+               serial0 = &serial0;
+               serial1 = &serial1;
+               soc = &SOC;
+               sram = &SRAM;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "ARM,88FR131";
+                       reg = <0x0>;
+                       d-cache-line-size = <32>;       // 32 bytes
+                       i-cache-line-size = <32>;       // 32 bytes
+                       d-cache-size = <0x4000>;        // L1, 16K
+                       i-cache-size = <0x4000>;        // L1, 16K
+                       timebase-frequency = <0>;
+                       bus-frequency = <0>;
+                       clock-frequency = <0>;
+               };
+
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x0 0x20000000>;         // 512M at 0x0
+       };
+
+       localbus@0 {
+               #address-cells = <2>;
+               #size-cells = <1>;
+               compatible = "mrvl,lbc";
+               bank-count = <1>;
+
+               /* This reflects CPU decode windows setup. */
+               ranges = <0x0 0x2f 0xf9300000 0x00100000>;
+
+               nand@0,0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "mrvl,nfc";
+                       reg = <0x0 0x0 0x00100000>;
+                       bank-width = <2>;
+                       device-width = <1>;
+
+                       // Slice info reported by builtin linux when it boots...
+                       //[   11.161328] 0x00000000-0x00100000 : "u-boot"
+                       //[   11.167431] 0x00100000-0x00500000 : "uImage"
+                       //[   11.173471] 0x00500000-0x20000000 : "root"
+
+                       slice@0 {
+                               reg = <0x0 0x100000>;
+                               label = "u-boot";
+                               read-only;
+                       };
+
+                       slice@200000 {
+                               reg = <0x100000 0x40000>;
+                               label = "uImage";
+                       };
+
+                       slice@500000 {
+                               reg = <0x500000 0x1FB00000>;
+                               label = "root";
+                       };
+               };
+       };
+
+       SOC: soc88f6281@f1000000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               ranges = <0x0 0xf1000000 0x00100000>;
+               bus-frequency = <0>;
+
+               PIC: pic@20200 {
+                       interrupt-controller;
+                       #address-cells = <0>;
+                       #interrupt-cells = <1>;
+                       reg = <0x20200 0x3c>;
+                       compatible = "mrvl,pic";
+               };
+
+               timer@20300 {
+                       compatible = "mrvl,timer";
+                       reg = <0x20300 0x30>;
+                       interrupts = <1>;
+                       interrupt-parent = <&PIC>;
+                       mrvl,has-wdt;
+               };
+
+               MPP: mpp@10000 {
+                       #pin-cells = <2>;
+                       compatible = "mrvl,mpp";
+                       reg = <0x10000 0x34>;
+                       pin-count = <50>;
+                       pin-map = <
+                                0 1            /* MPP[ 0]: NF_IO[2] */
+                                1 1            /* MPP[ 1]: NF_IO[3] */
+                                2 1            /* MPP[ 2]: NF_IO[4] */
+                                3 1            /* MPP[ 3]: NF_IO[5] */
+                                4 1            /* MPP[ 4]: NF_IO[6] */
+                                5 1            /* MPP[ 5]: NF_IO[7] */
+                                6 1            /* MPP[ 6]: SYSRST_OUTn */
+                                7 0            /* MPP[ 7]: GPO[7] */
+                                8 1            /* MPP[ 8]: TW_SDA */
+                                9 1            /* MPP[ 9]: TW_SCK */
+                               10 3            /* MPP[10]: UA0_TXD */
+                               11 3            /* MPP[11]: US0_RXD */
+                               12 1            /* MPP[12]: SD_CLK */
+                               13 1            /* MPP[13]: SD_CMD */
+                               14 1            /* MPP[14]: SD_D[0] */
+                               15 1            /* MPP[15]: SD_D[1] */
+                               16 1            /* MPP[16]: SD_D[2] */
+                               17 1            /* MPP[17]: SD_D[3] */
+                               18 1            /* MPP[18]: NF_IO[0] */
+                               19 1            /* MPP[19]: NF_IO[1] */
+                               20 3            /* MPP[20]: GE1[ 0] */
+                               21 3            /* MPP[21]: GE1[ 1] */
+                               22 3            /* MPP[22]: GE1[ 2] */
+                               23 3            /* MPP[23]: GE1[ 3] */
+                               24 3            /* MPP[24]: GE1[ 4] */
+                               25 3            /* MPP[25]: GE1[ 5] */
+                               26 3            /* MPP[26]: GE1[ 6] */
+                               27 3            /* MPP[27]: GE1[ 7] */
+                               28 3            /* MPP[28]: GE1[ 8] */
+                               29 3            /* MPP[29]: GE1[ 9] */
+                               30 3            /* MPP[30]: GE1[10] */
+                               31 3            /* MPP[31]: GE1[11] */
+                               32 3            /* MPP[32]: GE1[12] */
+                               33 3            /* MPP[33]: GE1[13] */
+                               34 3            /* MPP[34]: GE1[14] */
+                               35 3            /* MPP[35]: GE1[15] */
+                               36 0            /* MPP[36]: GPIO[36] */
+                               37 0            /* MPP[37]: GPIO[37] */
+                               38 0            /* MPP[38]: GPIO[38] */
+                               39 0            /* MPP[39]: GPIO[39] */
+                               40 2            /* MPP[40]: TDM_SPI_SCK */
+                               41 2            /* MPP[41]: TDM_SPI_MISO */
+                               42 2            /* MPP[42]: TDM_SPI_MOSI */
+                               43 0            /* MPP[43]: GPIO[43] */
+                               44 0            /* MPP[44]: GPIO[44] */
+                               45 0            /* MPP[45]: GPIO[45] */
+                               46 0            /* MPP[46]: GPIO[46] */
+                               47 0            /* MPP[47]: GPIO[47] */
+                               48 0            /* MPP[48]: GPIO[48] */
+                               49 0            /* MPP[49]: GPIO[49] */
+                               >;
+               };
+
+               GPIO: gpio@10100 {
+                       #gpio-cells = <3>;
+                       compatible = "mrvl,gpio";
+                       reg = <0x10100 0x20>;
+                       gpio-controller;
+                       interrupts = <35 36 37 38 39 40 41>;
+                       interrupt-parent = <&PIC>;
+                       pin-count = <50>;
+               };
+
+               gpioled@0 {
+                       compatible = "mrvl,gpioled";
+
+                       gpios = <&GPIO 47 2 0   /* GPIO[47] BT LED: OUT */
+                                &GPIO 48 2 0   /* GPIO[48] WLAN LED: OUT */
+                                &GPIO 49 2 0>; /* GPIO[49] WLAN AP LED: OUT */
+               };
+
+               rtc@10300 {
+                       compatible = "mrvl,rtc";
+                       reg = <0x10300 0x08>;
+               };
+
+               twsi@11000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "mrvl,twsi";
+                       reg = <0x11000 0x20>;
+                       interrupts = <43>;
+                       interrupt-parent = <&PIC>;
+               };
+
+               enet0: ethernet@72000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       model = "V2";
+                       compatible = "mrvl,ge";
+                       reg = <0x72000 0x2000>;
+                       ranges = <0x0 0x72000 0x2000>;
+                       local-mac-address = [ 00 00 00 00 00 00 ];
+                       interrupts = <12 13 14 11 46>;
+                       interrupt-parent = <&PIC>;
+                       phy-handle = <&phy0>;
+
+                       mdio@0 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "mrvl,mdio";
+
+                               phy0: ethernet-phy@0 {
+                                       reg = <0x0>;
+                               };
+
+                               phy1: ethernet-phy@1 {
+                                       reg = <0x1>;
+                               };
+                       };
+               };
+
+               enet1: ethernet@76000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       model = "V2";
+                       compatible = "mrvl,ge";
+                       reg = <0x76000 0x02000>;
+                       ranges = <0x0 0x76000 0x2000>;
+                       local-mac-address = [ 00 00 00 00 00 00 ];
+                       interrupts = <16 17 18 15 47>;
+                       interrupt-parent = <&PIC>;
+                       phy-handle = <&phy1>;
+               };
+
+               serial0: serial@12000 {
+                       compatible = "ns16550";
+                       reg = <0x12000 0x20>;
+                       reg-shift = <2>;
+                       clock-frequency = <0>;
+                       interrupts = <33>;
+                       interrupt-parent = <&PIC>;
+               };
+
+               serial1: serial@12100 {
+                       compatible = "ns16550";
+                       reg = <0x12100 0x20>;
+                       reg-shift = <2>;
+                       clock-frequency = <0>;
+                       interrupts = <34>;
+                       interrupt-parent = <&PIC>;
+               };
+
+               crypto@30000 {
+                       compatible = "mrvl,cesa";
+                       reg = <0x30000 0x10000>;
+                       interrupts = <22>;
+                       interrupt-parent = <&PIC>;
+
+                       sram-handle = <&SRAM>;
+               };
+
+               usb@50000 {
+                       compatible = "mrvl,usb-ehci", "usb-ehci";
+                       reg = <0x50000 0x1000>;
+                       interrupts = <48 19>;
+                       interrupt-parent = <&PIC>;
+               };
+
+               xor@60000 {
+                       compatible = "mrvl,xor";
+                       reg = <0x60000 0x1000>;
+                       interrupts = <5 6 7 8>;
+                       interrupt-parent = <&PIC>;
+               };
+
+               sata@80000 {
+                       compatible = "mrvl,sata";
+                       reg = <0x80000 0x6000>;
+                       interrupts = <21>;
+                       interrupt-parent = <&PIC>;
+               };
+
+               sdio@90000 {
+                       compatible = "mrvl,sdio";
+                       reg = <0x90000 0x134>;
+                       interrupts = <28>;
+                       interrupt-parent = <&PIC>;
+               };
+       };
+
+       SRAM: sram@fd000000 {
+               compatible = "mrvl,cesa-sram";
+               reg = <0xfd000000 0x00100000>;
+       };
+
+       chosen {
+               stdin = "serial0";
+               stdout = "serial0";
+       };
+
+};
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to