
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 roy.pledge@nxp.com
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 <asm/armv8/sec_firmware.h> #endif +#include <asm/io.h> +#include <asm/arch/speed.h> 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