<div><div>diff -ruN ./rtems-libbsd/freebsd/sys/arm/ti/cpsw/if_cpswreg.h ./am335x_bsp/rtems-libbsd/freebsd/sys/arm/ti/cpsw/if_cpswreg.h</div><div>--- ./rtems-libbsd/freebsd/sys/arm/ti/cpsw/if_cpswreg.h<span class="Apple-tab-span" style="white-space:pre"> </span>1970-01-01 08:00:00.000000000 +0800</div><div>+++ ./am335x_bsp/rtems-libbsd/freebsd/sys/arm/ti/cpsw/if_cpswreg.h<span class="Apple-tab-span" style="white-space:pre">        </span>2016-03-18 11:38:45.324075400 +0800</div><div>@@ -0,0 +1,178 @@</div><div>+/*-</div><div>+ * Copyright (c) 2012 Damjan Marion <dmarion@Freebsd.org></div><div>+ * All rights reserved.</div><div>+ *</div><div>+ * Redistribution and use in source and binary forms, with or without</div><div>+ * modification, are permitted provided that the following conditions</div><div>+ * are met:</div><div>+ * 1. Redistributions of source code must retain the above copyright</div><div>+ *    notice, this list of conditions and the following disclaimer.</div><div>+ * 2. Redistributions in binary form must reproduce the above copyright</div><div>+ *    notice, this list of conditions and the following disclaimer in the</div><div>+ *    documentation and/or other materials provided with the distribution.</div><div>+ *</div><div>+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</div><div>+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div>+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div>+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</div><div>+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div>+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div>+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div>+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div>+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div>+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div>+ * SUCH DAMAGE.</div><div>+ *</div><div>+ * $FreeBSD$</div><div>+ */</div><div>+</div><div>+#ifndef<span class="Apple-tab-span" style="white-space:pre">   </span>_IF_CPSWREG_H</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">        </span>_IF_CPSWREG_H</div><div>+</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">        </span>CPSW_SS_OFFSET<span class="Apple-tab-span" style="white-space:pre">                      </span>0x0000</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_SS_IDVER<span class="Apple-tab-span" style="white-space:pre">                       </span>(CPSW_SS_OFFSET + 0x00)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span>CPSW_SS_SOFT_RESET<span class="Apple-tab-span" style="white-space:pre">          </span>(CPSW_SS_OFFSET + 0x08)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span>CPSW_SS_STAT_PORT_EN<span class="Apple-tab-span" style="white-space:pre">                </span>(CPSW_SS_OFFSET + 0x0C)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span>CPSW_SS_PTYPE<span class="Apple-tab-span" style="white-space:pre">                       </span>(CPSW_SS_OFFSET + 0x10)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span>CPSW_SS_FLOW_CONTROL<span class="Apple-tab-span" style="white-space:pre">                </span>(CPSW_SS_OFFSET + 0x24)</div><div>+</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span>CPSW_PORT_OFFSET<span class="Apple-tab-span" style="white-space:pre">            </span>0x0100</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_PORT_P_MAX_BLKS(p)<span class="Apple-tab-span" style="white-space:pre">             </span>(CPSW_PORT_OFFSET + 0x08 + ((p) * 0x100))</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">    </span>CPSW_PORT_P_BLK_CNT(p)<span class="Apple-tab-span" style="white-space:pre">              </span>(CPSW_PORT_OFFSET + 0x0C + ((p) * 0x100))</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">    </span>CPSW_PORT_P_VLAN(p)<span class="Apple-tab-span" style="white-space:pre">         </span>(CPSW_PORT_OFFSET + 0x14 + ((p) * 0x100))</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">    </span>CPSW_PORT_P_TX_PRI_MAP(p)<span class="Apple-tab-span" style="white-space:pre">   </span>(CPSW_PORT_OFFSET + 0x118 + ((p-1) * 0x100))</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span>CPSW_PORT_P0_CPDMA_TX_PRI_MAP<span class="Apple-tab-span" style="white-space:pre">       </span>(CPSW_PORT_OFFSET + 0x01C)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_PORT_P0_CPDMA_RX_CH_MAP<span class="Apple-tab-span" style="white-space:pre">        </span>(CPSW_PORT_OFFSET + 0x020)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_PORT_P_SA_LO(p)<span class="Apple-tab-span" style="white-space:pre">                </span>(CPSW_PORT_OFFSET + 0x120 + ((p-1) * 0x100))</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span>CPSW_PORT_P_SA_HI(p)<span class="Apple-tab-span" style="white-space:pre">                </span>(CPSW_PORT_OFFSET + 0x124 + ((p-1) * 0x100))</div><div>+</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span>CPSW_CPDMA_OFFSET<span class="Apple-tab-span" style="white-space:pre">           </span>0x0800</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_CPDMA_TX_CONTROL<span class="Apple-tab-span" style="white-space:pre">               </span>(CPSW_CPDMA_OFFSET + 0x04)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_TX_TEARDOWN<span class="Apple-tab-span" style="white-space:pre">              </span>(CPSW_CPDMA_OFFSET + 0x08)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_RX_CONTROL<span class="Apple-tab-span" style="white-space:pre">               </span>(CPSW_CPDMA_OFFSET + 0x14)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_RX_TEARDOWN<span class="Apple-tab-span" style="white-space:pre">              </span>(CPSW_CPDMA_OFFSET + 0x18)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_SOFT_RESET<span class="Apple-tab-span" style="white-space:pre">               </span>(CPSW_CPDMA_OFFSET + 0x1c)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_DMACONTROL<span class="Apple-tab-span" style="white-space:pre">               </span>(CPSW_CPDMA_OFFSET + 0x20)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_DMASTATUS<span class="Apple-tab-span" style="white-space:pre">                </span>(CPSW_CPDMA_OFFSET + 0x24)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_RX_BUFFER_OFFSET<span class="Apple-tab-span" style="white-space:pre"> </span>(CPSW_CPDMA_OFFSET + 0x28)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_TX_INTSTAT_RAW<span class="Apple-tab-span" style="white-space:pre">   </span>(CPSW_CPDMA_OFFSET + 0x80)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_TX_INTSTAT_MASKED<span class="Apple-tab-span" style="white-space:pre">        </span>(CPSW_CPDMA_OFFSET + 0x84)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_TX_INTMASK_SET<span class="Apple-tab-span" style="white-space:pre">   </span>(CPSW_CPDMA_OFFSET + 0x88)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_TX_INTMASK_CLEAR<span class="Apple-tab-span" style="white-space:pre"> </span>(CPSW_CPDMA_OFFSET + 0x8C)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_CPDMA_EOI_VECTOR<span class="Apple-tab-span" style="white-space:pre"> </span>(CPSW_CPDMA_OFFSET + 0x94)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_RX_INTSTAT_RAW<span class="Apple-tab-span" style="white-space:pre">   </span>(CPSW_CPDMA_OFFSET + 0xA0)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_RX_INTSTAT_MASKED<span class="Apple-tab-span" style="white-space:pre">        </span>(CPSW_CPDMA_OFFSET + 0xA4)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_RX_INTMASK_SET<span class="Apple-tab-span" style="white-space:pre">   </span>(CPSW_CPDMA_OFFSET + 0xA8)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_RX_INTMASK_CLEAR<span class="Apple-tab-span" style="white-space:pre"> </span>(CPSW_CPDMA_OFFSET + 0xAc)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_DMA_INTSTAT_RAW<span class="Apple-tab-span" style="white-space:pre">  </span>(CPSW_CPDMA_OFFSET + 0xB0)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_DMA_INTSTAT_MASKED<span class="Apple-tab-span" style="white-space:pre">       </span>(CPSW_CPDMA_OFFSET + 0xB4)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_DMA_INTMASK_SET<span class="Apple-tab-span" style="white-space:pre">  </span>(CPSW_CPDMA_OFFSET + 0xB8)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_DMA_INTMASK_CLEAR<span class="Apple-tab-span" style="white-space:pre">        </span>(CPSW_CPDMA_OFFSET + 0xBC)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_CPDMA_RX_FREEBUFFER(p)<span class="Apple-tab-span" style="white-space:pre"> </span>(CPSW_CPDMA_OFFSET + 0x0e0 + ((p) * 0x04))</div><div>+</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_STATS_OFFSET<span class="Apple-tab-span" style="white-space:pre">           </span>0x0900</div><div>+</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_STATERAM_OFFSET<span class="Apple-tab-span" style="white-space:pre">                </span>0x0A00</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_CPDMA_TX_HDP(p)<span class="Apple-tab-span" style="white-space:pre">                </span>(CPSW_STATERAM_OFFSET + 0x00 + ((p) * 0x04))</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span>CPSW_CPDMA_RX_HDP(p)<span class="Apple-tab-span" style="white-space:pre">                </span>(CPSW_STATERAM_OFFSET + 0x20 + ((p) * 0x04))</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span>CPSW_CPDMA_TX_CP(p)<span class="Apple-tab-span" style="white-space:pre">         </span>(CPSW_STATERAM_OFFSET + 0x40 + ((p) * 0x04))</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span>CPSW_CPDMA_RX_CP(p)<span class="Apple-tab-span" style="white-space:pre">         </span>(CPSW_STATERAM_OFFSET + 0x60 + ((p) * 0x04))</div><div>+</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span>CPSW_CPTS_OFFSET<span class="Apple-tab-span" style="white-space:pre">            </span>0x0C00</div><div>+</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_ALE_OFFSET<span class="Apple-tab-span" style="white-space:pre">                     </span>0x0D00</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_ALE_CONTROL<span class="Apple-tab-span" style="white-space:pre">            </span>(CPSW_ALE_OFFSET + 0x08)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">     </span> CPSW_ALE_CTL_ENABLE<span class="Apple-tab-span" style="white-space:pre">                </span>(1U << 31)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">     </span> CPSW_ALE_CTL_CLEAR_TBL<span class="Apple-tab-span" style="white-space:pre">             </span>(1 << 30)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span> CPSW_ALE_CTL_BYPASS<span class="Apple-tab-span" style="white-space:pre">                </span>(1 << 4)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span> CPSW_ALE_CTL_VLAN_AWARE<span class="Apple-tab-span" style="white-space:pre">    </span>(1 << 2)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_ALE_TBLCTL<span class="Apple-tab-span" style="white-space:pre">                     </span>(CPSW_ALE_OFFSET + 0x20)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">     </span>CPSW_ALE_TBLW2<span class="Apple-tab-span" style="white-space:pre">                      </span>(CPSW_ALE_OFFSET + 0x34)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">     </span>CPSW_ALE_TBLW1<span class="Apple-tab-span" style="white-space:pre">                      </span>(CPSW_ALE_OFFSET + 0x38)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">     </span>CPSW_ALE_TBLW0<span class="Apple-tab-span" style="white-space:pre">                      </span>(CPSW_ALE_OFFSET + 0x3C)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">     </span> ALE_MCAST(_a)<span class="Apple-tab-span" style="white-space:pre">                      </span>((_a[1] >> 8) & 1)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span> ALE_MCAST_FWD<span class="Apple-tab-span" style="white-space:pre">                      </span>(3 << 30)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span> ALE_PORTS(_a)<span class="Apple-tab-span" style="white-space:pre">                      </span>((_a[2] >> 2) & 7)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span> ALE_TYPE(_a)<span class="Apple-tab-span" style="white-space:pre">                       </span>((_a[1] >> 28) & 3)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">        </span> ALE_TYPE_ADDR<span class="Apple-tab-span" style="white-space:pre">                      </span>1</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">    </span> ALE_TYPE_VLAN<span class="Apple-tab-span" style="white-space:pre">                      </span>2</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">    </span> ALE_TYPE_VLAN_ADDR<span class="Apple-tab-span" style="white-space:pre">         </span>3</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">    </span> ALE_VLAN(_a)<span class="Apple-tab-span" style="white-space:pre">                       </span>((_a[1] >> 16) & 0xfff)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">    </span> ALE_VLAN_REGFLOOD(_a)<span class="Apple-tab-span" style="white-space:pre">              </span>((_a[0] >> 8) & 7)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span> ALE_VLAN_UNREGFLOOD(_a)<span class="Apple-tab-span" style="white-space:pre">    </span>((_a[0] >> 16) & 7)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">        </span> ALE_VLAN_UNTAG(_a)<span class="Apple-tab-span" style="white-space:pre">         </span>((_a[0] >> 24) & 7)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">        </span> ALE_VLAN_MEMBERS(_a)<span class="Apple-tab-span" style="white-space:pre">               </span>(_a[0] & 7)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span>CPSW_ALE_PORTCTL(p)<span class="Apple-tab-span" style="white-space:pre">         </span>(CPSW_ALE_OFFSET + 0x40 + ((p) * 0x04))</div><div>+</div><div>+/* SL1 is at 0x0D80, SL2 is at 0x0DC0 */</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span>CPSW_SL_OFFSET<span class="Apple-tab-span" style="white-space:pre">                      </span>0x0D80</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_SL_MACCONTROL(p)<span class="Apple-tab-span" style="white-space:pre">               </span>(CPSW_SL_OFFSET + (0x40 * (p)) + 0x04)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span> CPSW_SL_MACTL_IFCTL_B<span class="Apple-tab-span" style="white-space:pre">              </span>(1 << 16)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span> CPSW_SL_MACTL_IFCTL_A<span class="Apple-tab-span" style="white-space:pre">              </span>(1 << 15)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span> CPSW_SL_MACTL_GIG<span class="Apple-tab-span" style="white-space:pre">          </span>(1 << 7)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span> CPSW_SL_MACTL_GMII_ENABLE<span class="Apple-tab-span" style="white-space:pre">  </span>(1 << 5)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span> CPSW_SL_MACTL_FULLDUPLEX<span class="Apple-tab-span" style="white-space:pre">   </span>(1 << 0)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_SL_MACSTATUS(p)<span class="Apple-tab-span" style="white-space:pre">                </span>(CPSW_SL_OFFSET + (0x40 * (p)) + 0x08)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_SL_SOFT_RESET(p)<span class="Apple-tab-span" style="white-space:pre">               </span>(CPSW_SL_OFFSET + (0x40 * (p)) + 0x0C)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_SL_RX_MAXLEN(p)<span class="Apple-tab-span" style="white-space:pre">                </span>(CPSW_SL_OFFSET + (0x40 * (p)) + 0x10)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_SL_RX_PAUSE(p)<span class="Apple-tab-span" style="white-space:pre">         </span>(CPSW_SL_OFFSET + (0x40 * (p)) + 0x18)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_SL_TX_PAUSE(p)<span class="Apple-tab-span" style="white-space:pre">         </span>(CPSW_SL_OFFSET + (0x40 * (p)) + 0x1C)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_SL_RX_PRI_MAP(p)<span class="Apple-tab-span" style="white-space:pre">               </span>(CPSW_SL_OFFSET + (0x40 * (p)) + 0x24)</div><div>+</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>MDIO_OFFSET<span class="Apple-tab-span" style="white-space:pre">                 </span>0x1000</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>MDIOCONTROL<span class="Apple-tab-span" style="white-space:pre">                 </span>(MDIO_OFFSET + 0x04)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span> MDIOCTL_ENABLE<span class="Apple-tab-span" style="white-space:pre">                     </span>(1 << 30)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span> MDIOCTL_FAULTENB<span class="Apple-tab-span" style="white-space:pre">           </span>(1 << 18)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span>MDIOLINKINTRAW<span class="Apple-tab-span" style="white-space:pre">                      </span>(MDIO_OFFSET + 0x10)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span>MDIOLINKINTMASKED<span class="Apple-tab-span" style="white-space:pre">           </span>(MDIO_OFFSET + 0x14)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span>MDIOUSERACCESS0<span class="Apple-tab-span" style="white-space:pre">                     </span>(MDIO_OFFSET + 0x80)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span>MDIOUSERPHYSEL0<span class="Apple-tab-span" style="white-space:pre">                     </span>(MDIO_OFFSET + 0x84)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span>MDIOUSERACCESS1<span class="Apple-tab-span" style="white-space:pre">                     </span>(MDIO_OFFSET + 0x88)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span>MDIOUSERPHYSEL1<span class="Apple-tab-span" style="white-space:pre">                     </span>(MDIO_OFFSET + 0x8C)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span> MDIO_PHYSEL_LINKINTENB<span class="Apple-tab-span" style="white-space:pre">             </span>(1 << 6)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span> MDIO_PHYACCESS_GO<span class="Apple-tab-span" style="white-space:pre">          </span>(1U << 31)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">     </span> MDIO_PHYACCESS_WRITE<span class="Apple-tab-span" style="white-space:pre">               </span>(1 << 30)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span> MDIO_PHYACCESS_ACK<span class="Apple-tab-span" style="white-space:pre">         </span>(1 << 29)</div><div>+</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span>CPSW_WR_OFFSET<span class="Apple-tab-span" style="white-space:pre">                      </span>0x1200</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_WR_SOFT_RESET<span class="Apple-tab-span" style="white-space:pre">          </span>(CPSW_WR_OFFSET + 0x04)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span>CPSW_WR_CONTROL<span class="Apple-tab-span" style="white-space:pre">                     </span>(CPSW_WR_OFFSET + 0x08)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span>CPSW_WR_INT_CONTROL<span class="Apple-tab-span" style="white-space:pre">         </span>(CPSW_WR_OFFSET + 0x0c)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span>CPSW_WR_C_RX_THRESH_EN(p)<span class="Apple-tab-span" style="white-space:pre">   </span>(CPSW_WR_OFFSET + (0x10 * (p)) + 0x10)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_WR_C_RX_EN(p)<span class="Apple-tab-span" style="white-space:pre">          </span>(CPSW_WR_OFFSET + (0x10 * (p)) + 0x14)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_WR_C_TX_EN(p)<span class="Apple-tab-span" style="white-space:pre">          </span>(CPSW_WR_OFFSET + (0x10 * (p)) + 0x18)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_WR_C_MISC_EN(p)<span class="Apple-tab-span" style="white-space:pre">                </span>(CPSW_WR_OFFSET + (0x10 * (p)) + 0x1C)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_WR_C_RX_THRESH_STAT(p)<span class="Apple-tab-span" style="white-space:pre"> </span>(CPSW_WR_OFFSET + (0x10 * (p)) + 0x40)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_WR_C_RX_STAT(p)<span class="Apple-tab-span" style="white-space:pre">                </span>(CPSW_WR_OFFSET + (0x10 * (p)) + 0x44)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_WR_C_TX_STAT(p)<span class="Apple-tab-span" style="white-space:pre">                </span>(CPSW_WR_OFFSET + (0x10 * (p)) + 0x48)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_WR_C_MISC_STAT(p)<span class="Apple-tab-span" style="white-space:pre">              </span>(CPSW_WR_OFFSET + (0x10 * (p)) + 0x4C)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span> CPSW_WR_C_MISC_EVNT_PEND<span class="Apple-tab-span" style="white-space:pre">   </span>(1 << 4)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span> CPSW_WR_C_MISC_STAT_PEND<span class="Apple-tab-span" style="white-space:pre">   </span>(1 << 3)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span> CPSW_WR_C_MISC_HOST_PEND<span class="Apple-tab-span" style="white-space:pre">   </span>(1 << 2)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span> CPSW_WR_C_MISC_MDIOLINK<span class="Apple-tab-span" style="white-space:pre">    </span>(1 << 1)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span> CPSW_WR_C_MISC_MDIOUSER<span class="Apple-tab-span" style="white-space:pre">    </span>(1 << 0)</div><div>+</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_CPPI_RAM_OFFSET<span class="Apple-tab-span" style="white-space:pre">                </span>0x2000</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_CPPI_RAM_SIZE<span class="Apple-tab-span" style="white-space:pre">          </span>0x2000</div><div>+</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span>CPSW_MEMWINDOW_SIZE<span class="Apple-tab-span" style="white-space:pre">         </span>0x4000</div><div>+</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span> CPDMA_BD_SOP<span class="Apple-tab-span" style="white-space:pre">                       </span>(1 << 15)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span> CPDMA_BD_EOP<span class="Apple-tab-span" style="white-space:pre">                       </span>(1 << 14)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span> CPDMA_BD_OWNER<span class="Apple-tab-span" style="white-space:pre">                     </span>(1 << 13)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span> CPDMA_BD_EOQ<span class="Apple-tab-span" style="white-space:pre">                       </span>(1 << 12)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span> CPDMA_BD_TDOWNCMPLT<span class="Apple-tab-span" style="white-space:pre">                </span>(1 << 11)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">      </span> CPDMA_BD_PKT_ERR_MASK<span class="Apple-tab-span" style="white-space:pre">              </span>(3 << 4)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span> CPDMA_BD_TO_PORT<span class="Apple-tab-span" style="white-space:pre">           </span>(1 << 4)</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">       </span> CPDMA_BD_PORT_MASK<span class="Apple-tab-span" style="white-space:pre">         </span>3</div><div>+</div><div>+struct cpsw_cpdma_bd {</div><div>+<span class="Apple-tab-span" style="white-space:pre">     </span>volatile uint32_t next;</div><div>+<span class="Apple-tab-span" style="white-space:pre">     </span>volatile uint32_t bufptr;</div><div>+<span class="Apple-tab-span" style="white-space:pre">   </span>volatile uint16_t buflen;</div><div>+<span class="Apple-tab-span" style="white-space:pre">   </span>volatile uint16_t bufoff;</div><div>+<span class="Apple-tab-span" style="white-space:pre">   </span>volatile uint16_t pktlen;</div><div>+<span class="Apple-tab-span" style="white-space:pre">   </span>volatile uint16_t flags;</div><div>+};</div><div>+</div><div>+#endif /*_IF_CPSWREG_H */</div><div><br></div><div>diff -ruN ./rtems-libbsd/freebsd/sys/arm/ti/cpsw/if_cpswvar.h ./am335x_bsp/rtems-libbsd/freebsd/sys/arm/ti/cpsw/if_cpswvar.h</div><div>--- ./rtems-libbsd/freebsd/sys/arm/ti/cpsw/if_cpswvar.h<span class="Apple-tab-span" style="white-space:pre">       </span>1970-01-01 08:00:00.000000000 +0800</div><div>+++ ./am335x_bsp/rtems-libbsd/freebsd/sys/arm/ti/cpsw/if_cpswvar.h<span class="Apple-tab-span" style="white-space:pre">        </span>2016-07-02 21:43:26.205209800 +0800</div><div>@@ -0,0 +1,147 @@</div><div>+/*-</div><div>+ * Copyright (c) 2012 Damjan Marion <dmarion@Freebsd.org></div><div>+ * All rights reserved.</div><div>+ *</div><div>+ * Redistribution and use in source and binary forms, with or without</div><div>+ * modification, are permitted provided that the following conditions</div><div>+ * are met:</div><div>+ * 1. Redistributions of source code must retain the above copyright</div><div>+ *    notice, this list of conditions and the following disclaimer.</div><div>+ * 2. Redistributions in binary form must reproduce the above copyright</div><div>+ *    notice, this list of conditions and the following disclaimer in the</div><div>+ *    documentation and/or other materials provided with the distribution.</div><div>+ *</div><div>+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</div><div>+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div>+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div>+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</div><div>+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div>+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div>+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div>+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div>+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div>+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div>+ * SUCH DAMAGE.</div><div>+ *</div><div>+ * $FreeBSD$</div><div>+ */</div><div>+</div><div>+#ifndef<span class="Apple-tab-span" style="white-space:pre">   </span>_IF_CPSWVAR_H</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">        </span>_IF_CPSWVAR_H</div><div>+</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">        </span>CPSW_PORTS<span class="Apple-tab-span" style="white-space:pre">          </span>2</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">    </span>CPSW_INTR_COUNT<span class="Apple-tab-span" style="white-space:pre">             </span>4</div><div>+</div><div>+/* MII BUS  */</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span>CPSW_MIIBUS_RETRIES<span class="Apple-tab-span" style="white-space:pre"> </span>10</div><div>+#define<span class="Apple-tab-span" style="white-space:pre">   </span>CPSW_MIIBUS_DELAY<span class="Apple-tab-span" style="white-space:pre">   </span>2000</div><div>+</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span>CPSW_MAX_ALE_ENTRIES<span class="Apple-tab-span" style="white-space:pre">        </span>1024</div><div>+</div><div>+#define<span class="Apple-tab-span" style="white-space:pre"> </span>CPSW_SYSCTL_COUNT<span class="Apple-tab-span" style="white-space:pre">   </span>34</div><div>+</div><div>+#define CPSW_RESEMBLE_BUFFER_LEN  2048</div><div>+#define CPSW_RESEMBLE_BUFFER_ALIGN 4</div><div>+struct cpsw_slot {</div><div>+<span class="Apple-tab-span" style="white-space:pre"> </span>uint32_t bd_offset;  /* Offset of corresponding BD within CPPI RAM. */</div><div>+<span class="Apple-tab-span" style="white-space:pre"> </span>bus_dmamap_t dmamap;</div><div>+<span class="Apple-tab-span" style="white-space:pre">        </span>struct mbuf *mbuf;</div><div>+/* yao0718 add  why cppi dma can not send when address misalign 32 bits*/</div><div>+    uint8_t  *resemble;</div><div>+<span class="Apple-tab-span" style="white-space:pre">      </span>uint8_t  *align_res;</div><div>+<span class="Apple-tab-span" style="white-space:pre">   </span>STAILQ_ENTRY(cpsw_slot) next;</div><div>+};</div><div>+STAILQ_HEAD(cpsw_slots, cpsw_slot);</div><div>+</div><div>+struct cpsw_queue {</div><div>+<span class="Apple-tab-span" style="white-space:pre">       </span>struct mtx<span class="Apple-tab-span" style="white-space:pre">  </span>lock;</div><div>+<span class="Apple-tab-span" style="white-space:pre">       </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>running;</div><div>+<span class="Apple-tab-span" style="white-space:pre">    </span>struct cpsw_slots active;</div><div>+<span class="Apple-tab-span" style="white-space:pre">   </span>struct cpsw_slots avail;</div><div>+<span class="Apple-tab-span" style="white-space:pre">    </span>uint32_t<span class="Apple-tab-span" style="white-space:pre">    </span>queue_adds; /* total bufs added */</div><div>+<span class="Apple-tab-span" style="white-space:pre">  </span>uint32_t<span class="Apple-tab-span" style="white-space:pre">    </span>queue_removes; /* total bufs removed */</div><div>+<span class="Apple-tab-span" style="white-space:pre">     </span>uint32_t<span class="Apple-tab-span" style="white-space:pre">    </span>queue_removes_at_last_tick; /* Used by watchdog */</div><div>+<span class="Apple-tab-span" style="white-space:pre">  </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>queue_slots;</div><div>+<span class="Apple-tab-span" style="white-space:pre">        </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>active_queue_len;</div><div>+<span class="Apple-tab-span" style="white-space:pre">   </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>max_active_queue_len;</div><div>+<span class="Apple-tab-span" style="white-space:pre">       </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>avail_queue_len;</div><div>+<span class="Apple-tab-span" style="white-space:pre">    </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>max_avail_queue_len;</div><div>+<span class="Apple-tab-span" style="white-space:pre">        </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>longest_chain; /* Largest # segments in a single packet. */</div><div>+<span class="Apple-tab-span" style="white-space:pre"> </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>hdp_offset;</div><div>+};</div><div>+</div><div>+struct cpsw_port {</div><div>+<span class="Apple-tab-span" style="white-space:pre">     </span>device_t<span class="Apple-tab-span" style="white-space:pre">    </span>dev;</div><div>+<span class="Apple-tab-span" style="white-space:pre">        </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>phy;</div><div>+<span class="Apple-tab-span" style="white-space:pre">        </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>vlan;</div><div>+};</div><div>+</div><div>+struct cpsw_softc {</div><div>+<span class="Apple-tab-span" style="white-space:pre">  </span>device_t<span class="Apple-tab-span" style="white-space:pre">    </span>dev;</div><div>+<span class="Apple-tab-span" style="white-space:pre">        </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>active_slave;</div><div>+<span class="Apple-tab-span" style="white-space:pre">       </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>debug;</div><div>+<span class="Apple-tab-span" style="white-space:pre">      </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>dualemac;</div><div>+#ifndef __rtems__</div><div>+<span class="Apple-tab-span" style="white-space:pre">  </span>phandle_t<span class="Apple-tab-span" style="white-space:pre">   </span>node;</div><div>+#endif</div><div>+<span class="Apple-tab-span" style="white-space:pre"> </span>struct bintime<span class="Apple-tab-span" style="white-space:pre">      </span>attach_uptime; /* system uptime when attach happened. */</div><div>+<span class="Apple-tab-span" style="white-space:pre">    </span>struct cpsw_port port[2];</div><div>+</div><div>+<span class="Apple-tab-span" style="white-space:pre">   </span>/* RX and TX buffer tracking */</div><div>+<span class="Apple-tab-span" style="white-space:pre">     </span>struct cpsw_queue rx, tx;</div><div>+</div><div>+<span class="Apple-tab-span" style="white-space:pre">   </span>/* We expect 1 memory resource and 4 interrupts from the device tree. */</div><div>+<span class="Apple-tab-span" style="white-space:pre">    </span>void<span class="Apple-tab-span" style="white-space:pre">                </span>*ih_cookie[CPSW_INTR_COUNT];</div><div>+#ifndef __rtems__</div><div>+<span class="Apple-tab-span" style="white-space:pre">       </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>mem_rid;</div><div>+<span class="Apple-tab-span" style="white-space:pre">    </span>struct resource<span class="Apple-tab-span" style="white-space:pre">     </span>*mem_res;</div><div>+<span class="Apple-tab-span" style="white-space:pre">   </span>struct resource<span class="Apple-tab-span" style="white-space:pre">     </span>*irq_res[CPSW_INTR_COUNT];</div><div>+#else</div><div>+    struct resource<span class="Apple-tab-span" style="white-space:pre">        </span>*irq_res[1+CPSW_INTR_COUNT];</div><div>+#endif</div><div>+<span class="Apple-tab-span" style="white-space:pre">  </span>/* An mbuf full of nulls for TX padding. */</div><div>+<span class="Apple-tab-span" style="white-space:pre"> </span>bus_dmamap_t null_mbuf_dmamap;</div><div>+<span class="Apple-tab-span" style="white-space:pre">      </span>struct mbuf *null_mbuf;</div><div>+<span class="Apple-tab-span" style="white-space:pre">     </span>bus_addr_t null_mbuf_paddr;</div><div>+</div><div>+<span class="Apple-tab-span" style="white-space:pre"> </span>bus_dma_tag_t<span class="Apple-tab-span" style="white-space:pre">       </span>mbuf_dtag;</div><div>+</div><div>+<span class="Apple-tab-span" style="white-space:pre">  </span>struct {</div><div>+<span class="Apple-tab-span" style="white-space:pre">            </span>int resets;</div><div>+<span class="Apple-tab-span" style="white-space:pre">         </span>int timer;</div><div>+<span class="Apple-tab-span" style="white-space:pre">          </span>struct callout  callout;</div><div>+<span class="Apple-tab-span" style="white-space:pre">       </span>} watchdog;</div><div>+</div><div>+<span class="Apple-tab-span" style="white-space:pre"> </span>/* 64-bit versions of 32-bit hardware statistics counters */</div><div>+<span class="Apple-tab-span" style="white-space:pre">        </span>uint64_t shadow_stats[CPSW_SYSCTL_COUNT];</div><div>+</div><div>+<span class="Apple-tab-span" style="white-space:pre">   </span>/* CPPI STATERAM has 512 slots for building TX/RX queues. */</div><div>+<span class="Apple-tab-span" style="white-space:pre">        </span>/* TODO: Size here supposedly varies with different versions</div><div>+<span class="Apple-tab-span" style="white-space:pre">        </span>   of the controller.  Check DaVinci specs and find a good</div><div>+<span class="Apple-tab-span" style="white-space:pre">        </span>   way to adjust this.  One option is to have a separate</div><div>+<span class="Apple-tab-span" style="white-space:pre">  </span>   Device Tree parameter for number slots; another option</div><div>+<span class="Apple-tab-span" style="white-space:pre">      </span>   is to calculate it from the memory size in the device tree. */</div><div>+<span class="Apple-tab-span" style="white-space:pre">      </span>struct cpsw_slot _slots[CPSW_CPPI_RAM_SIZE / sizeof(struct cpsw_cpdma_bd)];</div><div>+<span class="Apple-tab-span" style="white-space:pre"> </span>struct cpsw_slots avail;</div><div>+};</div><div>+</div><div>+struct cpswp_softc {</div><div>+<span class="Apple-tab-span" style="white-space:pre">      </span>device_t<span class="Apple-tab-span" style="white-space:pre">    </span>dev;</div><div>+<span class="Apple-tab-span" style="white-space:pre">        </span>device_t<span class="Apple-tab-span" style="white-space:pre">    </span>miibus;</div><div>+<span class="Apple-tab-span" style="white-space:pre">     </span>device_t<span class="Apple-tab-span" style="white-space:pre">    </span>pdev;</div><div>+<span class="Apple-tab-span" style="white-space:pre">       </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>media_status;</div><div>+<span class="Apple-tab-span" style="white-space:pre">       </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>unit;</div><div>+<span class="Apple-tab-span" style="white-space:pre">       </span>int<span class="Apple-tab-span" style="white-space:pre">         </span>vlan;</div><div>+<span class="Apple-tab-span" style="white-space:pre">       </span>struct bintime<span class="Apple-tab-span" style="white-space:pre">      </span>init_uptime; /* system uptime when init happened. */</div><div>+<span class="Apple-tab-span" style="white-space:pre">        </span>struct callout<span class="Apple-tab-span" style="white-space:pre">      </span>mii_callout;</div><div>+<span class="Apple-tab-span" style="white-space:pre">        </span>struct cpsw_softc *swsc;</div><div>+<span class="Apple-tab-span" style="white-space:pre">    </span>struct ifnet<span class="Apple-tab-span" style="white-space:pre">        </span>*ifp;</div><div>+<span class="Apple-tab-span" style="white-space:pre">       </span>struct mii_data<span class="Apple-tab-span" style="white-space:pre">     </span>*mii;</div><div>+<span class="Apple-tab-span" style="white-space:pre">       </span>struct mtx<span class="Apple-tab-span" style="white-space:pre">  </span>lock;</div><div>+<span class="Apple-tab-span" style="white-space:pre">       </span>uint32_t<span class="Apple-tab-span" style="white-space:pre">    </span>if_flags;</div><div>+<span class="Apple-tab-span" style="white-space:pre">   </span>uint32_t<span class="Apple-tab-span" style="white-space:pre">    </span>phy;</div><div>+<span class="Apple-tab-span" style="white-space:pre">        </span>uint32_t<span class="Apple-tab-span" style="white-space:pre">    </span>phyaccess;</div><div>+<span class="Apple-tab-span" style="white-space:pre">  </span>uint32_t<span class="Apple-tab-span" style="white-space:pre">    </span>physel;</div><div>+};</div><div>+</div><div>+#endif /*_IF_CPSWVAR_H */</div></div><div><div><br></div><div><br></div><div style="font-size: 12px;font-family: Arial Narrow;padding:2px 0 2px 0;">------------------ Original ------------------</div><div style="font-size: 12px;background:#efefef;padding:8px;"><div><b>From: </b> "yao0718";<29171383@qq.com>;</div><div><b>Date: </b> Tue, Jul 5, 2016 03:11 PM</div><div><b>To: </b> "devel"<devel@rtems.org>; <wbr></div><div></div><div><b>Subject: </b> [0/6] ti cpsw driver port from freebsd for am335x </div></div><div><br></div><div><span style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;">I add cpsw driver from freebsd and modify some code for my board, my board is not beagleblack, so i am not sure it can work fine in BB board,to reduce phy find process, I  set phy address 4 and 6 for which phy address on my board,my board has two eth port ,I set dualmac when attach;</span></div><div><span style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;">can somebody test it on beaglebone and merge to beaglebone  bsp?</span></div><div><span style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;"><br></span></div></div>