From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Date: Wed, 26 Oct 2016 12:58:31 -0500 Subject: [U-Boot] [PATCH] fsl_qman: Implement device tree fixup for QBMan on ARM processors In-Reply-To: <1477490479-22387-2-git-send-email-roy.pledge@nxp.com> References: <1477490479-22387-1-git-send-email-roy.pledge@nxp.com> <1477490479-22387-2-git-send-email-roy.pledge@nxp.com> Message-ID: <1477504711.6812.12.camel@buserror.net> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Wed, 2016-10-26 at 10:01 -0400, Roy Pledge wrote: > Add support for device tree fixup for the DPAA1 QBMan nodes in ARM platforms > > Signed-off-by: Roy Pledge > --- > ?arch/arm/cpu/armv8/fsl-layerscape/fdt.c????????????|???89 > ++++++++++++++++++++ > ?.../arm/cpu/armv8/fsl-layerscape/fsl_lsch2_speed.c |????3 + > ?.../include/asm/arch-fsl-layerscape/immap_lsch2.h??|????2 + > ?include/configs/ls1043a_common.h???????????????????|????2 + > ?4 files changed, 96 insertions(+) > > diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c > b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c > index 1a8321b..aedf0e7 100644 > --- a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c > +++ b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c > @@ -25,6 +25,8 @@ > ?#ifdef CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT > ?#include > ?#endif > +#include > +#include > ? > ?int fdt_fixup_phy_connection(void *blob, int offset, phy_interface_t phyc) > ?{ > @@ -32,6 +34,80 @@ int fdt_fixup_phy_connection(void *blob, int offset, > phy_interface_t phyc) > ? ?phy_string_for_interface(phyc)); > ?} > ? > +#if defined(CONFIG_SYS_DPAA_QBMAN) > + > +#define BMAN_IP_REV_1 0xBF8 > +#define BMAN_IP_REV_2 0xBFC > +void fdt_fixup_bportals(void *blob) > +{ > + int off, err; > + unsigned int maj, min; > + unsigned int ip_cfg; > + > + u32 rev_1 = in_be32(CONFIG_SYS_FSL_BMAN_ADDR + BMAN_IP_REV_1); > + u32 rev_2 = in_be32(CONFIG_SYS_FSL_BMAN_ADDR + BMAN_IP_REV_2); > + char compat[64]; > + int compat_len; > + > + maj = (rev_1 >> 8) & 0xff; > + min = rev_1 & 0xff; > + > + ip_cfg = rev_2 & 0xff; > + > + compat_len = sprintf(compat, "fsl,bman-portal-%u.%u.%u", > + ?????maj, min, ip_cfg) + 1; > + compat_len += sprintf(compat + compat_len, "fsl,bman-portal") + 1; > + > + off = fdt_node_offset_by_compatible(blob, -1, "fsl,bman-portal"); > + while (off != -FDT_ERR_NOTFOUND) { > + err = fdt_setprop(blob, off, "compatible", compat, > compat_len); > + if (err < 0) { > + printf("ERROR: unable to create props for %s: > %s\n", > + ???????fdt_get_name(blob, off, NULL), > + ???????fdt_strerror(err)); > + return; > + } > + > + off = fdt_node_offset_by_compatible(blob, off, > + ????"fsl,bman-portal"); > + } > +} Please share code with PPC rather than duplicating it. -Scott