急!AM335X连接具有多个PHY的网络芯片只能选择一个网口通讯的问题。

我的板子是AM335X通过MII接了一个RTL8306。

8306的MAC4作为PHY模式MII与335x相连,MAC0~MAC3作为四个RJ45网口。(如图)

功能要求是4个网口皆为交换口,每个口都可以和335X通讯(335X只设置一个IP和MAC地址)。

但目前情况是网口只能通指定的一个。如:

对CPSW的phy_id进行配置,

.phy_id = "0:00",MAC0可通。

.phy_id = "0:01",MAC1可通。如此类推。

用网线单独接其余的网口都不通。(除非网线接了.phy_id 所配置的网口的情况下,用另外的网线再接其余的网口,其余的网口才能通。)

**请问要求4个网口皆为互相交换,每个口都可以和335X通讯(335X只设置一个IP和MAC地址)软件上还要怎么配置??**

static struct cpsw_slave_data am33xx_cpsw_slaves[] = {
{
.slave_reg_ofs = 0x208,
.sliver_reg_ofs = 0xd80,
.phy_id = "0:00",
},
{
.slave_reg_ofs = 0x308,
.sliver_reg_ofs = 0xdc0,
.phy_id = "0:01",
},
};

static struct cpsw_platform_data am33xx_cpsw_pdata = {
.ss_reg_ofs = 0x1200,
.channels = 8,
.cpdma_reg_ofs = 0x800,
.slaves = 2,
.slave_data = am33xx_cpsw_slaves,
.ale_reg_ofs = 0xd00,
.ale_entries = 1024,
.host_port_reg_ofs = 0x108,
.hw_stats_reg_ofs = 0x900,
.bd_ram_ofs = 0x2000,
.bd_ram_size = SZ_8K,
.rx_descs = 64,
.mac_control = BIT(5), /* MIIEN */
.gigabit_en = 1,
.host_port_num = 0,
.no_bd_ram = false,
.version = CPSW_VERSION_2,
};