Author: imp
Date: Sat Nov  7 20:02:07 2015
New Revision: 290509
URL: https://svnweb.freebsd.org/changeset/base/290509

Log:
  Add support for RMII in macb, cribbed slightly from the ate
  driver. This is taken from the MAC at boot, but can be overridden with
  'options AT91_MACB_USE_RMII'.
  
  Switch to macb for HL201 and SAM9G20EK boards. It now works both
  places. Also start to sneak up on FDT for the SAM9G20EK board, but
  leave disabled due to issues with MMC that haven't been resolved.
  Add early debug support for the SAM9G20EK since that is required
  for FDT to work presently on these SoC.

Modified:
  head/sys/arm/at91/if_macb.c
  head/sys/arm/at91/if_macbreg.h
  head/sys/arm/at91/if_macbvar.h
  head/sys/arm/conf/HL201
  head/sys/arm/conf/SAM9G20EK
  head/sys/conf/options.arm

Modified: head/sys/arm/at91/if_macb.c
==============================================================================
--- head/sys/arm/at91/if_macb.c Sat Nov  7 19:54:40 2015        (r290508)
+++ head/sys/arm/at91/if_macb.c Sat Nov  7 20:02:07 2015        (r290509)
@@ -25,6 +25,7 @@
  */
 
 #include "opt_platform.h"
+#include "opt_at91.h"
 
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
@@ -1359,8 +1360,14 @@ macb_attach(device_t dev)
 
        sc->clock = sc->clock << 10;
 
+#ifdef AT91_MACB_USE_RMII
+       sc->use_rmii = USRIO_RMII;
+#else
+       sc->use_rmii = read_4(sc, EMAC_USRIO) & USRIO_RMII;
+#endif
+
        write_4(sc, EMAC_NCFGR, sc->clock);
-       write_4(sc, EMAC_USRIO, USRIO_CLOCK);       //enable clock
+       write_4(sc, EMAC_USRIO, USRIO_CLOCK | sc->use_rmii);       //enable 
clock
 
        write_4(sc, EMAC_NCR, MPE_ENABLE); //enable MPE
 

Modified: head/sys/arm/at91/if_macbreg.h
==============================================================================
--- head/sys/arm/at91/if_macbreg.h      Sat Nov  7 19:54:40 2015        
(r290508)
+++ head/sys/arm/at91/if_macbreg.h      Sat Nov  7 20:02:07 2015        
(r290509)
@@ -99,7 +99,8 @@
 
 #define        CFG_DRFCS       (1 << 17)
 
-#define USRIO_CLOCK    (1 << 1)
+#define USRIO_RMII     (1 << 0)                /* RMII vs MII pins */
+#define USRIO_CLOCK    (1 << 1)                /* Enable the clock! */
 
 
 

Modified: head/sys/arm/at91/if_macbvar.h
==============================================================================
--- head/sys/arm/at91/if_macbvar.h      Sat Nov  7 19:54:40 2015        
(r290508)
+++ head/sys/arm/at91/if_macbvar.h      Sat Nov  7 20:02:07 2015        
(r290509)
@@ -131,8 +131,8 @@ struct macb_softc
 
        struct macb_chain_data  macb_cdata;
        int clock;
-};
-
 
+       uint32_t use_rmii; /* 0 or USRIO_RMII */
+};
 
 #endif

Modified: head/sys/arm/conf/HL201
==============================================================================
--- head/sys/arm/conf/HL201     Sat Nov  7 19:54:40 2015        (r290508)
+++ head/sys/arm/conf/HL201     Sat Nov  7 20:02:07 2015        (r290509)
@@ -70,7 +70,7 @@ options       DDB                     # Enable the kernel 
debug
 #options       BOOTP_NFSROOT
 #options       BOOTP_COMPAT
 #options       BOOTP_NFSV3
-#options       BOOTP_WIRED_TO=ate0
+#options       BOOTP_WIRED_TO=macb0
 
 options        ROOTDEVNAME=\"ufs:/dev/mmcsd0s1a\"
 
@@ -87,7 +87,7 @@ device                bpf                     # Berkeley 
packet filter
 
 # Ethernet
 device         mii                     # Minimal MII support
-device         ate                     # Atmel AT91 Ethernet driver
+device         macb                    # Atmel AT91 Ethernet driver
 device         lxtphy
 
 # I2C

Modified: head/sys/arm/conf/SAM9G20EK
==============================================================================
--- head/sys/arm/conf/SAM9G20EK Sat Nov  7 19:54:40 2015        (r290508)
+++ head/sys/arm/conf/SAM9G20EK Sat Nov  7 20:02:07 2015        (r290509)
@@ -23,6 +23,14 @@ ident                SAM9G20EK
 include        "std.arm"
 include        "../at91/std.sam9g20ek"
 
+#options               FDT
+#options       FDT_DTB_STATIC
+#makeoptions   FDT_DTS_FILE=at91sam9g20ek.dts
+
+options        EARLY_PRINTF
+options        SOCDEV_PA=0xfc000000
+options        SOCDEV_VA=0xdc000000
+
 #To statically compile in device wiring instead of /boot/device.hints
 hints          "SAM9G20EK.hints"
 makeoptions    MODULES_OVERRIDE=""
@@ -92,8 +100,10 @@ device              bpf                     # Berkeley 
packet filter
 
 # Ethernet
 device         mii                     # Minimal MII support
-device         ate                     # Atmel AT91 Ethernet driver
-options        AT91_ATE_USE_RMII
+#device                ate                     # Atmel AT91 Ethernet driver
+#options       AT91_ATE_USE_RMII
+device         macb                    # Atmel AT91 Ethernet driver
+options        AT91_MACB_USE_RMII
 
 # I2C
 device         at91_twi                # Atmel AT91 Two-wire Interface

Modified: head/sys/conf/options.arm
==============================================================================
--- head/sys/conf/options.arm   Sat Nov  7 19:54:40 2015        (r290508)
+++ head/sys/conf/options.arm   Sat Nov  7 20:02:07 2015        (r290509)
@@ -62,6 +62,7 @@ XSACLE_DISABLE_CCNT   opt_timer.h
 VERBOSE_INIT_ARM       opt_global.h
 VM_MAXUSER_ADDRESS     opt_global.h
 AT91_ATE_USE_RMII      opt_at91.h
+AT91_MACB_USE_RMII     opt_at91.h
 AT91_MCI_ALLOW_OVERCLOCK opt_at91.h
 AT91_MCI_HAS_4WIRE     opt_at91.h
 AT91_MCI_SLOT_B                opt_at91.h
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to