1. Register map outline
The RBCP memory space from 0xFFFFFF_0000 to 0xFFFFFF_FFFF is reserved for
SiTCP internal use. There is currently defined EEPROM space, Ethernet PHY MIF
interface space and SiTCP register space. This area controls the basic operation of theSiTCP and must be changed after understanding the contents of this document. The
areas without explanation are not recommended for reading as well as writing. Do notchange the undefined bits in the registers either, as they may be extended in thefuture.

1.1. EEPROM space（0xFFFF_FC00～0xFFFF_FCFF）
The EEPROM space can be read at any time, but the EEPROM write-protection must
be released for writing. Write-protection can be released by writing 0x00 to0xFFFFFFFCFF. The value to be written when the write-protect is released isarbitrary at present but should be set to 0x00 to ensure compatibility when expanding
in the future. It is recommended to read/write 16 Bytes or less at a time.
Table.1-1.

EEPROM memory map

address

explanation

0xFFFFFC10～0xFFFFFC4F

Initial value of 0xFFFFFFFF10 to0xFFFFFFFF4F

0xFFFFFCFFWrite 0x00 to release write-protection.

1.2. Ethernet PHY MIF interface space（0xFFFF_FE00～0xFFFF_FEFF）
Write and read access to the PHY registers is possible from this space. For access, MDIOand MDC must be connected to SiTCP and the PHY address must be set (refer to theSiTCP Input/Output Port Manual). If the PHY register is R, it corresponds to the RBCP
addresses 0xFFFF_FE00+2*R and 0xFFFF_FE00+2*R+1. For both read and write
operations, access the registers starting with 0xFFFF_FE00+2*R in sequence. Refer tothe data sheet of the PHY used for the contents of the PHY registers.

1.3. SiTCP register space（0xFFFF_FF00～0xFFFF_FFFF）
This is the area referred to as internal registers and SiTCP control registers in the'SiTCP Manual'. “Details of the SiTCP register space” in the next section.

12. Details of the SiTCP register space
Table 2-1 shows the register map of the SiTCP. Normally these registers are set tostandard values, either by default or by values saved in the EEPROM. Changes should
only be made with full understanding.
Table 2-1.

SiTCP register mapAddress(Difference
fromExplanation

Byte0xFFFF_FF00)
Start

End+0x00+0x03

4SiTCP Library Synthesis Date Register+0x04+0x07

4

SiTCP Library FPGA ID Register+0x08+0x0F

4

SiTCP ID/Version Register+0x10+0x101

SiTCP and TCP Control Register+0x11+0x11

1

Reservation area

+0x12+0x176

MAC Address Register+0x18+0x1B

4IP Address Register

+0x1C

+0x1D

2

TCP Port Number Register (main port)+0x1E+0x1F

2

TCP Port Number Register (sub port)+0x20+0x212

TCP Maximum Segment Size Register+0x22+0x23

2

RBCP Port Number Register+0x24+0x25

2

TCP Keepalive Time (buffer not empty) Register+0x26+0x272

TCP Keepalive Time (buffer empty) Register+0x28+0x29

2

TCP Timeout (Connecting) Register

+0x2A

+0x2B

2

TCP Timeout (Disconnect) Register

+0x2C

+0x2D

2

TCP Maximum Segment Lifetime (MSL) Register

+0x2E

+0x2F

2

TCP Retransmission time Register+0x30+0x35

6

TCP Server MAC Address Register+0x36+0x39

4

TCP Server IP Address Register

+0x3A

+0x3B

2TCP Server Port Number Register+0x3C+0x3F

4

User Area+0x40+0xFF192

Access prohibited area22.1. SiTCP and TCP Control Register
Sets or resets the SiTCP operating mode (Table 2-2). The initial value of this register is0x01. Details are explained in 3.4.1 - 0.
Table 2-2.
Bit

Bit map of control register

SymbolExplanation

address
bit7

SiTCP reset

Reset SiTCP by writing 1.

bit6

Client ARPClient ARP function

1:Enabling 0:Disenabling

bit5

Dup AckDup Ack transmission

