Lines Matching full:dump

31  * interpret the binary dumpspec and populate the dump data in a deterministic
57 __be32 offset; /* address to start dump */
58 __be32 dump_length; /* total bytes to dump, aligned to reg size */
109 /* to track state during debug dump creation TLV traversal */
114 void *p; /* current point in dump buffer */
182 nfp_warn(cpp, "Debug dump specification read failed.\n"); in nfp_net_dump_load_dumpspec()
334 static int nfp_add_tlv(u32 type, u32 total_tlv_sz, struct nfp_dump_state *dump) in nfp_add_tlv() argument
336 struct nfp_dump_tl *tl = dump->p; in nfp_add_tlv()
338 if (total_tlv_sz > dump->buf_size) in nfp_add_tlv()
341 if (dump->buf_size - total_tlv_sz < dump->dumped_size) in nfp_add_tlv()
347 dump->dumped_size += total_tlv_sz; in nfp_add_tlv()
348 dump->p += total_tlv_sz; in nfp_add_tlv()
355 struct nfp_dump_state *dump) in nfp_dump_error_tlv() argument
357 struct nfp_dump_error *dump_header = dump->p; in nfp_dump_error_tlv()
364 err = nfp_add_tlv(NFP_DUMPSPEC_TYPE_ERROR, total_size, dump); in nfp_dump_error_tlv()
374 static int nfp_dump_fwname(struct nfp_pf *pf, struct nfp_dump_state *dump) in nfp_dump_fwname() argument
376 struct nfp_dump_tl *dump_header = dump->p; in nfp_dump_fwname()
385 err = nfp_add_tlv(NFP_DUMPSPEC_TYPE_FWNAME, total_size, dump); in nfp_dump_fwname()
396 struct nfp_dump_state *dump) in nfp_dump_hwinfo() argument
398 struct nfp_dump_tl *dump_header = dump->p; in nfp_dump_hwinfo()
407 err = nfp_add_tlv(NFP_DUMPSPEC_TYPE_HWINFO, total_size, dump); in nfp_dump_hwinfo()
417 struct nfp_dump_state *dump) in nfp_dump_hwinfo_field() argument
419 struct nfp_dump_tl *dump_header = dump->p; in nfp_dump_hwinfo_field()
428 return nfp_dump_error_tlv(spec, -EINVAL, dump); in nfp_dump_hwinfo_field()
433 return nfp_dump_error_tlv(spec, -ENOENT, dump); in nfp_dump_hwinfo_field()
437 err = nfp_add_tlv(NFP_DUMPSPEC_TYPE_HWINFO_FIELD, total_size, dump); in nfp_dump_hwinfo_field()
455 struct nfp_dump_state *dump) in nfp_dump_csr_range() argument
459 struct nfp_dump_csr *dump_header = dump->p; in nfp_dump_csr_range()
468 return nfp_dump_error_tlv(spec_csr_tl, -EINVAL, dump); in nfp_dump_csr_range()
474 dest = dump->p + header_size; in nfp_dump_csr_range()
476 err = nfp_add_tlv(be32_to_cpu(spec_csr_tl->type), total_size, dump); in nfp_dump_csr_range()
560 struct nfp_dump_state *dump) in nfp_dump_indirect_csr_range() argument
564 struct nfp_dump_csr *dump_header = dump->p; in nfp_dump_indirect_csr_range()
572 return nfp_dump_error_tlv(spec_csr_tl, -EINVAL, dump); in nfp_dump_indirect_csr_range()
579 dest = dump->p + header_size; in nfp_dump_indirect_csr_range()
581 err = nfp_add_tlv(be32_to_cpu(spec_csr_tl->type), total_size, dump); in nfp_dump_indirect_csr_range()
607 struct nfp_dump_state *dump) in nfp_dump_single_rtsym() argument
611 struct nfp_dump_rtsym *dump_header = dump->p; in nfp_dump_single_rtsym()
624 return nfp_dump_error_tlv(spec_tl, -EINVAL, dump); in nfp_dump_single_rtsym()
628 return nfp_dump_error_tlv(spec_tl, -ENOENT, dump); in nfp_dump_single_rtsym()
634 dest = dump->p + header_size; in nfp_dump_single_rtsym()
636 err = nfp_add_tlv(be32_to_cpu(spec_tl->type), total_size, dump); in nfp_dump_single_rtsym()
668 struct nfp_dump_state *dump = param; in nfp_dump_for_tlv() local
674 err = nfp_dump_fwname(pf, dump); in nfp_dump_for_tlv()
682 err = nfp_dump_csr_range(pf, spec_csr, dump); in nfp_dump_for_tlv()
688 err = nfp_dump_indirect_csr_range(pf, spec_csr, dump); in nfp_dump_for_tlv()
694 err = nfp_dump_single_rtsym(pf, spec_rtsym, dump); in nfp_dump_for_tlv()
699 err = nfp_dump_hwinfo(pf, tl, dump); in nfp_dump_for_tlv()
704 err = nfp_dump_hwinfo_field(pf, tl, dump); in nfp_dump_for_tlv()
709 err = nfp_dump_error_tlv(tl, -EOPNOTSUPP, dump); in nfp_dump_for_tlv()
721 struct nfp_dump_state *dump = param; in nfp_dump_specific_level() local
723 if (dump_level->type != dump->requested_level) in nfp_dump_specific_level()
727 be32_to_cpu(dump_level->length), dump, in nfp_dump_specific_level()
731 static int nfp_dump_populate_prolog(struct nfp_dump_state *dump) in nfp_dump_populate_prolog() argument
733 struct nfp_dump_prolog *prolog = dump->p; in nfp_dump_populate_prolog()
739 err = nfp_add_tlv(NFP_DUMPSPEC_TYPE_PROLOG, total_size, dump); in nfp_dump_populate_prolog()
743 prolog->dump_level = dump->requested_level; in nfp_dump_populate_prolog()
751 struct nfp_dump_state dump; in nfp_net_dump_populate_buffer() local
754 dump.requested_level = cpu_to_be32(dump_param->flag); in nfp_net_dump_populate_buffer()
755 dump.dumped_size = 0; in nfp_net_dump_populate_buffer()
756 dump.p = dest; in nfp_net_dump_populate_buffer()
757 dump.buf_size = dump_param->len; in nfp_net_dump_populate_buffer()
759 err = nfp_dump_populate_prolog(&dump); in nfp_net_dump_populate_buffer()
763 err = nfp_traverse_tlvs(pf, spec->data, spec->size, &dump, in nfp_net_dump_populate_buffer()
768 /* Set size of actual dump, to trigger warning if different from in nfp_net_dump_populate_buffer()
771 dump_param->len = dump.dumped_size; in nfp_net_dump_populate_buffer()