리눅스 보드에 w5500 chip을 on board화 시켜 사용 중 입니다.
디바이스 드라이버는 리눅스 기본 드라이버를 사용 했습니다.
만약 프로그램에서 소켓 client를 4개의 서버에 따로 접속한다고 가정했을 경우,
해당 링크 코드에
https://elixir.bootlin.com/linux/v4.20.10/source/drivers/net/ethernet/wiznet/w5100.c#L655
w5500_memory_configure() 함수를 보면 원본은 하나만 rx, tx 16K씩 세팅하게 되어 있는데, 아래와 같이 4K씩 4개로 나눠 세팅을 하는게 맞는지 궁금합니다.
static void w5500_memory_configure(struct w5100_priv *priv)
{
int i;
for (i = 0; i < 4; i++) {
w5100_write(priv, W5500_Sn_RXMEM_SIZE(i), 0x04);
w5100_write(priv, W5500_Sn_TXMEM_SIZE(i), 0x04);
}
for (i = 4; i < 8; i++) {
w5100_write(priv, W5500_Sn_RXMEM_SIZE(i), 0);
w5100_write(priv, W5500_Sn_TXMEM_SIZE(i), 0);
}
}