Hello,
I have a IMX6ULL based custom board with Yocto, and I am currently facing some problems with DHCP on a bridge interface. The IMX6ULL is connected via RMII to a Marvell 88E6320 switch, which has two external Ethernet ports. Below is my device tree configuration:
&fec1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet1>;
phy-mode = "rmii";
status = "okay";
fixed-link {
speed = <100>;
full-duplex;
};
mdio {
#address-cells = <1>;
#size-cells = <0>;
switch@0 {
compatible = "marvell,mv88e6085";
reg = <0>;
dsa,member = <0 0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_marvell>;
reset-gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@3 {
reg = <3>;
label = "lan3";
};
port@4 {
reg = <4>;
label = "lan4";
};
port@6 {
reg = <6>;
label = "cpu";
ethernet = <&fec1>;
phy-mode = "rmii";
fixed-link {
speed = <100>;
full-duplex;
};
};
};
};
};
};
To create a bridge (with lan3 connected to my PC and lan4 connected to my home switch), I run the following commands:
ip link set lan3 up
ip link set lan4 up
ip link add br0 type bridge
ip link set br0 up
ip link set lan3 master br0
ip link set lan4 master br0
Then I try to request a DHCP lease and I get this output:
root@imx6ull-test:~# udhcpc -i br0
udhcpc: started, v1.36.1
Dropped protocol specifier '.udhcpc' from 'br0.udhcpc'. Using 'br0' (ifindex=6).
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: no lease, failing
However, if I restart the board and run DHCP directly on lan4:
ip link set lan4 up
udhcpc -i lan4
I do get an IP address from my home DHCP server as expected.
Is there something wrong with how I'm configuring the bridge?