On Tue, Jul 9, 2019 at 3:33 PM Joe Hershberger <joe.hershber...@gmail.com> wrote: > > On Wed, May 15, 2019 at 4:10 AM Florinel Iordache > <florinel.iorda...@nxp.com> wrote: > > > > Add support for DPSPARSER object (create/destroy, open/close, apply spb) > > required to configure Soft Parser by using MC. Also add uboot command to > > apply a Soft Parser Blob by using a command like: fsl_mc apply spb > > <spb_load_addr> > > > > Signed-off-by: Florinel Iordache <florinel.iorda...@nxp.com> > > --- > > drivers/net/fsl-mc/Kconfig | 12 ++ > > drivers/net/fsl-mc/Makefile | 4 +- > > drivers/net/fsl-mc/dpsparser.c | 138 ++++++++++++++++++++ > > drivers/net/fsl-mc/mc.c | 272 > > +++++++++++++++++++++++++++++++++++++--- > > include/fsl-mc/fsl_dpsparser.h | 208 ++++++++++++++++++++++++++++++ > > include/fsl-mc/fsl_mc_private.h | 17 ++- > > 6 files changed, 629 insertions(+), 22 deletions(-) > > create mode 100644 drivers/net/fsl-mc/dpsparser.c > > create mode 100644 include/fsl-mc/fsl_dpsparser.h > > > > [ ... ] > > > +int mc_apply_spb(u64 mc_spb_addr) > > +{ > > + int err = 0; > > + u16 error, err_arr_size; > > + u64 mc_spb_offset; > > + u32 spb_size; > > + struct sp_blob_header *sp_blob; > > + u64 mc_ram_addr = mc_get_dram_addr(); > > + > > + if (!is_dpsparser_supported()) > > + return 0; > > + > > + if (!mc_spb_addr) { > > + printf("fsl-mc: Invalid Blob address\n"); > > + return -1; > > + } > > + > > +#ifdef CONFIG_MC_DRAM_SPB_OFFSET > > + mc_spb_offset = CONFIG_MC_DRAM_SPB_OFFSET; > > +#else > > +#error "CONFIG_MC_DRAM_SPB_OFFSET not defined" > > +#endif > > + > > + // Read blob header and get size of SPB blob > > + sp_blob = (struct sp_blob_header *)mc_spb_addr; > > + spb_size = le32_to_cpu(sp_blob->length); > > + if (spb_size > CONFIG_MC_SPB_MAX_SIZE) { > > + printf("\nfsl-mc: ERROR: Bad SPB image (too large: %d)\n", > > + spb_size); > > + return -EINVAL; > > + } > > + > > + mc_copy_image("MC SP Blob", mc_spb_addr, spb_size, > > + mc_ram_addr + mc_spb_offset); > > This function is only available #ifndef CONFIG_SYS_LS_MC_FW_IN_DDR > > This is breaking the ls2080a_emu build.
Any update or should I drop this series from the release? Thanks, -Joe > > > + > > + //Invoke MC command to apply SPB blob > > + printf("fsl-mc: Applying soft parser blob... "); > > + err = dpsparser_apply_spb(dflt_mc_io, MC_CMD_NO_FLAGS, > > dpsparser_handle, > > + mc_spb_offset, &error); > > + if (err) > > + return err; > > + > > + if (error == 0) { > > + printf("SUCCESS\n"); > > + } else { > > + printf("FAILED with error code = %d:\n", error); > > + err_arr_size = (u16)ARRAY_SIZE(mc_err_msg_apply_spb); > > + > > + if (error > 0 && error < err_arr_size) > > + printf(mc_err_msg_apply_spb[error]); > > + else > > + printf(MC_ERROR_MSG_SPB_UNKNOWN); > > + } > > + > > + return err; > > +} > > + > > > [ ... ] _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot