blob: ca48f1fb93cc35c44aa80e93823332f11aa7eb8e [file] [log] [blame]
##
## -------------------------------------------------------------
## Copyright 2004-2008 Synopsys, Inc.
## All Rights Reserved Worldwide
##
## Licensed under the Apache License, Version 2.0 (the
## "License"); you may not use this file except in
## compliance with the License. You may obtain a copy of
## the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in
## writing, software distributed under the License is
## distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
## CONDITIONS OF ANY KIND, either express or implied. See
## the License for the specific language governing
## permissions and limitations under the License.
## -------------------------------------------------------------
##
register MODER {
left_to_right;
field RECSMALL;
field PAD {reset 1}
field HUGEN;
field CRCEN {reset 1}
field DLYCRCEN;
field undocumented {
access other;
}
field FULLD;
field EXDFREN;
field NOBCKOF;
field LOOPBCK;
field IFG;
field PRO;
field IAM;
field BRO;
field NOPRE;
field TXEN;
field RXEN;
}
register IPGT {
field IPGT {bits 7; reset 0x12}
}
register IPGR1 {
field IPGR1 {bits 7; reset 0x0C}
}
register IPGR2 {
field IPGR2 {bits 7; reset 0x12}
}
register PACKETLEN {
left_to_right;
field MINFL {
bits 16;
reset 0x0040;
constraint spec {
value == 'h40;
}
}
field MAXFL {
bits 16;
reset 0x0600;
constraint spec {
value == 'h600;
}
}
}
register COLLCONF {
left_to_right;
field MAXRET (COLLCONF_2.DataOut) {bits 4; reset 0xF}
field reserved {bits 10}
field COLLVALID (COLLCONF_0.DataOut) {bits 6; reset 0x3F}
}
register TX_BD_NUM {
field TX_BD_NUM {
bits 8;
reset 0x40;
access other;
constraint hardware {
value <= 'h80;
}
}
}
register CTRLMODER {
left_to_right;
field TXFLOW {bits 1}
field RXFLOW {bits 1}
field PASSALL {bits 1}
}
register MIIMODER {
left_to_right;
field MIINOPRE {bits 1}
field CLKDIV {bits 8; reset 0x64}
}
register MIICOMMAND {
left_to_right;
field WCTRLDATA {bits 1; access other}
field RSTAT {bits 1; access other}
field SCANSTAT {bits 1; access other}
}
register MIIADDRESS {
left_to_right;
field RGAD (MIIADDRESS_1.DataOut) {bits 5}
field reserved {bits 3}
field FIAD (MIIADDRESS_0.DataOut) {bits 5}
}
register MIITX_DATA {
field CTRLDATA {bits 16}
}
register MIIRX_DATA {
field PRSD {bits 16; access ru}
}
register MIISTATUS {
left_to_right;
field NVALID {bits 1; access ro}
field BUSY_N {bits 1; access ro}
field LINKFAIL {bits 1; access ro}
}
register MAC_ADDR {
field MAC_ADDR {bits 48};
}
register HASH0 {
field HASH0 {bits 32}
}
register HASH1 {
field HASH1 {bits 32}
}
register TXCTRL {
left_to_right;
field TXPAUSEREQ {bits 1}
field TXPAUSETV {bits 16}
}
memory BD {
size 128;
bits 64;
}
block oc_ethernet {
bytes 4;
endian little;
register MODER (ethreg1.MODER_2.DataOut, \
ethreg1.MODER_1.DataOut, \
ethreg1.MODER_0.DataOut);
register INT_SOURCE (ethreg1.irq_rxc, \
ethreg1.irq_txc, \
ethreg1.irq_busy, \
ethreg1.irq_rxe, \
ethreg1.irq_rxb, \
ethreg1.irq_txe, \
ethreg1.irq_txb) {
left_to_right;
field RXC {access w1c}
field TXC {access w1c}
field BUSY {access w1c}
field RXE {access w1c}
field RXB {access w1c}
field TXE {access w1c}
field TXB {access w1c}
}
register INT_MASK (ethreg1.INT_MASK_0.DataOut) {
left_to_right;
field RXC_M;
field TXC_M;
field BUSY_M;
field RXE_M;
field RXB_M;
field TXE_M;
field TXB_M;
}
register IPGT (ethreg1.IPGT_0.DataOut);
register IPGR1 (ethreg1.IPGR1_0.DataOut);
register IPGR2 (ethreg1.IPGR2_0.DataOut);
register PACKETLEN (ethreg1.PACKETLEN_3.DataOut, \
ethreg1.PACKETLEN_2.DataOut, \
ethreg1.PACKETLEN_1.DataOut, \
ethreg1.PACKETLEN_0.DataOut);
register COLLCONF (ethreg1);
register TX_BD_NUM (ethreg1.TX_BD_NUM_0.DataOut);
register CTRLMODER (ethreg1.CTRLMODER_0.DataOut);
register MIIMODER (ethreg1.MIIMODER_1.DataOut, \
ethreg1.MIIMODER_0.DataOut);
register MIICOMMAND (ethreg1.MIICOMMAND2.DataOut, \
ethreg1.MIICOMMAND1.DataOut, \
ethreg1.MIICOMMAND0.DataOut);
register MIIADDRESS (ethreg1);
register MIITX_DATA (ethreg1.MIITX_DATA_1.DataOut, \
ethreg1.MIITX_DATA_0.DataOut);
register MIIRX_DATA (ethreg1.MIIRX_DATA.DataOut)
register MIISTATUS (ethreg1.NValid_stat, \
ethreg1.Busy_stat, \
ethreg1.LinkFail);
register MAC_ADDR (ethreg1.MAC_ADDR1_1.DataOut, \
ethreg1.MAC_ADDR1_0.DataOut, \
ethreg1.MAC_ADDR0_3.DataOut, \
ethreg1.MAC_ADDR0_2.DataOut, \
ethreg1.MAC_ADDR0_1.DataOut, \
ethreg1.MAC_ADDR0_0.DataOut);
register HASH0 (ethreg1.RXHASH0_3.DataOut, \
ethreg1.RXHASH0_2.DataOut, \
ethreg1.RXHASH0_1.DataOut, \
ethreg1.RXHASH0_0.DataOut);
register HASH1 (ethreg1.RXHASH1_3.DataOut, \
ethreg1.RXHASH1_2.DataOut, \
ethreg1.RXHASH1_1.DataOut, \
ethreg1.RXHASH1_0.DataOut);
register TXCTRL (ethreg1.TXCTRL_2.DataOut, \
ethreg1.TXCTRL_1.DataOut, \
ethreg1.TXCTRL_0.DataOut);
memory BD (wishbone.bd_ram.mem) @ 0x0100;
}