Message ID | 20211026200058.2183-1-aladyshev22@gmail.com |
---|---|
State | New |
Headers | show |
Series | ARM: dts: aspeed: Add AMD DaytonaX BMC | expand |
Hello Konstantin, On Tue, 26 Oct 2021 at 20:01, Konstantin Aladyshev <aladyshev22@gmail.com> wrote: > > Add initial version of device tree for the BMC in the AMD DaytonaX > platform. > > AMD DaytonaX platform is a customer reference board (CRB) with an > Aspeed ast2500 BMC manufactured by AMD. > > Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com> This looks good. I have one comment about the GPIOs below. > +&gpio { > + status = "okay"; > + gpio-line-names = > + /*A0-A7*/ "","","FAULT_LED","","","","","", > + /*B0-B7*/ "","","","","","","","", > + /*C0-C7*/ "CHASSIS_ID_BTN","","","","","","","", > + /*D0-D7*/ "","","ASSERT_BMC_READY","","","","","", > + /*E0-E7*/ "MON_P0_RST_BTN","ASSERT_RST_BTN","MON_P0_PWR_BTN","ASSERT_PWR_BTN","", > + "MON_P0_PWR_GOOD","MON_PWROK","", For systems that will run openbmc, we try to use naming conventions from this document: https://github.com/openbmc/docs/blob/master/designs/device-tree-gpio-naming.md If a GPIO is missing from that doc I encourage you to add it.
Thanks for the comments. Can I ask you some questions about this `device-tree-gpio-naming.md`? 1) First of all in my naming I've tried to use naming scheme the same as the EthanolX CRB DTS currently has (https://github.com/torvalds/linux/blob/d25f27432f80a800a3592db128254c8140bd71bf/arch/arm/boot/dts/aspeed-bmc-amd-ethanolx.dts#L102). Do you want me to change GPIO naming in the EthanolX CRB as well? 2) Also this naming comes from the signal names in the board schematics. This way it is clear to check schematics vs DTS. If we use this OpenBMC naming style, we will lose that correspondence. Is it really good? 3) In the initial version of the DTS file I've supplied only a minimal set of GPIO, that are used by OpenBMC. GPIOs for x86-power-control app and led id/fault gpios. With renaming these GPIOs I'm only sure about these GPIOs: FAULT_LED - led-fault CHASSIS_ID_BTN - led-identify What about the rest? For example the document doesn't really state what the *-button postfix states? Is it for asserting or monitoring buttons? How should I name these signals? ASSERT_BMC_READY ASSERT_RST_BTN ASSERT_PWR_BTN MON_P0_RST_BTN MON_P0_PWR_BTN MON_P0_PWR_GOOD MON_PWROK Can you help me with those? 4) And what should I do to the board GPIO signals that OpenBMC doesn't use? If you look at the EthanolX CRB DTS (https://github.com/torvalds/linux/blob/d25f27432f80a800a3592db128254c8140bd71bf/arch/arm/boot/dts/aspeed-bmc-amd-ethanolx.dts#L102) it has a ton of GPIOs. Should they be renamed to this OpenBMC style as well? Or can they be named exactly like in the schematics? I've also CCed original author of the `device-tree-gpio-naming.md` document Andrew Geissler. Andrew, can you please provide your opinion on the subject? Best regards, Konstantin Aladyshev On Wed, Oct 27, 2021 at 12:03 AM Joel Stanley <joel@jms.id.au> wrote: > > Hello Konstantin, > > On Tue, 26 Oct 2021 at 20:01, Konstantin Aladyshev > <aladyshev22@gmail.com> wrote: > > > > Add initial version of device tree for the BMC in the AMD DaytonaX > > platform. > > > > AMD DaytonaX platform is a customer reference board (CRB) with an > > Aspeed ast2500 BMC manufactured by AMD. > > > > Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com> > > This looks good. I have one comment about the GPIOs below. > > > +&gpio { > > + status = "okay"; > > + gpio-line-names = > > + /*A0-A7*/ "","","FAULT_LED","","","","","", > > + /*B0-B7*/ "","","","","","","","", > > + /*C0-C7*/ "CHASSIS_ID_BTN","","","","","","","", > > + /*D0-D7*/ "","","ASSERT_BMC_READY","","","","","", > > + /*E0-E7*/ "MON_P0_RST_BTN","ASSERT_RST_BTN","MON_P0_PWR_BTN","ASSERT_PWR_BTN","", > > + "MON_P0_PWR_GOOD","MON_PWROK","", > > For systems that will run openbmc, we try to use naming conventions > from this document: > > https://github.com/openbmc/docs/blob/master/designs/device-tree-gpio-naming.md > > If a GPIO is missing from that doc I encourage you to add it.
On Wed, 27 Oct 2021 at 10:59, Konstantin Aladyshev <aladyshev22@gmail.com> wrote: > > Thanks for the comments. Can I ask you some questions about this > `device-tree-gpio-naming.md`? > > 1) First of all in my naming I've tried to use naming scheme the same > as the EthanolX CRB DTS currently has > (https://github.com/torvalds/linux/blob/d25f27432f80a800a3592db128254c8140bd71bf/arch/arm/boot/dts/aspeed-bmc-amd-ethanolx.dts#L102). > Do you want me to change GPIO naming in the EthanolX CRB as well? Yeah, that would make sense. > 2) Also this naming comes from the signal names in the board > schematics. This way it is clear to check schematics vs DTS. If we use > this OpenBMC naming style, we will lose that correspondence. Is it > really good? This is a good point. The preference is to use human readable names over the schematic net. I can see cases where this would be worse, but hopefully on balance it results in consistent naming between machines. > 3) In the initial version of the DTS file I've supplied only a minimal > set of GPIO, that are used by OpenBMC. GPIOs for x86-power-control app > and led id/fault gpios. With renaming these GPIOs I'm only sure about > these GPIOs: > > FAULT_LED - led-fault > CHASSIS_ID_BTN - led-identify > > What about the rest? For example the document doesn't really state > what the *-button postfix states? Is it for asserting or monitoring > buttons? How should I name these signals? > > ASSERT_BMC_READY > ASSERT_RST_BTN > ASSERT_PWR_BTN > > MON_P0_RST_BTN > MON_P0_PWR_BTN > MON_P0_PWR_GOOD > MON_PWROK > > Can you help me with those? Patrick, do you have thoughts here? > > 4) And what should I do to the board GPIO signals that OpenBMC doesn't > use? If you look at the EthanolX CRB DTS > (https://github.com/torvalds/linux/blob/d25f27432f80a800a3592db128254c8140bd71bf/arch/arm/boot/dts/aspeed-bmc-amd-ethanolx.dts#L102) > it has a ton of GPIOs. Should they be renamed to this OpenBMC style as > well? Or can they be named exactly like in the schematics? That's up to you. > > I've also CCed original author of the `device-tree-gpio-naming.md` > document Andrew Geissler. Andrew, can you please provide your opinion > on the subject? I've also added Patrick, who is helping review this document. Cheers, Joel > > Best regards, > Konstantin Aladyshev > > On Wed, Oct 27, 2021 at 12:03 AM Joel Stanley <joel@jms.id.au> wrote: > > > > Hello Konstantin, > > > > On Tue, 26 Oct 2021 at 20:01, Konstantin Aladyshev > > <aladyshev22@gmail.com> wrote: > > > > > > Add initial version of device tree for the BMC in the AMD DaytonaX > > > platform. > > > > > > AMD DaytonaX platform is a customer reference board (CRB) with an > > > Aspeed ast2500 BMC manufactured by AMD. > > > > > > Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com> > > > > This looks good. I have one comment about the GPIOs below. > > > > > +&gpio { > > > + status = "okay"; > > > + gpio-line-names = > > > + /*A0-A7*/ "","","FAULT_LED","","","","","", > > > + /*B0-B7*/ "","","","","","","","", > > > + /*C0-C7*/ "CHASSIS_ID_BTN","","","","","","","", > > > + /*D0-D7*/ "","","ASSERT_BMC_READY","","","","","", > > > + /*E0-E7*/ "MON_P0_RST_BTN","ASSERT_RST_BTN","MON_P0_PWR_BTN","ASSERT_PWR_BTN","", > > > + "MON_P0_PWR_GOOD","MON_PWROK","", > > > > For systems that will run openbmc, we try to use naming conventions > > from this document: > > > > https://github.com/openbmc/docs/blob/master/designs/device-tree-gpio-naming.md > > > > If a GPIO is missing from that doc I encourage you to add it.
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 7e0934180724..01cfd803d273 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -1457,6 +1457,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \ aspeed-ast2600-evb-a1.dtb \ aspeed-ast2600-evb.dtb \ aspeed-bmc-amd-ethanolx.dtb \ + aspeed-bmc-amd-daytonax.dtb \ aspeed-bmc-ampere-mtjade.dtb \ aspeed-bmc-arm-centriq2400-rep.dtb \ aspeed-bmc-arm-stardragon4800-rep2.dtb \ diff --git a/arch/arm/boot/dts/aspeed-bmc-amd-daytonax.dts b/arch/arm/boot/dts/aspeed-bmc-amd-daytonax.dts new file mode 100644 index 000000000000..93ad4262a786 --- /dev/null +++ b/arch/arm/boot/dts/aspeed-bmc-amd-daytonax.dts @@ -0,0 +1,327 @@ +// SPDX-License-Identifier: GPL-2.0 +// Copyright (c) 2020 AMD Inc. +// Author: Supreeth Venkatesh <supreeth.venkatesh@amd.com> +/dts-v1/; + +#include "aspeed-g5.dtsi" +#include <dt-bindings/gpio/aspeed-gpio.h> + +/ { + model = "AMD DaytonaX BMC"; + compatible = "amd,daytonax-bmc", "aspeed,ast2500"; + + memory@80000000 { + reg = <0x80000000 0x20000000>; + }; + + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + video_engine_memory: jpegbuffer { + size = <0x02000000>; /* 32M */ + alignment = <0x01000000>; + compatible = "shared-dma-pool"; + reusable; + }; + }; + + + aliases { + serial0 = &uart1; + serial4 = &uart5; + }; + chosen { + stdout-path = &uart5; + bootargs = "console=ttyS4,115200 earlycon"; + }; + leds { + compatible = "gpio-leds"; + + fault { + gpios = <&gpio ASPEED_GPIO(A, 2) GPIO_ACTIVE_LOW>; + }; + + identify { + gpios = <&gpio ASPEED_GPIO(A, 3) GPIO_ACTIVE_LOW>; + }; + }; + iio-hwmon { + compatible = "iio-hwmon"; + io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, <&adc 4>, + <&adc 5>, <&adc 6>, <&adc 7>, <&adc 8>, <&adc 9>, + <&adc 10>, <&adc 11>, <&adc 12>, <&adc 13>, <&adc 14>, + <&adc 15>; + }; +}; + +&fmc { + status = "okay"; + flash@0 { + status = "okay"; + m25p,fast-read; + #include "openbmc-flash-layout.dtsi" + }; +}; + + +&mac0 { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_rmii1_default>; + clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>, + <&syscon ASPEED_CLK_MAC1RCLK>; + clock-names = "MACCLK", "RCLK"; +}; + +&uart1 { + //Host Console + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_txd1_default + &pinctrl_rxd1_default>; +}; + +&uart5 { + //BMC Console + status = "okay"; +}; + +&adc { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_adc0_default + &pinctrl_adc1_default + &pinctrl_adc2_default + &pinctrl_adc4_default + &pinctrl_adc5_default + &pinctrl_adc6_default + &pinctrl_adc7_default + &pinctrl_adc8_default + &pinctrl_adc9_default + &pinctrl_adc10_default + &pinctrl_adc11_default + &pinctrl_adc12_default + &pinctrl_adc13_default + &pinctrl_adc14_default + &pinctrl_adc15_default>; +}; + +&gpio { + status = "okay"; + gpio-line-names = + /*A0-A7*/ "","","FAULT_LED","","","","","", + /*B0-B7*/ "","","","","","","","", + /*C0-C7*/ "CHASSIS_ID_BTN","","","","","","","", + /*D0-D7*/ "","","ASSERT_BMC_READY","","","","","", + /*E0-E7*/ "MON_P0_RST_BTN","ASSERT_RST_BTN","MON_P0_PWR_BTN","ASSERT_PWR_BTN","", + "MON_P0_PWR_GOOD","MON_PWROK","", + /*F0-F7*/ "","","","","","","","", + /*G0-G7*/ "","","","","","","","", + /*H0-H7*/ "","","","","","","","", + /*I0-I7*/ "","","","","","","","", + /*J0-J7*/ "","","","","","","","", + /*K0-K7*/ "","","","","","","","", + /*L0-L7*/ "","","","","","","","", + /*M0-M7*/ "","","","","","","","", + /*N0-N7*/ "","","","","","","","", + /*O0-O7*/ "","","","","","","","", + /*P0-P7*/ "","","","","","","","", + /*Q0-Q7*/ "","","","","","","","", + /*R0-R7*/ "","","","","","","","", + /*S0-S7*/ "","","","","","","","", + /*T0-T7*/ "","","","","","","","", + /*U0-U7*/ "","","","","","","","", + /*V0-V7*/ "","","","","","","","", + /*W0-W7*/ "","","","","","","","", + /*X0-X7*/ "","","","","","","","", + /*Y0-Y7*/ "","","","","","","","", + /*Z0-Z7*/ "","","","","","","","", + /*AA0-AA7*/ "","","","","","","","", + /*AB0-AB7*/ "","","","","","","","", + /*AC0-AC7*/ "","","","","","","",""; +}; + +&i2c0 { + status = "okay"; +}; + +&i2c1 { + status = "okay"; +}; + +&i2c2 { + status = "okay"; +}; + +&i2c3 { + status = "okay"; +}; + +&i2c4 { + status = "okay"; +}; + +&i2c5 { + status = "okay"; +}; + +&i2c6 { + status = "okay"; +}; + +&i2c7 { + status = "okay"; +}; + +&i2c8 { + status = "okay"; +}; + +&i2c10 { + status = "okay"; +}; + +&i2c11 { + status = "okay"; +}; + +&i2c12 { + status = "okay"; +}; + +&kcs1 { + status = "okay"; + aspeed,lpc-io-reg = <0x60>; +}; + +&kcs2 { + status = "okay"; + aspeed,lpc-io-reg = <0x62>; +}; + +&kcs3 { + status = "okay"; + aspeed,lpc-io-reg = <0xCA2>; +}; + +&kcs4 { + status = "okay"; + aspeed,lpc-io-reg = <0x97DE>; +}; + +&lpc_snoop { + status = "okay"; + snoop-ports = <0x80>, <0x81>; +}; + +&lpc_ctrl { + //Enable lpc clock + status = "okay"; +}; + +&pwm_tacho { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pwm0_default + &pinctrl_pwm1_default + &pinctrl_pwm2_default + &pinctrl_pwm3_default + &pinctrl_pwm4_default + &pinctrl_pwm5_default + &pinctrl_pwm6_default + &pinctrl_pwm7_default>; + + fan@0 { + reg = <0x00>; + aspeed,fan-tach-ch = /bits/ 8 <0x00>; + }; + + fan@1 { + reg = <0x01>; + aspeed,fan-tach-ch = /bits/ 8 <0x01>; + }; + + fan@2 { + reg = <0x02>; + aspeed,fan-tach-ch = /bits/ 8 <0x02>; + }; + + fan@3 { + reg = <0x03>; + aspeed,fan-tach-ch = /bits/ 8 <0x03>; + }; + + fan@4 { + reg = <0x04>; + aspeed,fan-tach-ch = /bits/ 8 <0x04>; + }; + + fan@5 { + reg = <0x05>; + aspeed,fan-tach-ch = /bits/ 8 <0x05>; + }; + + fan@6 { + reg = <0x06>; + aspeed,fan-tach-ch = /bits/ 8 <0x06>; + }; + + fan@7 { + reg = <0x07>; + aspeed,fan-tach-ch = /bits/ 8 <0x07>; + }; + + fan@8 { + reg = <0x08>; + aspeed,fan-tach-ch = /bits/ 8 <0x08>; + }; + + fan@9 { + reg = <0x09>; + aspeed,fan-tach-ch = /bits/ 8 <0x09>; + }; + + fan@10 { + reg = <0x0a>; + aspeed,fan-tach-ch = /bits/ 8 <0x0a>; + }; + + fan@11 { + reg = <0x0b>; + aspeed,fan-tach-ch = /bits/ 8 <0x0b>; + }; + + fan@12 { + reg = <0x0c>; + aspeed,fan-tach-ch = /bits/ 8 <0x0c>; + }; + + fan@13 { + reg = <0x0d>; + aspeed,fan-tach-ch = /bits/ 8 <0x0d>; + }; + + fan@14 { + reg = <0x0e>; + aspeed,fan-tach-ch = /bits/ 8 <0x0e>; + }; + + fan@15 { + reg = <0x0f>; + aspeed,fan-tach-ch = /bits/ 8 <0x0f>; + }; +}; + +&video { + status = "okay"; + memory-region = <&video_engine_memory>; +}; + +&vhub { + status = "okay"; +}; +
Add initial version of device tree for the BMC in the AMD DaytonaX platform. AMD DaytonaX platform is a customer reference board (CRB) with an Aspeed ast2500 BMC manufactured by AMD. Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com> --- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/aspeed-bmc-amd-daytonax.dts | 327 ++++++++++++++++++ 2 files changed, 328 insertions(+) create mode 100644 arch/arm/boot/dts/aspeed-bmc-amd-daytonax.dts