[PATCH v2] arm/dts/aspeed: Add minimal Facebook CMM BMC board based on AST2500

Andrew Jeffery andrew at aj.id.au
Wed Aug 10 14:37:49 AEST 2016


On Wed, 2016-08-10 at 13:28 +0930, Joel Stanley wrote:
> On Wed, Aug 10, 2016 at 12:32 PM, Matthew Conolly <mattconolly at fb.com> wrote:
> > 
> > Minimal device tree for CMM bmc board to boot into a console over UART with some drivers functional.
> Nice. There are a few updates you will need for 4.7.
> 
> > 
> > 
> > Signed-off-by: Matthew Conolly <mattconolly at fb.com>
> > ---
> > 
> > Rebased patch on the openbmc github dev-4.7 branch
> > 
> > v2:
> > Removed commented out eeprom
> > Removed of_machine_is_compatible for LPC/UART config
> > checkpatch whitespace fixup
> > 
> >  arch/arm/boot/dts/Makefile                         |   1 +
> >  .../dts/aspeed-bmc-facebook-cmm-flash-layout.dtsi  |  24 +++++
> >  arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts      | 104 +++++++++++++++++++++
> >  3 files changed, 129 insertions(+)
> >  create mode 100644 arch/arm/boot/dts/aspeed-bmc-facebook-cmm-flash-layout.dtsi
> >  create mode 100644 arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts
> > 
> > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> > index 048fbb5..495ca3d 100644
> > --- a/arch/arm/boot/dts/Makefile
> > +++ b/arch/arm/boot/dts/Makefile
> > @@ -895,6 +895,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += aspeed-bmc-opp-palmetto.dtb \
> >         aspeed-bmc-opp-firestone.dtb \
> >         aspeed-bmc-opp-garrison.dtb \
> >         aspeed-bmc-opp-witherspoon.dtb \
> > +       aspeed-bmc-facebook-cmm.dtb \
> >         aspeed-ast2500-evb.dtb
> >  endif
> > 
> > diff --git a/arch/arm/boot/dts/aspeed-bmc-facebook-cmm-flash-layout.dtsi b/arch/arm/boot/dts/aspeed-bmc-facebook-cmm-flash-layout.dtsi
> > new file mode 100644
> > index 0000000..1b3133f
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/aspeed-bmc-facebook-cmm-flash-layout.dtsi
> > @@ -0,0 +1,24 @@
> > +/* This file is the label for the bmc primary flash and its partitions */
> > +                               label = "bmc";
> > +                               #address-cells = < 1 >;
> > +                               #size-cells = < 1 >;
> > +                               u-boot {
> > +                                       reg = < 0 0x80000 >;
> > +                                       label = "u-boot";
> > +                               };
> > +                               u-boot-env {
> > +                                       reg = < 0x60000 0x20000 >;
> > +                                       label = "u-boot-env";
> > +                               };
> > +                               kernel  {
> > +                                       reg = < 0x80000 0x280000 >;
> > +                                       label = "kernel";
> > +                               };
> > +                               initramfs {
> > +                                       reg = < 0x300000 0x300000 >;
> > +                                       label = "initramfs";
> > +                               };
> > +                               pd_rootfs  {
> > +                                       reg = < 0x4c0000 0x1740000 >;
> > +                                       label = "pd_rootfs";
> > +                               };
> > diff --git a/arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts b/arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts
> > new file mode 100644
> > index 0000000..dcfa303
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts
> > @@ -0,0 +1,104 @@
> > +/dts-v1/;
> > +
> > +#include "aspeed-g5.dtsi"
> > +
> > +/ {
> > +       model = "FACEBOOK CMM BMC";
> > +       compatible = "facebook,cmm-bmc", "aspeed,ast2500";
> > +
> > +       aliases {
> > +               serial1 = &uart1;
> > +       };
> > +
> > +       chosen {
> > +               stdout-path = &uart1;
> > +               bootargs = "console=ttyS1,115200 earlyprintk";
> > +       };
> > +
> > +       memory {
> > +               reg = <0x80000000 0x3f000000>;
> > +       };
> > +
> > +       ahb {
> > +               bmc_pnor: fmc at 1e620000 {
> > +                       reg = < 0x1e620000 0x94
> > +                               0x20000000 0x02000000 >;
> > +                       #address-cells = <1>;
> > +                       #size-cells = <0>;
> > +                       compatible = "aspeed,fmc";
> The compatible string is now aspeed,ast2400-fmc.
> 
> > 
> > +                       flash at 0 {
> > +                               reg = < 0 >;
> > +                               compatible = "jedec,spi-nor" ;
> > +#include "aspeed-bmc-facebook-cmm-flash-layout.dtsi"
> > +                       };
> > +               };
> > +       };
> > +};
> > +
> > +&uart1 {
> > +       status = "okay";
> > +};
> We might need some kind of pinmux configuration for uart1. Andrew?

Yes, looks like we will need a patch adding the pin/group/function
definitions to pinctrl-aspeed-g5.c (GPIOL bank, for reference), and
then add the devicetree directives here to request the mux
configuration. UART1 is one of the "fun" cases where each signal is
enabled by its own unique bit pattern. This case is handled by defining
a group and function for each signal and then requesting them
individually as required in the devicetree.

Matthew: ping me via IRC (amboar in #openbmc) or email if you have
questions on the pinctrl driver. The implementation is... a little
hairy, but I like to think most of the hairiness is driven by the
hardware design.

Cheers,

Andrew

> 
> > 
> > +
> > +&mac0 {
> > +       status = "disabled";
> > +};
> Everything defaults to disabled, so you should be able to omit this.
> 
> > 
> > +
> > +&mac1 {
> > +       status = "okay";
> > +};
> > +
> > +&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";
> > +};
> > +
> > +&i2c9 {
> > +       status = "okay";
> > +};
> > +
> > +&i2c10 {
> > +       status = "okay";
> > +};
> > +
> > +&i2c11 {
> > +       status = "okay";
> > +};
> > +
> > +&i2c12 {
> > +       status = "okay";
> > +};
> > +
> > +&i2c13 {
> > +       status = "okay";
> > +};
> > --
> > 2.8.0.rc2
> > 
> > _______________________________________________
> > openbmc mailing list
> > openbmc at lists.ozlabs.org
> > https://lists.ozlabs.org/listinfo/openbmc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20160810/28da6e1b/attachment.sig>


More information about the openbmc mailing list