1:Enabling 0:Disenabling

bit4

MIF Initializer

MIF initialization function

1:Enabling 0:Disenabling

bit3

MAC flow control

Corresponding PAUSE frame

1:Enabling 0:Disenabling

bit2

Keep alive packet

Keep alive packet transmission function

1:Enabling 0:Disenabling

bit1

Fast retrains.

Fast retransmission

1:Enabling 0:Disenabling

bit0

Nagle buffering

Nagle's algorithm

1:Enabling 0:Disenabling

2.1.1. SiTCP reset （bit7）
Setting this bit to 1 resets and initializes SiTCP and the registers in the same way as
when 1 is input to the RST port of SiTCP. In addition, SiTCP-RST is temporarily heldat 1 after initialization (Refer to the I/O port manual).

2.1.2. Client ARP （bit6）
This bit is used in client mode. Setting it to 1 allows an ARP request to be made to theserver to be connected to and the MAC address is obtained from the ARP replies
returned. In this case, it is not necessary to set the MAC address of the server to beconnected to in 3.17.TCP Server MAC Address Register.

2.1.3. Dup Ack （bit5）
If this bit is set to 1, SiTCP sends ACK packets in approximately 2 msec cycles after
receiving data from the connection partner until the next packet of some kind is received.
If this bit is set to 0, only one ACK is sent for each data transmission from the destination.

2.1.4. MIF Initializer （bit4）
Setting this bit to 1 enables the PHY's (excluding the vendor-dependent part) MIF
initialization using SiTCP to be performed. During auto-negotiation, the link partner's
PHY can be advertised about the enablement of the PAUSE function (bit 3 below) and3

the disablement of half-duplex communication. When this bit is set to 0, these settings
are defaults on the PHY side.
When using the SiTCP register area, the EEPROM area corresponding to this SiTCP
register area (bit 4 of 0xFFFF_FC10) must be set to 1 in advance.
The settings made by SiTCP to the PHY register of the connection destination when
this bit is set to 1 are shown in Table 2-3 to Table 2-5. SiTCP makes settings in the AutoNegotiation advertisement register (Register 4), MASTER-SLAVE control register(Register 9) and Control register (Register 0) in that order.
Table 2-3. Content of settings to Auto-Negotiation advertisement register (Register 4)
Bit

Contentaddress

SiTCP set
value

bit15

Next Page

0

bit14

Reserved0bit13

Remote Fault0

bit12

Extended Next Page

0bit11

Asymmetric PAUSE operation for full duplex Links

bit3 set value

bit10

PAUSE operation for full duplex links

bit3 set value

bit9100BASE-T40bit8100BASE-TX full duplex

1bit7100BASE-TX

0bit610BASE-T full duplex

1bit510BASE-T

0bit4-0

Selector Field

00001

4Table 2-4. Content of settings to MASTER-SLAVE control register (Register 9)
BitContentaddress
bit15-13bit12

SiTCP set value

Test mode bits

000

MASTER-SLAVE Manual Config

0Enablebit11

MASTER-SLAVE Config Value

0bit10Port type0bit91000BASE-T Full Duplex

bit81000BASE-T Half Duplex

bit7-0Reserved

MODE_GMII setvalue (*)
000000000* Value of SiTCP input port MODE_GMII (Refer to input/output port manual).
Table 2-5. Content of settings to Control register (Register 0)
BitContentaddress

SiTCP setvalue

bit15Reset

0bit14Loopback

0bit13

Speed Selection (LSB)

1bit12

Auto-Negotiation Enable

1bit11

Power Down

0bit10Isolate

0bit9

Restart Auto-Negotiation

1bit8Duplex Mode

1bit7Collision Test

0bit6

Speed Selection (MSB)

0bit5-0

