Lines Matching +full:binary +full:- +full:coded

4  * Redistribution and use in source and binary forms, with or without
8 * * Redistributions in binary form must reproduce the above copyright
123 /* Hard-coded configuration:
124 * These values are used as hard-coded values for KeyGen configuration
125 * and they replace user selections for this hard-coded version
136 * - the value for symmetric hash usage must be in accordance with hash
138 * - according to tests performed, spreading is not working if symmetric
234 * Must be between 1 and 2^24-1
274 iowrite32be(fmkg_ar, &regs->fmkg_ar); in keygen_write_ar_wait()
278 fmkg_ar = ioread32be(&regs->fmkg_ar); in keygen_write_ar_wait()
281 return -EINVAL; in keygen_write_ar_wait()
342 tmp = ioread32be(&regs->fmkg_pe.fmkg_pe_sp); in keygen_write_sp()
349 iowrite32be(tmp, &regs->fmkg_pe.fmkg_pe_sp); in keygen_write_sp()
383 iowrite32be(cpp, &regs->fmkg_pe.fmkg_pe_cpp); in keygen_write_cpp()
405 iowrite32be(scheme_regs->kgse_mode, &regs->fmkg_sch.kgse_mode); in keygen_write_scheme()
406 iowrite32be(scheme_regs->kgse_ekfc, &regs->fmkg_sch.kgse_ekfc); in keygen_write_scheme()
407 iowrite32be(scheme_regs->kgse_ekdv, &regs->fmkg_sch.kgse_ekdv); in keygen_write_scheme()
408 iowrite32be(scheme_regs->kgse_bmch, &regs->fmkg_sch.kgse_bmch); in keygen_write_scheme()
409 iowrite32be(scheme_regs->kgse_bmcl, &regs->fmkg_sch.kgse_bmcl); in keygen_write_scheme()
410 iowrite32be(scheme_regs->kgse_fqb, &regs->fmkg_sch.kgse_fqb); in keygen_write_scheme()
411 iowrite32be(scheme_regs->kgse_hc, &regs->fmkg_sch.kgse_hc); in keygen_write_scheme()
412 iowrite32be(scheme_regs->kgse_ppc, &regs->fmkg_sch.kgse_ppc); in keygen_write_scheme()
413 iowrite32be(scheme_regs->kgse_spc, &regs->fmkg_sch.kgse_spc); in keygen_write_scheme()
414 iowrite32be(scheme_regs->kgse_dv0, &regs->fmkg_sch.kgse_dv0); in keygen_write_scheme()
415 iowrite32be(scheme_regs->kgse_dv1, &regs->fmkg_sch.kgse_dv1); in keygen_write_scheme()
416 iowrite32be(scheme_regs->kgse_ccbs, &regs->fmkg_sch.kgse_ccbs); in keygen_write_scheme()
417 iowrite32be(scheme_regs->kgse_mv, &regs->fmkg_sch.kgse_mv); in keygen_write_scheme()
418 iowrite32be(scheme_regs->kgse_om, &regs->fmkg_sch.kgse_om); in keygen_write_scheme()
419 iowrite32be(scheme_regs->kgse_vsp, &regs->fmkg_sch.kgse_vsp); in keygen_write_scheme()
422 iowrite32be(scheme_regs->kgse_gec[i], in keygen_write_scheme()
423 &regs->fmkg_sch.kgse_gec[i]); in keygen_write_scheme()
443 * Return: 0 on success, -EINVAL when the are no available free schemes
450 if (!keygen->schemes[i].used) { in get_free_scheme_id()
455 return -EINVAL; in get_free_scheme_id()
472 return &keygen->schemes[scheme_id]; in get_scheme()
489 struct fman_kg_regs __iomem *keygen_regs = keygen->keygen_regs; in keygen_bind_port_to_schemes()
498 return -EINVAL; in keygen_bind_port_to_schemes()
500 if (!scheme->used) { in keygen_bind_port_to_schemes()
502 return -EINVAL; in keygen_bind_port_to_schemes()
505 schemes_vector |= 1 << (31 - scheme_id); in keygen_bind_port_to_schemes()
507 ar_reg = build_ar_bind_scheme(scheme->hw_port_id, false); in keygen_bind_port_to_schemes()
516 ar_reg = build_ar_bind_scheme(scheme->hw_port_id, true); in keygen_bind_port_to_schemes()
539 struct fman_kg_regs __iomem *keygen_regs = keygen->keygen_regs; in keygen_scheme_setup()
548 return -EINVAL; in keygen_scheme_setup()
550 if (enable && scheme->used) { in keygen_scheme_setup()
552 return -EINVAL; in keygen_scheme_setup()
570 scheme_regs.kgse_mv = scheme->match_vector; in keygen_scheme_setup()
577 /* Configure Hard-Coded Rx Hashing: */ in keygen_scheme_setup()
579 if (scheme->use_hashing) { in keygen_scheme_setup()
598 tmp_reg |= ((scheme->hash_fqid_count - 1) << in keygen_scheme_setup()
600 tmp_reg |= scheme->hashShift << KG_SCH_HASH_CONFIG_SHIFT_SHIFT; in keygen_scheme_setup()
602 if (scheme->symmetric_hash) { in keygen_scheme_setup()
605 * But because extraction is hard-coded, we are sure in keygen_scheme_setup()
621 tmp_reg |= scheme->base_fqid; in keygen_scheme_setup()
624 /* features not used by hard-coded configuration */ in keygen_scheme_setup()
637 scheme->used = enable; in keygen_scheme_setup()
663 keygen->keygen_regs = keygen_regs; in keygen_init()
668 iowrite32be(ENQUEUE_KG_DFLT_NIA, &keygen_regs->fmkg_gcr); in keygen_init()
671 &keygen_regs->fmkg_eer); in keygen_init()
673 iowrite32be(0, &keygen_regs->fmkg_fdor); in keygen_init()
674 iowrite32be(0, &keygen_regs->fmkg_gdv0r); in keygen_init()
675 iowrite32be(0, &keygen_regs->fmkg_gdv1r); in keygen_init()
693 iowrite32be(0xFFFFFFFF, &keygen_regs->fmkg_seer); in keygen_init()
694 iowrite32be(0xFFFFFFFF, &keygen_regs->fmkg_seeer); in keygen_init()
697 iowrite32be(ioread32be(&keygen_regs->fmkg_gcr) | FM_KG_KGGCR_EN, in keygen_init()
698 &keygen_regs->fmkg_gcr); in keygen_init()
724 pr_err("Base FQID must be between 1 and 2^24-1\n"); in keygen_port_hashing_init()
725 return -EINVAL; in keygen_port_hashing_init()
727 if (hash_size == 0 || (hash_size & (hash_size - 1)) != 0) { in keygen_port_hashing_init()
729 return -EINVAL; in keygen_port_hashing_init()
736 return -EINVAL; in keygen_port_hashing_init()
739 /* Create and configure Hard-Coded Scheme: */ in keygen_port_hashing_init()
744 return -EINVAL; in keygen_port_hashing_init()
746 if (scheme->used) { in keygen_port_hashing_init()
748 return -EINVAL; in keygen_port_hashing_init()
757 scheme->hw_port_id = hw_port_id; in keygen_port_hashing_init()
758 scheme->use_hashing = true; in keygen_port_hashing_init()
759 scheme->base_fqid = hash_base_fqid; in keygen_port_hashing_init()
760 scheme->hash_fqid_count = hash_size; in keygen_port_hashing_init()
761 scheme->symmetric_hash = DEFAULT_SYMMETRIC_HASH; in keygen_port_hashing_init()
762 scheme->hashShift = DEFAULT_HASH_SHIFT; in keygen_port_hashing_init()
764 /* All Schemes in hard-coded configuration in keygen_port_hashing_init()
767 scheme->match_vector = 0; in keygen_port_hashing_init()