Message ID | 20220324164551.359570-1-quic_jaehyoo@quicinc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ARM: dts: aspeed: add Nuvia DC-SCM BMC | expand |
On Thu, Mar 24, 2022 at 09:45:51AM -0700, Jae Hyun Yoo wrote: > From: Graeme Gregory <quic_ggregory@quicinc.com> > > +&mac2 { > + status = "okay"; > + > + phy-mode = "rgmii"; Are you sure about this? That PHY are you using? It is more normal to use rgmii-id. Andrew
Hi Andrew, On 3/24/2022 2:23 PM, Andrew Lunn wrote: > On Thu, Mar 24, 2022 at 09:45:51AM -0700, Jae Hyun Yoo wrote: >> From: Graeme Gregory <quic_ggregory@quicinc.com> >> >> +&mac2 { >> + status = "okay"; >> + >> + phy-mode = "rgmii"; > > Are you sure about this? That PHY are you using? It is more normal to > use rgmii-id. Yes, I'm sure. PHY works with rgmii on my board. I picked a different clock delay setting too. Thanks, Jae
On Thu, Mar 24, 2022 at 02:27:34PM -0700, Jae Hyun Yoo wrote: > Hi Andrew, > > On 3/24/2022 2:23 PM, Andrew Lunn wrote: > > On Thu, Mar 24, 2022 at 09:45:51AM -0700, Jae Hyun Yoo wrote: > > > From: Graeme Gregory <quic_ggregory@quicinc.com> > > > > > > +&mac2 { > > > + status = "okay"; > > > + > > > + phy-mode = "rgmii"; > > > > Are you sure about this? That PHY are you using? It is more normal to > > use rgmii-id. > > Yes, I'm sure. PHY works with rgmii on my board. I picked a different > clock delay setting too. Do you know who is inserting the delay? It looks like rgmii will be passed to the PHY. So there are few possibilities here: The MAC is adding the delay. Not recommended, but does work. In that case, your DT is correct. The bootloader or strapping configures the PHY to insert the delay. The PHY driver then ignores 'rgmii' and leaves the configuration alone. This will break sometime in the future when somebody fixes the PHY driver to actually set the PHY to rgmii as requested. In this case, both the PHY driver and your DT is broken. The board itself inserts the delays by having long tracks. In this case, your DT is correct. It would be good to understand this, just in case it is the second condition. Andrew
On 3/24/2022 3:19 PM, Andrew Lunn wrote: > On Thu, Mar 24, 2022 at 02:27:34PM -0700, Jae Hyun Yoo wrote: >> Hi Andrew, >> >> On 3/24/2022 2:23 PM, Andrew Lunn wrote: >>> On Thu, Mar 24, 2022 at 09:45:51AM -0700, Jae Hyun Yoo wrote: >>>> From: Graeme Gregory <quic_ggregory@quicinc.com> >>>> >>>> +&mac2 { >>>> + status = "okay"; >>>> + >>>> + phy-mode = "rgmii"; >>> >>> Are you sure about this? That PHY are you using? It is more normal to >>> use rgmii-id. >> >> Yes, I'm sure. PHY works with rgmii on my board. I picked a different >> clock delay setting too. > > Do you know who is inserting the delay? It looks like rgmii will be > passed to the PHY. So there are few possibilities here: > > The MAC is adding the delay. Not recommended, but does work. In that > case, your DT is correct. > > The bootloader or strapping configures the PHY to insert the > delay. The PHY driver then ignores 'rgmii' and leaves the > configuration alone. This will break sometime in the future when > somebody fixes the PHY driver to actually set the PHY to rgmii as > requested. In this case, both the PHY driver and your DT is broken. > > The board itself inserts the delays by having long tracks. In this > case, your DT is correct. > > It would be good to understand this, just in case it is the second > condition. Thanks for your kind explanation. The clock delay I mentioned is added into u-boot bootloader in a patch I'm currently trying to submit. https://lore.kernel.org/all/20220324165530.359668-1-quic_jaehyoo@quicinc.com/ I had to pick those value with 'rgmii' to make my board work but the delay is actually different from what AST2600 EVB DT provides. I think it's caused by a different PCB routing and board characteristic like you said. I want to keep this setting as it's acquired from lots of experiments. It could be changed in case if it needs to be fixed in the future. Thanks, Jae
> The clock delay I mentioned is added into u-boot bootloader in a > patch I'm currently trying to submit. > https://lore.kernel.org/all/20220324165530.359668-1-quic_jaehyoo@quicinc.com/ Do you mean this: +&scu { + mac0-clk-delay = <0x1d 0x1c + 0x10 0x17 + 0x10 0x17>; + mac1-clk-delay = <0x1d 0x10 + 0x10 0x10 + 0x10 0x10>; + mac2-clk-delay = <0x0a 0x04 + 0x08 0x04 + 0x08 0x04>; + mac3-clk-delay = <0x0a 0x04 + 0x08 0x04 + 0x08 0x04>; So the MAC is adding the delay. In that case, setting phy-mode to rgmii is O.K, but it would be nice to add a comment in DT that the bootloader is setting up the MAC to insert the delay. Andrew
On 3/24/2022 5:10 PM, Andrew Lunn wrote: >> The clock delay I mentioned is added into u-boot bootloader in a >> patch I'm currently trying to submit. >> https://lore.kernel.org/all/20220324165530.359668-1-quic_jaehyoo@quicinc.com/ > > Do you mean this: > > +&scu { > + mac0-clk-delay = <0x1d 0x1c > + 0x10 0x17 > + 0x10 0x17>; > + mac1-clk-delay = <0x1d 0x10 > + 0x10 0x10 > + 0x10 0x10>; > + mac2-clk-delay = <0x0a 0x04 > + 0x08 0x04 > + 0x08 0x04>; > + mac3-clk-delay = <0x0a 0x04 > + 0x08 0x04 > + 0x08 0x04>; > > So the MAC is adding the delay. In that case, setting phy-mode to > rgmii is O.K, but it would be nice to add a comment in DT that the > bootloader is setting up the MAC to insert the delay. Right. It would be better with the comment. I'll add the comment in v2. Thanks for your suggestion! -Jae
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index ec801dc22b61..22c515ca20f2 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -1486,6 +1486,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \ aspeed-bmc-lenovo-hr630.dtb \ aspeed-bmc-lenovo-hr855xg2.dtb \ aspeed-bmc-microsoft-olympus.dtb \ + aspeed-bmc-nuvia-dc-scm.dtb \ aspeed-bmc-opp-lanyang.dtb \ aspeed-bmc-opp-mihawk.dtb \ aspeed-bmc-opp-mowgli.dtb \ diff --git a/arch/arm/boot/dts/aspeed-bmc-nuvia-dc-scm.dts b/arch/arm/boot/dts/aspeed-bmc-nuvia-dc-scm.dts new file mode 100644 index 000000000000..54ac6b30c213 --- /dev/null +++ b/arch/arm/boot/dts/aspeed-bmc-nuvia-dc-scm.dts @@ -0,0 +1,188 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +// Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. + +/dts-v1/; + +#include "aspeed-g6.dtsi" + +/ { + model = "Nuvia DC-SCM BMC"; + compatible = "nuvia,dc-scm-bmc", "aspeed,ast2600"; + + aliases { + serial4 = &uart5; + }; + + chosen { + bootargs = "console=ttyS4,115200n8"; + }; + + memory@80000000 { + device_type = "memory"; + reg = <0x80000000 0x40000000>; + }; +}; + +&mdio3 { + status = "okay"; + + ethphy3: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + }; +}; + +&mac2 { + status = "okay"; + + phy-mode = "rgmii"; + phy-handle = <ðphy3>; + + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_rgmii3_default>; +}; + +&mac3 { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_rmii4_default>; + + use-ncsi; +}; + +&rtc { + status = "okay"; +}; + +&fmc { + status = "okay"; + + flash@0 { + status = "okay"; + m25p,fast-read; + label = "bmc"; + spi-max-frequency = <133000000>; +#include "openbmc-flash-layout-64.dtsi" + }; + + flash@1 { + status = "okay"; + m25p,fast-read; + label = "alt-bmc"; + spi-max-frequency = <133000000>; +#include "openbmc-flash-layout-64-alt.dtsi" + }; +}; + +&spi1 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_spi1_default>; + + flash@0 { + status = "okay"; + m25p,fast-read; + label = "bios"; + spi-max-frequency = <133000000>; + }; +}; + +&gpio0 { + gpio-line-names = + /*A0-A7*/ "","","","","","","","", + /*B0-B7*/ "BMC_FLASH_MUX_SEL","","","","","","","", + /*C0-C7*/ "","","","","","","","", + /*D0-D7*/ "","","","","","","","", + /*E0-E7*/ "","","","","","","","", + /*F0-F7*/ "","","","","","","","", + /*G0-G7*/ "","","","","","","","", + /*H0-H7*/ "","","","","","","","", + /*I0-I7*/ "","","","","","","","", + /*J0-J7*/ "","","","","","","","", + /*K0-K7*/ "","","","","","","","", + /*L0-L7*/ "","","","","","","","", + /*M0-M7*/ "","","","","","","","", + /*N0-N7*/ "BMC_FWSPI_RST_N","","GPIO_1_BMC_3V3","","","","","", + /*O0-O7*/ "JTAG_MUX_A","JTAG_MUX_B","","","","","","", + /*P0-P7*/ "","","","","","","","", + /*Q0-Q7*/ "","","","","","","","", + /*R0-R7*/ "","","","","","","","", + /*S0-S7*/ "","","","","","","","", + /*T0-T7*/ "","","","","","","","", + /*U0-U7*/ "","","","","","","","", + /*V0-V7*/ "","","","SCMFPGA_SPARE_GPIO1_3V3", + "SCMFPGA_SPARE_GPIO2_3V3","SCMFPGA_SPARE_GPIO3_3V3", + "SCMFPGA_SPARE_GPIO4_3V3","SCMFPGA_SPARE_GPIO5_3V3", + /*W0-W7*/ "","","","","","","","", + /*X0-X7*/ "","","","","","","","", + /*Y0-Y7*/ "","","","","","","","", + /*Z0-Z7*/ "","","","","","","","", + /*AA0-AA7*/ "","","","","","","","", + /*AB0-AB7*/ "","","","","","","","", + /*AC0-AC7*/ "","","","","","","",""; +}; + +&gpio1 { + gpio-line-names = + /*A0-A7*/ "GPI_1_BMC_1V8","","","","","", + "SCMFPGA_SPARE_GPIO1_1V8","SCMFPGA_SPARE_GPIO2_1V8", + /*B0-B7*/ "SCMFPGA_SPARE_GPIO3_1V8","SCMFPGA_SPARE_GPIO4_1V8", + "SCMFPGA_SPARE_GPIO5_1V8","","","","","", + /*C0-C7*/ "","","","","","","","", + /*D0-D7*/ "","BMC_SPI1_RST_N","BIOS_FLASH_MUX_SEL","", + "","TPM2_PIRQ_N","TPM2_RST_N","", + /*E0-E7*/ "","","","","","","",""; +}; + +&i2c2 { + status = "okay"; +}; + +&i2c4 { + status = "okay"; +}; + +&i2c5 { + status = "okay"; +}; + +&i2c6 { + status = "okay"; +}; + +&i2c7 { + status = "okay"; +}; + +&i2c8 { + status = "okay"; +}; + +&i2c9 { + status = "okay"; +}; + +&i2c10 { + status = "okay"; +}; + +&i2c12 { + status = "okay"; +}; + +&i2c13 { + status = "okay"; +}; + +&i2c14 { + status = "okay"; +}; + +&i2c15 { + status = "okay"; +}; + +&vhub { + status = "okay"; +};