Reserved00000052.1.5. MAC flow control （bit3）
This bit enables the PAUSE frame support function of IEEE802.3X, an Ethernet flow
control method. When SiTCP receives a PAUSE frame from a switching hub during datatransmission, it stops data transmission according to the interruption time set in theframe. In addition, data transmission is resumed when a frame with an interruption
time of 0 is received. There is no function to send out PAUSE frames.
Regardless of the result of the negotiation, the setting to this register enables thePAUSE function of SiTCP, but the link partner must be advertised by auto-negotiationthat the PAUSE function is enabled. To use SiTCP for advertising, the MIF initialization
and PAUSE functions must be enabled beforehand (bit 4 and bit 3 of 0xFFFF_FC10, theEEPROM area corresponding to the SiTCP register area, must be set to 1).
By setting this bit to 1, SiTCP sets bit 11 (ASY_PAUSE) and bit 10 (PAUSE) of thePHY's Auto-Negotiation Advertisement Register to 1 when initializing the MIF.
Therefore, the SiTCP will set these two bits to either 11 or 00. For reference, Table 2-6
shows whether PAUSE frames can be sent and received by the local device (SiTCP) andthe link partner (connection partner) for the PAUSE settings.
Table 2-6. PAUSE settings and enabling/ disabling PAUSE frame transmission/reception
Local device settings

Link partner settings

ASY_PAUSE

ASY_PAUSE

0PAUSE0

Don’t Care

PAUSE
Don’t
Care

Enabling/ disabling PAUSE frametransmission/reception
Local device
Sending andreceiving is
not possible
Sending andDon’t Care

1

Don’t Care1

receiving ispossible
Sending and1100

receiving is
not possible
Sending is111

not possible.

0

Receiving ispossible

6Link partner
Sending and receiving
is not possible
Sending and receiving
is possible
Sending and receiving
is not possible
Sending is possible.
Receiving it notpossible.

2.1.6. Keep alive packet （bit2）
This bit enables the TCP Keep alive packet transmission function. If set to 1, Keep alive
packets are sent in the timer cycle set in '3.11.TCP Keep alive Time (buffer not empty)
Register' if there is data in the transmission buffer, or in the timer cycle set in '3.12 TCP
Keepalive Time (buffer empty) Register'.

2.1.7. Fast retrains. （bit1）
If set to 1, Fast retrains mode is switched on. When Fast retrains mode is enabled,
SiTCP retransmits data when it receives a count of four packets with the same ACK
number from the destination even if the TCP retransmission timer (time set in "3.16.
TCP Retransmission time Register") has not expired.

2.1.8. Nagle buffering （bit0）
Setting this bit to 1 enables the Nagle algorithm of TCP. When set to 1, SiTCP sends
out packets when the size of the data to be sent is greater than MSS or after
approximately 4 msec from the start of the write operation. If the data size is small (~ afew dozen Bytes) and the response time needs to be reduced, setting this to 0 may
improve the response time. Usually set to 1.

2.2. TCP Server MAC Address Register
Register for setting the MAC address of the server to connect to, used only in clientmode. The value shown here is output to the TCP_SERVER_MAC_DEFAULT port of theSiTCP library. If the value in the register is to be used as the MAC address of the server
to be connected to, input the value of the TCP_SERVER_MAC_DEFAULT port into theTCP_SERVER_MAC_IN port.
If the Client ARP (bit 6) in “3.4. SiTCP and TCP Control Register” is set to 1, the value
entered in TCP_SERVER_MAC_IN is not applied, because the MAC address is obtained
from the result of an ARP request to the server to be connected.

2.3. TCP Server IP Address Register
Register for setting the IP address of the server to connect to, used only in client mode.
The value shown here is output to the TCP_SERVER_ADDR_DEFAULT port of theSiTCP library. If you want to use the value in the register as the MAC address of theserver to connect to, enter the value of the TCP_SERVER_ADDR_DEFAULT port into
the TCP_SERVER_ADDR_IN port.

7

2.4. TCP Server Port Number Register
Register for setting the TCP port number of the server to connect to, used only in client
mode. The value shown here is output to the TCP_SERVER_PORT_DEFAULT port inthe SiTCP library. If you want to use the value in the register as the MAC address of theserver to connect to, enter the value of the TCP_SERVER_PORT_DEFAULT port into
the TCP_SERVER_PORT_IN port.

8