Lines Matching refs:pcie_port

105 al_pcie_port_wr_to_ro_set(struct al_pcie_port *pcie_port, al_bool enable)  in al_pcie_port_wr_to_ro_set()  argument
113 al_reg_write32(&pcie_port->regs->port_regs->rd_only_wr_en, in al_pcie_port_wr_to_ro_set()
126 struct al_pcie_port *pcie_port, in al_reg_write32_dbi_cs2() argument
131 (pcie_port->rev_id == AL_PCIE_REV_ID_3) ? 0x4000 : 0x1000; in al_reg_write32_dbi_cs2()
151 struct al_pcie_port *pcie_port, in al_pcie_port_link_speed_ctrl_set() argument
154 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_link_speed_ctrl_set()
156 al_pcie_port_wr_to_ro_set(pcie_port, AL_TRUE); in al_pcie_port_link_speed_ctrl_set()
169 al_pcie_port_wr_to_ro_set(pcie_port, AL_FALSE); in al_pcie_port_link_speed_ctrl_set()
174 struct al_pcie_port *pcie_port, in al_pcie_port_link_config() argument
177 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_link_config()
178 uint8_t max_lanes = pcie_port->max_lanes; in al_pcie_port_link_config()
184 pcie_port->port_id, link_params->max_payload_size); in al_pcie_port_link_config()
188 al_pcie_port_link_speed_ctrl_set(pcie_port, link_params->max_speed); in al_pcie_port_link_config()
226 struct al_pcie_port *pcie_port, in al_pcie_port_ram_parity_int_config() argument
229 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_ram_parity_int_config()
243 struct al_pcie_port *pcie_port, in al_pcie_port_axi_parity_int_config() argument
246 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_axi_parity_int_config()
258 if (pcie_port->rev_id >= AL_PCIE_REV_ID_3) in al_pcie_port_axi_parity_int_config()
264 if (pcie_port->rev_id == AL_PCIE_REV_ID_3) { in al_pcie_port_axi_parity_int_config()
306 struct al_pcie_port *pcie_port, in al_pcie_port_relaxed_pcie_ordering_config() argument
309 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_relaxed_pcie_ordering_config()
310 enum al_pcie_operating_mode op_mode = al_pcie_operating_mode_get(pcie_port); in al_pcie_port_relaxed_pcie_ordering_config()
387 struct al_pcie_port *pcie_port, in al_pcie_port_lat_rply_timers_config() argument
390 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_lat_rply_timers_config()
402 struct al_pcie_port *pcie_port) in al_pcie_ib_hcrd_os_ob_reads_config_default() argument
407 switch (al_pcie_operating_mode_get(pcie_port)) { in al_pcie_ib_hcrd_os_ob_reads_config_default()
409 if (pcie_port->rev_id == AL_PCIE_REV_ID_3) { in al_pcie_ib_hcrd_os_ob_reads_config_default()
431 if (pcie_port->rev_id == AL_PCIE_REV_ID_3) { in al_pcie_ib_hcrd_os_ob_reads_config_default()
454 pcie_port->port_id); in al_pcie_ib_hcrd_os_ob_reads_config_default()
458 al_pcie_port_ib_hcrd_os_ob_reads_config(pcie_port, &ib_hcrd_os_ob_reads_config); in al_pcie_ib_hcrd_os_ob_reads_config_default()
464 struct al_pcie_port *pcie_port, in al_pcie_check_link() argument
467 struct al_pcie_regs *regs = (struct al_pcie_regs *)pcie_port->regs; in al_pcie_check_link()
478 pcie_port->port_id, info_0, ltssm_state); in al_pcie_check_link()
490 al_pcie_port_gen2_params_config(struct al_pcie_port *pcie_port, in al_pcie_port_gen2_params_config() argument
493 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_gen2_params_config()
497 pcie_port->port_id, in al_pcie_port_gen2_params_config()
539 al_pcie_port_gen3_params_config(struct al_pcie_port *pcie_port, in al_pcie_port_gen3_params_config() argument
542 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_gen3_params_config()
548 pcie_port->port_id, in al_pcie_port_gen3_params_config()
560 al_pcie_port_wr_to_ro_set(pcie_port, AL_TRUE); in al_pcie_port_gen3_params_config()
567 al_dbg("PCIe %d: Set EQ (0x%08x) for lane %d, %d\n", pcie_port->port_id, eq_control, i, i + 1); in al_pcie_port_gen3_params_config()
571 al_pcie_port_wr_to_ro_set(pcie_port, AL_FALSE); in al_pcie_port_gen3_params_config()
607 if (pcie_port->rev_id == AL_PCIE_REV_ID_3) { in al_pcie_port_gen3_params_config()
632 struct al_pcie_port *pcie_port = pcie_pf->pcie_port; in al_pcie_port_pf_params_config() local
633 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_pf_params_config()
638 al_pcie_port_wr_to_ro_set(pcie_port, AL_TRUE); in al_pcie_port_pf_params_config()
709 pcie_port->port_id, bar_idx, in al_pcie_port_pf_params_config()
723 pcie_port->port_id, bar_idx, in al_pcie_port_pf_params_config()
734 pcie_port->port_id, bar_idx, (uintmax_t)size); in al_pcie_port_pf_params_config()
743 al_reg_write32_dbi_cs2(pcie_port, bar_addr + 1, 0); in al_pcie_port_pf_params_config()
748 al_reg_write32_dbi_cs2(pcie_port, bar_addr , mask); in al_pcie_port_pf_params_config()
760 al_reg_write32_dbi_cs2(pcie_port, bar_addr + 1, mask); in al_pcie_port_pf_params_config()
764 al_reg_write32_dbi_cs2(pcie_port, bar_addr , mask); in al_pcie_port_pf_params_config()
773 if (pcie_port->rev_id != AL_PCIE_REV_ID_3) { in al_pcie_port_pf_params_config()
774 al_err("PCIe %d: Expansion BAR enable not supported\n", pcie_port->port_id); in al_pcie_port_pf_params_config()
783 al_reg_write32_dbi_cs2(pcie_port, exp_rom_bar_addr , mask); in al_pcie_port_pf_params_config()
785 } else if (pcie_port->rev_id == AL_PCIE_REV_ID_3) { in al_pcie_port_pf_params_config()
789 al_reg_write32_dbi_cs2(pcie_port, exp_rom_bar_addr , 0); in al_pcie_port_pf_params_config()
793 if (pcie_port->rev_id == AL_PCIE_REV_ID_1) { in al_pcie_port_pf_params_config()
795 } else if ((pcie_port->rev_id == AL_PCIE_REV_ID_2) || in al_pcie_port_pf_params_config()
796 (pcie_port->rev_id == AL_PCIE_REV_ID_3)) { in al_pcie_port_pf_params_config()
819 if (pcie_port->rev_id == AL_PCIE_REV_ID_1) { in al_pcie_port_pf_params_config()
821 } else if ((pcie_port->rev_id == AL_PCIE_REV_ID_2) || in al_pcie_port_pf_params_config()
822 (pcie_port->rev_id == AL_PCIE_REV_ID_3)) { in al_pcie_port_pf_params_config()
833 al_pcie_port_wr_to_ro_set(pcie_port, AL_FALSE); in al_pcie_port_pf_params_config()
840 struct al_pcie_port *pcie_port, in al_pcie_port_sris_config() argument
845 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_sris_config()
848 sris_params->kp_counter_gen3 = (pcie_port->rev_id > AL_PCIE_REV_ID_1) ? in al_pcie_port_sris_config()
853 pcie_port->port_id, in al_pcie_port_sris_config()
858 switch (pcie_port->rev_id) { in al_pcie_port_sris_config()
878 pcie_port->port_id, al_pcie_speed_gen_code(link_speed), in al_pcie_port_sris_config()
879 pcie_port->rev_id); in al_pcie_port_sris_config()
890 pcie_port->port_id, pcie_port->rev_id); in al_pcie_port_sris_config()
899 al_pcie_port_ib_hcrd_config(struct al_pcie_port *pcie_port) in al_pcie_port_ib_hcrd_config() argument
901 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_ib_hcrd_config()
906 (pcie_port->ib_hcrd_config.nof_p_hdr - 1) in al_pcie_port_ib_hcrd_config()
912 (pcie_port->ib_hcrd_config.nof_np_hdr - 1) in al_pcie_port_ib_hcrd_config()
917 al_pcie_port_max_num_of_pfs_get(struct al_pcie_port *pcie_port) in al_pcie_port_max_num_of_pfs_get() argument
919 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_max_num_of_pfs_get()
927 if ((pcie_port->rev_id == AL_PCIE_REV_ID_3) in al_pcie_port_max_num_of_pfs_get()
928 && al_pcie_port_is_enabled(pcie_port)) { in al_pcie_port_max_num_of_pfs_get()
937 static void al_pcie_ecrc_gen_ob_atu_enable(struct al_pcie_port *pcie_port, unsigned int pf_num) in al_pcie_ecrc_gen_ob_atu_enable() argument
939 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_ecrc_gen_ob_atu_enable()
940 int max_ob_atu = (pcie_port->rev_id == AL_PCIE_REV_ID_3) ? in al_pcie_ecrc_gen_ob_atu_enable()
977 struct al_pcie_port *pcie_port, in al_pcie_port_handle_init() argument
984 pcie_port->pcie_reg_base = pcie_reg_base; in al_pcie_port_handle_init()
985 pcie_port->regs = &pcie_port->regs_ptrs; in al_pcie_port_handle_init()
986 pcie_port->ex_regs = NULL; in al_pcie_port_handle_init()
987 pcie_port->pbs_regs = pbs_reg_base; in al_pcie_port_handle_init()
988 pcie_port->port_id = port_id; in al_pcie_port_handle_init()
989 pcie_port->max_lanes = 0; in al_pcie_port_handle_init()
995 pcie_port->rev_id = ret; in al_pcie_port_handle_init()
998 al_memset(pcie_port->regs, 0, sizeof(struct al_pcie_regs)); in al_pcie_port_handle_init()
1000 if (pcie_port->rev_id == AL_PCIE_REV_ID_1) { in al_pcie_port_handle_init()
1004 pcie_port->regs->axi.ctrl.global = &regs->axi.ctrl.global; in al_pcie_port_handle_init()
1005 pcie_port->regs->axi.ctrl.master_rctl = &regs->axi.ctrl.master_rctl; in al_pcie_port_handle_init()
1006 pcie_port->regs->axi.ctrl.master_ctl = &regs->axi.ctrl.master_ctl; in al_pcie_port_handle_init()
1007 pcie_port->regs->axi.ctrl.master_arctl = &regs->axi.ctrl.master_arctl; in al_pcie_port_handle_init()
1008 pcie_port->regs->axi.ctrl.master_awctl = &regs->axi.ctrl.master_awctl; in al_pcie_port_handle_init()
1009 pcie_port->regs->axi.ctrl.slv_ctl = &regs->axi.ctrl.slv_ctl; in al_pcie_port_handle_init()
1010 pcie_port->regs->axi.ob_ctrl.cfg_target_bus = &regs->axi.ob_ctrl.cfg_target_bus; in al_pcie_port_handle_init()
1011 pcie_port->regs->axi.ob_ctrl.cfg_control = &regs->axi.ob_ctrl.cfg_control; in al_pcie_port_handle_init()
1012 pcie_port->regs->axi.ob_ctrl.io_start_l = &regs->axi.ob_ctrl.io_start_l; in al_pcie_port_handle_init()
1013 pcie_port->regs->axi.ob_ctrl.io_start_h = &regs->axi.ob_ctrl.io_start_h; in al_pcie_port_handle_init()
1014 pcie_port->regs->axi.ob_ctrl.io_limit_l = &regs->axi.ob_ctrl.io_limit_l; in al_pcie_port_handle_init()
1015 pcie_port->regs->axi.ob_ctrl.io_limit_h = &regs->axi.ob_ctrl.io_limit_h; in al_pcie_port_handle_init()
1016 pcie_port->regs->axi.pcie_global.conf = &regs->axi.pcie_global.conf; in al_pcie_port_handle_init()
1017 pcie_port->regs->axi.conf.zero_lane0 = &regs->axi.conf.zero_lane0; in al_pcie_port_handle_init()
1018 pcie_port->regs->axi.conf.zero_lane1 = &regs->axi.conf.zero_lane1; in al_pcie_port_handle_init()
1019 pcie_port->regs->axi.conf.zero_lane2 = &regs->axi.conf.zero_lane2; in al_pcie_port_handle_init()
1020 pcie_port->regs->axi.conf.zero_lane3 = &regs->axi.conf.zero_lane3; in al_pcie_port_handle_init()
1021 pcie_port->regs->axi.status.lane[0] = &regs->axi.status.lane0; in al_pcie_port_handle_init()
1022 pcie_port->regs->axi.status.lane[1] = &regs->axi.status.lane1; in al_pcie_port_handle_init()
1023 pcie_port->regs->axi.status.lane[2] = &regs->axi.status.lane2; in al_pcie_port_handle_init()
1024 pcie_port->regs->axi.status.lane[3] = &regs->axi.status.lane3; in al_pcie_port_handle_init()
1025 pcie_port->regs->axi.parity.en_axi = &regs->axi.parity.en_axi; in al_pcie_port_handle_init()
1026 pcie_port->regs->axi.ordering.pos_cntl = &regs->axi.ordering.pos_cntl; in al_pcie_port_handle_init()
1027pcie_port->regs->axi.pre_configuration.pcie_core_setup = &regs->axi.pre_configuration.pcie_core_se… in al_pcie_port_handle_init()
1028 pcie_port->regs->axi.init_fc.cfg = &regs->axi.init_fc.cfg; in al_pcie_port_handle_init()
1029 pcie_port->regs->axi.int_grp_a = &regs->axi.int_grp_a; in al_pcie_port_handle_init()
1031 pcie_port->regs->app.global_ctrl.port_init = &regs->app.global_ctrl.port_init; in al_pcie_port_handle_init()
1032 pcie_port->regs->app.global_ctrl.pm_control = &regs->app.global_ctrl.pm_control; in al_pcie_port_handle_init()
1033 pcie_port->regs->app.global_ctrl.events_gen[0] = &regs->app.global_ctrl.events_gen; in al_pcie_port_handle_init()
1034 pcie_port->regs->app.debug = &regs->app.debug; in al_pcie_port_handle_init()
1035 pcie_port->regs->app.soc_int[0].status_0 = &regs->app.soc_int.status_0; in al_pcie_port_handle_init()
1036 pcie_port->regs->app.soc_int[0].status_1 = &regs->app.soc_int.status_1; in al_pcie_port_handle_init()
1037 pcie_port->regs->app.soc_int[0].status_2 = &regs->app.soc_int.status_2; in al_pcie_port_handle_init()
1038 pcie_port->regs->app.soc_int[0].mask_inta_leg_0 = &regs->app.soc_int.mask_inta_leg_0; in al_pcie_port_handle_init()
1039 pcie_port->regs->app.soc_int[0].mask_inta_leg_1 = &regs->app.soc_int.mask_inta_leg_1; in al_pcie_port_handle_init()
1040 pcie_port->regs->app.soc_int[0].mask_inta_leg_2 = &regs->app.soc_int.mask_inta_leg_2; in al_pcie_port_handle_init()
1041 pcie_port->regs->app.soc_int[0].mask_msi_leg_0 = &regs->app.soc_int.mask_msi_leg_0; in al_pcie_port_handle_init()
1042 pcie_port->regs->app.soc_int[0].mask_msi_leg_1 = &regs->app.soc_int.mask_msi_leg_1; in al_pcie_port_handle_init()
1043 pcie_port->regs->app.soc_int[0].mask_msi_leg_2 = &regs->app.soc_int.mask_msi_leg_2; in al_pcie_port_handle_init()
1044 pcie_port->regs->app.ctrl_gen = &regs->app.ctrl_gen; in al_pcie_port_handle_init()
1045 pcie_port->regs->app.parity = &regs->app.parity; in al_pcie_port_handle_init()
1046 pcie_port->regs->app.atu.in_mask_pair = regs->app.atu.in_mask_pair; in al_pcie_port_handle_init()
1047 pcie_port->regs->app.atu.out_mask_pair = regs->app.atu.out_mask_pair; in al_pcie_port_handle_init()
1048 pcie_port->regs->app.int_grp_a = &regs->app.int_grp_a; in al_pcie_port_handle_init()
1049 pcie_port->regs->app.int_grp_b = &regs->app.int_grp_b; in al_pcie_port_handle_init()
1051 pcie_port->regs->core_space[0].config_header = regs->core_space.config_header; in al_pcie_port_handle_init()
1052 pcie_port->regs->core_space[0].pcie_pm_cap_base = &regs->core_space.pcie_pm_cap_base; in al_pcie_port_handle_init()
1053 pcie_port->regs->core_space[0].pcie_cap_base = &regs->core_space.pcie_cap_base; in al_pcie_port_handle_init()
1054 pcie_port->regs->core_space[0].pcie_dev_cap_base = &regs->core_space.pcie_dev_cap_base; in al_pcie_port_handle_init()
1055 pcie_port->regs->core_space[0].pcie_dev_ctrl_status = &regs->core_space.pcie_dev_ctrl_status; in al_pcie_port_handle_init()
1056 pcie_port->regs->core_space[0].pcie_link_cap_base = &regs->core_space.pcie_link_cap_base; in al_pcie_port_handle_init()
1057 pcie_port->regs->core_space[0].msix_cap_base = &regs->core_space.msix_cap_base; in al_pcie_port_handle_init()
1058 pcie_port->regs->core_space[0].aer = &regs->core_space.aer; in al_pcie_port_handle_init()
1059 pcie_port->regs->core_space[0].pcie_sec_ext_cap_base = &regs->core_space.pcie_sec_ext_cap_base; in al_pcie_port_handle_init()
1061 pcie_port->regs->port_regs = &regs->core_space.port_regs; in al_pcie_port_handle_init()
1063 } else if (pcie_port->rev_id == AL_PCIE_REV_ID_2) { in al_pcie_port_handle_init()
1067 pcie_port->regs->axi.ctrl.global = &regs->axi.ctrl.global; in al_pcie_port_handle_init()
1068 pcie_port->regs->axi.ctrl.master_rctl = &regs->axi.ctrl.master_rctl; in al_pcie_port_handle_init()
1069 pcie_port->regs->axi.ctrl.master_ctl = &regs->axi.ctrl.master_ctl; in al_pcie_port_handle_init()
1070 pcie_port->regs->axi.ctrl.master_arctl = &regs->axi.ctrl.master_arctl; in al_pcie_port_handle_init()
1071 pcie_port->regs->axi.ctrl.master_awctl = &regs->axi.ctrl.master_awctl; in al_pcie_port_handle_init()
1072 pcie_port->regs->axi.ctrl.slv_ctl = &regs->axi.ctrl.slv_ctl; in al_pcie_port_handle_init()
1073 pcie_port->regs->axi.ob_ctrl.cfg_target_bus = &regs->axi.ob_ctrl.cfg_target_bus; in al_pcie_port_handle_init()
1074 pcie_port->regs->axi.ob_ctrl.cfg_control = &regs->axi.ob_ctrl.cfg_control; in al_pcie_port_handle_init()
1075 pcie_port->regs->axi.ob_ctrl.io_start_l = &regs->axi.ob_ctrl.io_start_l; in al_pcie_port_handle_init()
1076 pcie_port->regs->axi.ob_ctrl.io_start_h = &regs->axi.ob_ctrl.io_start_h; in al_pcie_port_handle_init()
1077 pcie_port->regs->axi.ob_ctrl.io_limit_l = &regs->axi.ob_ctrl.io_limit_l; in al_pcie_port_handle_init()
1078 pcie_port->regs->axi.ob_ctrl.io_limit_h = &regs->axi.ob_ctrl.io_limit_h; in al_pcie_port_handle_init()
1079 pcie_port->regs->axi.ob_ctrl.tgtid_reg_ovrd = &regs->axi.ob_ctrl.tgtid_reg_ovrd; in al_pcie_port_handle_init()
1080 pcie_port->regs->axi.ob_ctrl.addr_high_reg_ovrd_sel = &regs->axi.ob_ctrl.addr_high_reg_ovrd_sel; in al_pcie_port_handle_init()
1081pcie_port->regs->axi.ob_ctrl.addr_high_reg_ovrd_value = &regs->axi.ob_ctrl.addr_high_reg_ovrd_valu… in al_pcie_port_handle_init()
1082 pcie_port->regs->axi.ob_ctrl.addr_size_replace = &regs->axi.ob_ctrl.addr_size_replace; in al_pcie_port_handle_init()
1083 pcie_port->regs->axi.pcie_global.conf = &regs->axi.pcie_global.conf; in al_pcie_port_handle_init()
1084 pcie_port->regs->axi.conf.zero_lane0 = &regs->axi.conf.zero_lane0; in al_pcie_port_handle_init()
1085 pcie_port->regs->axi.conf.zero_lane1 = &regs->axi.conf.zero_lane1; in al_pcie_port_handle_init()
1086 pcie_port->regs->axi.conf.zero_lane2 = &regs->axi.conf.zero_lane2; in al_pcie_port_handle_init()
1087 pcie_port->regs->axi.conf.zero_lane3 = &regs->axi.conf.zero_lane3; in al_pcie_port_handle_init()
1088 pcie_port->regs->axi.status.lane[0] = &regs->axi.status.lane0; in al_pcie_port_handle_init()
1089 pcie_port->regs->axi.status.lane[1] = &regs->axi.status.lane1; in al_pcie_port_handle_init()
1090 pcie_port->regs->axi.status.lane[2] = &regs->axi.status.lane2; in al_pcie_port_handle_init()
1091 pcie_port->regs->axi.status.lane[3] = &regs->axi.status.lane3; in al_pcie_port_handle_init()
1092 pcie_port->regs->axi.parity.en_axi = &regs->axi.parity.en_axi; in al_pcie_port_handle_init()
1093 pcie_port->regs->axi.ordering.pos_cntl = &regs->axi.ordering.pos_cntl; in al_pcie_port_handle_init()
1094pcie_port->regs->axi.pre_configuration.pcie_core_setup = &regs->axi.pre_configuration.pcie_core_se… in al_pcie_port_handle_init()
1095 pcie_port->regs->axi.init_fc.cfg = &regs->axi.init_fc.cfg; in al_pcie_port_handle_init()
1096 pcie_port->regs->axi.int_grp_a = &regs->axi.int_grp_a; in al_pcie_port_handle_init()
1098 pcie_port->regs->app.global_ctrl.port_init = &regs->app.global_ctrl.port_init; in al_pcie_port_handle_init()
1099 pcie_port->regs->app.global_ctrl.pm_control = &regs->app.global_ctrl.pm_control; in al_pcie_port_handle_init()
1100 pcie_port->regs->app.global_ctrl.events_gen[0] = &regs->app.global_ctrl.events_gen; in al_pcie_port_handle_init()
1101pcie_port->regs->app.global_ctrl.corr_err_sts_int = &regs->app.global_ctrl.pended_corr_err_sts_int; in al_pcie_port_handle_init()
1102pcie_port->regs->app.global_ctrl.uncorr_err_sts_int = &regs->app.global_ctrl.pended_uncorr_err_sts… in al_pcie_port_handle_init()
1103 pcie_port->regs->app.global_ctrl.sris_kp_counter = &regs->app.global_ctrl.sris_kp_counter_value; in al_pcie_port_handle_init()
1104 pcie_port->regs->app.debug = &regs->app.debug; in al_pcie_port_handle_init()
1105 pcie_port->regs->app.ap_user_send_msg = &regs->app.ap_user_send_msg; in al_pcie_port_handle_init()
1106 pcie_port->regs->app.soc_int[0].status_0 = &regs->app.soc_int.status_0; in al_pcie_port_handle_init()
1107 pcie_port->regs->app.soc_int[0].status_1 = &regs->app.soc_int.status_1; in al_pcie_port_handle_init()
1108 pcie_port->regs->app.soc_int[0].status_2 = &regs->app.soc_int.status_2; in al_pcie_port_handle_init()
1109 pcie_port->regs->app.soc_int[0].status_3 = &regs->app.soc_int.status_3; in al_pcie_port_handle_init()
1110 pcie_port->regs->app.soc_int[0].mask_inta_leg_0 = &regs->app.soc_int.mask_inta_leg_0; in al_pcie_port_handle_init()
1111 pcie_port->regs->app.soc_int[0].mask_inta_leg_1 = &regs->app.soc_int.mask_inta_leg_1; in al_pcie_port_handle_init()
1112 pcie_port->regs->app.soc_int[0].mask_inta_leg_2 = &regs->app.soc_int.mask_inta_leg_2; in al_pcie_port_handle_init()
1113 pcie_port->regs->app.soc_int[0].mask_inta_leg_3 = &regs->app.soc_int.mask_inta_leg_3; in al_pcie_port_handle_init()
1114 pcie_port->regs->app.soc_int[0].mask_msi_leg_0 = &regs->app.soc_int.mask_msi_leg_0; in al_pcie_port_handle_init()
1115 pcie_port->regs->app.soc_int[0].mask_msi_leg_1 = &regs->app.soc_int.mask_msi_leg_1; in al_pcie_port_handle_init()
1116 pcie_port->regs->app.soc_int[0].mask_msi_leg_2 = &regs->app.soc_int.mask_msi_leg_2; in al_pcie_port_handle_init()
1117 pcie_port->regs->app.soc_int[0].mask_msi_leg_3 = &regs->app.soc_int.mask_msi_leg_3; in al_pcie_port_handle_init()
1118 pcie_port->regs->app.ctrl_gen = &regs->app.ctrl_gen; in al_pcie_port_handle_init()
1119 pcie_port->regs->app.parity = &regs->app.parity; in al_pcie_port_handle_init()
1120 pcie_port->regs->app.atu.in_mask_pair = regs->app.atu.in_mask_pair; in al_pcie_port_handle_init()
1121 pcie_port->regs->app.atu.out_mask_pair = regs->app.atu.out_mask_pair; in al_pcie_port_handle_init()
1122 pcie_port->regs->app.status_per_func[0] = &regs->app.status_per_func; in al_pcie_port_handle_init()
1123 pcie_port->regs->app.int_grp_a = &regs->app.int_grp_a; in al_pcie_port_handle_init()
1124 pcie_port->regs->app.int_grp_b = &regs->app.int_grp_b; in al_pcie_port_handle_init()
1126 pcie_port->regs->core_space[0].config_header = regs->core_space.config_header; in al_pcie_port_handle_init()
1127 pcie_port->regs->core_space[0].pcie_pm_cap_base = &regs->core_space.pcie_pm_cap_base; in al_pcie_port_handle_init()
1128 pcie_port->regs->core_space[0].pcie_cap_base = &regs->core_space.pcie_cap_base; in al_pcie_port_handle_init()
1129 pcie_port->regs->core_space[0].pcie_dev_cap_base = &regs->core_space.pcie_dev_cap_base; in al_pcie_port_handle_init()
1130 pcie_port->regs->core_space[0].pcie_dev_ctrl_status = &regs->core_space.pcie_dev_ctrl_status; in al_pcie_port_handle_init()
1131 pcie_port->regs->core_space[0].pcie_link_cap_base = &regs->core_space.pcie_link_cap_base; in al_pcie_port_handle_init()
1132 pcie_port->regs->core_space[0].msix_cap_base = &regs->core_space.msix_cap_base; in al_pcie_port_handle_init()
1133 pcie_port->regs->core_space[0].aer = &regs->core_space.aer; in al_pcie_port_handle_init()
1134 pcie_port->regs->core_space[0].pcie_sec_ext_cap_base = &regs->core_space.pcie_sec_ext_cap_base; in al_pcie_port_handle_init()
1136 pcie_port->regs->port_regs = &regs->core_space.port_regs; in al_pcie_port_handle_init()
1138 } else if (pcie_port->rev_id == AL_PCIE_REV_ID_3) { in al_pcie_port_handle_init()
1141 pcie_port->regs->axi.ctrl.global = &regs->axi.ctrl.global; in al_pcie_port_handle_init()
1142 pcie_port->regs->axi.ctrl.master_rctl = &regs->axi.ctrl.master_rctl; in al_pcie_port_handle_init()
1143 pcie_port->regs->axi.ctrl.master_ctl = &regs->axi.ctrl.master_ctl; in al_pcie_port_handle_init()
1144 pcie_port->regs->axi.ctrl.master_arctl = &regs->axi.ctrl.master_arctl; in al_pcie_port_handle_init()
1145 pcie_port->regs->axi.ctrl.master_awctl = &regs->axi.ctrl.master_awctl; in al_pcie_port_handle_init()
1146 pcie_port->regs->axi.ctrl.slv_ctl = &regs->axi.ctrl.slv_ctl; in al_pcie_port_handle_init()
1147 pcie_port->regs->axi.ob_ctrl.cfg_target_bus = &regs->axi.ob_ctrl.cfg_target_bus; in al_pcie_port_handle_init()
1148 pcie_port->regs->axi.ob_ctrl.cfg_control = &regs->axi.ob_ctrl.cfg_control; in al_pcie_port_handle_init()
1149 pcie_port->regs->axi.ob_ctrl.io_start_l = &regs->axi.ob_ctrl.io_start_l; in al_pcie_port_handle_init()
1150 pcie_port->regs->axi.ob_ctrl.io_start_h = &regs->axi.ob_ctrl.io_start_h; in al_pcie_port_handle_init()
1151 pcie_port->regs->axi.ob_ctrl.io_limit_l = &regs->axi.ob_ctrl.io_limit_l; in al_pcie_port_handle_init()
1152 pcie_port->regs->axi.ob_ctrl.io_limit_h = &regs->axi.ob_ctrl.io_limit_h; in al_pcie_port_handle_init()
1153 pcie_port->regs->axi.ob_ctrl.io_addr_mask_h = &regs->axi.ob_ctrl.io_addr_mask_h; in al_pcie_port_handle_init()
1154 pcie_port->regs->axi.ob_ctrl.ar_msg_addr_mask_h = &regs->axi.ob_ctrl.ar_msg_addr_mask_h; in al_pcie_port_handle_init()
1155 pcie_port->regs->axi.ob_ctrl.aw_msg_addr_mask_h = &regs->axi.ob_ctrl.aw_msg_addr_mask_h; in al_pcie_port_handle_init()
1156 pcie_port->regs->axi.ob_ctrl.tgtid_reg_ovrd = &regs->axi.ob_ctrl.tgtid_reg_ovrd; in al_pcie_port_handle_init()
1157 pcie_port->regs->axi.ob_ctrl.addr_high_reg_ovrd_sel = &regs->axi.ob_ctrl.addr_high_reg_ovrd_sel; in al_pcie_port_handle_init()
1158pcie_port->regs->axi.ob_ctrl.addr_high_reg_ovrd_value = &regs->axi.ob_ctrl.addr_high_reg_ovrd_valu… in al_pcie_port_handle_init()
1159 pcie_port->regs->axi.ob_ctrl.addr_size_replace = &regs->axi.ob_ctrl.addr_size_replace; in al_pcie_port_handle_init()
1160 pcie_port->regs->axi.pcie_global.conf = &regs->axi.pcie_global.conf; in al_pcie_port_handle_init()
1161 pcie_port->regs->axi.conf.zero_lane0 = &regs->axi.conf.zero_lane0; in al_pcie_port_handle_init()
1162 pcie_port->regs->axi.conf.zero_lane1 = &regs->axi.conf.zero_lane1; in al_pcie_port_handle_init()
1163 pcie_port->regs->axi.conf.zero_lane2 = &regs->axi.conf.zero_lane2; in al_pcie_port_handle_init()
1164 pcie_port->regs->axi.conf.zero_lane3 = &regs->axi.conf.zero_lane3; in al_pcie_port_handle_init()
1165 pcie_port->regs->axi.conf.zero_lane4 = &regs->axi.conf.zero_lane4; in al_pcie_port_handle_init()
1166 pcie_port->regs->axi.conf.zero_lane5 = &regs->axi.conf.zero_lane5; in al_pcie_port_handle_init()
1167 pcie_port->regs->axi.conf.zero_lane6 = &regs->axi.conf.zero_lane6; in al_pcie_port_handle_init()
1168 pcie_port->regs->axi.conf.zero_lane7 = &regs->axi.conf.zero_lane7; in al_pcie_port_handle_init()
1169 pcie_port->regs->axi.status.lane[0] = &regs->axi.status.lane0; in al_pcie_port_handle_init()
1170 pcie_port->regs->axi.status.lane[1] = &regs->axi.status.lane1; in al_pcie_port_handle_init()
1171 pcie_port->regs->axi.status.lane[2] = &regs->axi.status.lane2; in al_pcie_port_handle_init()
1172 pcie_port->regs->axi.status.lane[3] = &regs->axi.status.lane3; in al_pcie_port_handle_init()
1173 pcie_port->regs->axi.status.lane[4] = &regs->axi.status.lane4; in al_pcie_port_handle_init()
1174 pcie_port->regs->axi.status.lane[5] = &regs->axi.status.lane5; in al_pcie_port_handle_init()
1175 pcie_port->regs->axi.status.lane[6] = &regs->axi.status.lane6; in al_pcie_port_handle_init()
1176 pcie_port->regs->axi.status.lane[7] = &regs->axi.status.lane7; in al_pcie_port_handle_init()
1177 pcie_port->regs->axi.parity.en_axi = &regs->axi.parity.en_axi; in al_pcie_port_handle_init()
1178 pcie_port->regs->axi.ordering.pos_cntl = &regs->axi.ordering.pos_cntl; in al_pcie_port_handle_init()
1179pcie_port->regs->axi.pre_configuration.pcie_core_setup = &regs->axi.pre_configuration.pcie_core_se… in al_pcie_port_handle_init()
1180 pcie_port->regs->axi.init_fc.cfg = &regs->axi.init_fc.cfg; in al_pcie_port_handle_init()
1181 pcie_port->regs->axi.int_grp_a = &regs->axi.int_grp_a; in al_pcie_port_handle_init()
1182 pcie_port->regs->axi.axi_attr_ovrd.write_msg_ctrl_0 = &regs->axi.axi_attr_ovrd.write_msg_ctrl_0; in al_pcie_port_handle_init()
1183 pcie_port->regs->axi.axi_attr_ovrd.write_msg_ctrl_1 = &regs->axi.axi_attr_ovrd.write_msg_ctrl_1; in al_pcie_port_handle_init()
1184 pcie_port->regs->axi.axi_attr_ovrd.pf_sel = &regs->axi.axi_attr_ovrd.pf_sel; in al_pcie_port_handle_init()
1187pcie_port->regs->axi.pf_axi_attr_ovrd[i].func_ctrl_0 = &regs->axi.pf_axi_attr_ovrd[i].func_ctrl_0; in al_pcie_port_handle_init()
1188pcie_port->regs->axi.pf_axi_attr_ovrd[i].func_ctrl_1 = &regs->axi.pf_axi_attr_ovrd[i].func_ctrl_1; in al_pcie_port_handle_init()
1189pcie_port->regs->axi.pf_axi_attr_ovrd[i].func_ctrl_2 = &regs->axi.pf_axi_attr_ovrd[i].func_ctrl_2; in al_pcie_port_handle_init()
1190pcie_port->regs->axi.pf_axi_attr_ovrd[i].func_ctrl_3 = &regs->axi.pf_axi_attr_ovrd[i].func_ctrl_3; in al_pcie_port_handle_init()
1191pcie_port->regs->axi.pf_axi_attr_ovrd[i].func_ctrl_4 = &regs->axi.pf_axi_attr_ovrd[i].func_ctrl_4; in al_pcie_port_handle_init()
1192pcie_port->regs->axi.pf_axi_attr_ovrd[i].func_ctrl_5 = &regs->axi.pf_axi_attr_ovrd[i].func_ctrl_5; in al_pcie_port_handle_init()
1193pcie_port->regs->axi.pf_axi_attr_ovrd[i].func_ctrl_6 = &regs->axi.pf_axi_attr_ovrd[i].func_ctrl_6; in al_pcie_port_handle_init()
1194pcie_port->regs->axi.pf_axi_attr_ovrd[i].func_ctrl_7 = &regs->axi.pf_axi_attr_ovrd[i].func_ctrl_7; in al_pcie_port_handle_init()
1195pcie_port->regs->axi.pf_axi_attr_ovrd[i].func_ctrl_8 = &regs->axi.pf_axi_attr_ovrd[i].func_ctrl_8; in al_pcie_port_handle_init()
1196pcie_port->regs->axi.pf_axi_attr_ovrd[i].func_ctrl_9 = &regs->axi.pf_axi_attr_ovrd[i].func_ctrl_9; in al_pcie_port_handle_init()
1199 pcie_port->regs->axi.msg_attr_axuser_table.entry_vec = &regs->axi.msg_attr_axuser_table.entry_vec; in al_pcie_port_handle_init()
1201 pcie_port->regs->app.global_ctrl.port_init = &regs->app.global_ctrl.port_init; in al_pcie_port_handle_init()
1202 pcie_port->regs->app.global_ctrl.pm_control = &regs->app.global_ctrl.pm_control; in al_pcie_port_handle_init()
1203pcie_port->regs->app.global_ctrl.corr_err_sts_int = &regs->app.global_ctrl.pended_corr_err_sts_int; in al_pcie_port_handle_init()
1204pcie_port->regs->app.global_ctrl.uncorr_err_sts_int = &regs->app.global_ctrl.pended_uncorr_err_sts… in al_pcie_port_handle_init()
1207 pcie_port->regs->app.global_ctrl.events_gen[i] = &regs->app.events_gen_per_func[i].events_gen; in al_pcie_port_handle_init()
1210 pcie_port->regs->app.global_ctrl.sris_kp_counter = &regs->app.global_ctrl.sris_kp_counter_value; in al_pcie_port_handle_init()
1211 pcie_port->regs->app.debug = &regs->app.debug; in al_pcie_port_handle_init()
1214 pcie_port->regs->app.soc_int[i].status_0 = &regs->app.soc_int_per_func[i].status_0; in al_pcie_port_handle_init()
1215 pcie_port->regs->app.soc_int[i].status_1 = &regs->app.soc_int_per_func[i].status_1; in al_pcie_port_handle_init()
1216 pcie_port->regs->app.soc_int[i].status_2 = &regs->app.soc_int_per_func[i].status_2; in al_pcie_port_handle_init()
1217 pcie_port->regs->app.soc_int[i].status_3 = &regs->app.soc_int_per_func[i].status_3; in al_pcie_port_handle_init()
1218 pcie_port->regs->app.soc_int[i].mask_inta_leg_0 = &regs->app.soc_int_per_func[i].mask_inta_leg_0; in al_pcie_port_handle_init()
1219 pcie_port->regs->app.soc_int[i].mask_inta_leg_1 = &regs->app.soc_int_per_func[i].mask_inta_leg_1; in al_pcie_port_handle_init()
1220 pcie_port->regs->app.soc_int[i].mask_inta_leg_2 = &regs->app.soc_int_per_func[i].mask_inta_leg_2; in al_pcie_port_handle_init()
1221 pcie_port->regs->app.soc_int[i].mask_inta_leg_3 = &regs->app.soc_int_per_func[i].mask_inta_leg_3; in al_pcie_port_handle_init()
1222 pcie_port->regs->app.soc_int[i].mask_msi_leg_0 = &regs->app.soc_int_per_func[i].mask_msi_leg_0; in al_pcie_port_handle_init()
1223 pcie_port->regs->app.soc_int[i].mask_msi_leg_1 = &regs->app.soc_int_per_func[i].mask_msi_leg_1; in al_pcie_port_handle_init()
1224 pcie_port->regs->app.soc_int[i].mask_msi_leg_2 = &regs->app.soc_int_per_func[i].mask_msi_leg_2; in al_pcie_port_handle_init()
1225 pcie_port->regs->app.soc_int[i].mask_msi_leg_3 = &regs->app.soc_int_per_func[i].mask_msi_leg_3; in al_pcie_port_handle_init()
1228 pcie_port->regs->app.ap_user_send_msg = &regs->app.ap_user_send_msg; in al_pcie_port_handle_init()
1229 pcie_port->regs->app.ctrl_gen = &regs->app.ctrl_gen; in al_pcie_port_handle_init()
1230 pcie_port->regs->app.parity = &regs->app.parity; in al_pcie_port_handle_init()
1231 pcie_port->regs->app.atu.in_mask_pair = regs->app.atu.in_mask_pair; in al_pcie_port_handle_init()
1232 pcie_port->regs->app.atu.out_mask_pair = regs->app.atu.out_mask_pair; in al_pcie_port_handle_init()
1233 pcie_port->regs->app.cfg_func_ext = &regs->app.cfg_func_ext; in al_pcie_port_handle_init()
1236 pcie_port->regs->app.status_per_func[i] = &regs->app.status_per_func[i]; in al_pcie_port_handle_init()
1238 pcie_port->regs->app.int_grp_a = &regs->app.int_grp_a; in al_pcie_port_handle_init()
1239 pcie_port->regs->app.int_grp_b = &regs->app.int_grp_b; in al_pcie_port_handle_init()
1240 pcie_port->regs->app.int_grp_c = &regs->app.int_grp_c; in al_pcie_port_handle_init()
1241 pcie_port->regs->app.int_grp_d = &regs->app.int_grp_d; in al_pcie_port_handle_init()
1244 pcie_port->regs->core_space[i].config_header = regs->core_space.func[i].config_header; in al_pcie_port_handle_init()
1245 pcie_port->regs->core_space[i].pcie_pm_cap_base = &regs->core_space.func[i].pcie_pm_cap_base; in al_pcie_port_handle_init()
1246 pcie_port->regs->core_space[i].pcie_cap_base = &regs->core_space.func[i].pcie_cap_base; in al_pcie_port_handle_init()
1247 pcie_port->regs->core_space[i].pcie_dev_cap_base = &regs->core_space.func[i].pcie_dev_cap_base; in al_pcie_port_handle_init()
1248pcie_port->regs->core_space[i].pcie_dev_ctrl_status = &regs->core_space.func[i].pcie_dev_ctrl_stat… in al_pcie_port_handle_init()
1249 pcie_port->regs->core_space[i].pcie_link_cap_base = &regs->core_space.func[i].pcie_link_cap_base; in al_pcie_port_handle_init()
1250 pcie_port->regs->core_space[i].msix_cap_base = &regs->core_space.func[i].msix_cap_base; in al_pcie_port_handle_init()
1251 pcie_port->regs->core_space[i].aer = &regs->core_space.func[i].aer; in al_pcie_port_handle_init()
1252 pcie_port->regs->core_space[i].tph_cap_base = &regs->core_space.func[i].tph_cap_base; in al_pcie_port_handle_init()
1257pcie_port->regs->core_space[0].pcie_sec_ext_cap_base = &regs->core_space.func[0].pcie_sec_ext_cap_… in al_pcie_port_handle_init()
1259 pcie_port->regs->port_regs = &regs->core_space.func[0].port_regs; in al_pcie_port_handle_init()
1268 pcie_port->max_num_of_pfs = al_pcie_port_max_num_of_pfs_get(pcie_port); in al_pcie_port_handle_init()
1271 pcie_port->ib_hcrd_config.nof_np_hdr = 0; in al_pcie_port_handle_init()
1272 pcie_port->ib_hcrd_config.nof_p_hdr = 0; in al_pcie_port_handle_init()
1275 port_id, pcie_port->rev_id, pcie_reg_base); in al_pcie_port_handle_init()
1287 struct al_pcie_port *pcie_port, in al_pcie_pf_handle_init() argument
1290 enum al_pcie_operating_mode op_mode = al_pcie_operating_mode_get(pcie_port); in al_pcie_pf_handle_init()
1291 al_assert(pf_num < pcie_port->max_num_of_pfs); in al_pcie_pf_handle_init()
1295 pcie_port->port_id, op_mode); in al_pcie_pf_handle_init()
1300 pcie_pf->pcie_port = pcie_port; in al_pcie_pf_handle_init()
1303 pcie_port->port_id, pcie_pf->pf_num, pcie_port->rev_id, in al_pcie_pf_handle_init()
1304 pcie_port->regs); in al_pcie_pf_handle_init()
1309 int al_pcie_port_rev_id_get(struct al_pcie_port *pcie_port) in al_pcie_port_rev_id_get() argument
1311 return pcie_port->rev_id; in al_pcie_port_rev_id_get()
1319 struct al_pcie_port *pcie_port, in al_pcie_port_operating_mode_config() argument
1322 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_operating_mode_config()
1325 if (al_pcie_port_is_enabled(pcie_port)) { in al_pcie_port_operating_mode_config()
1327 pcie_port->port_id); in al_pcie_port_operating_mode_config()
1341 if (pcie_port->rev_id == AL_PCIE_REV_ID_3) { in al_pcie_port_operating_mode_config()
1356 al_err("PCIe %d: unknown operating mode: %d\n", pcie_port->port_id, mode); in al_pcie_port_operating_mode_config()
1362 pcie_port->port_id, (mode == AL_PCIE_OPERATING_MODE_EP) ? in al_pcie_port_operating_mode_config()
1367 pcie_port->port_id, (mode == AL_PCIE_OPERATING_MODE_EP) ? in al_pcie_port_operating_mode_config()
1379 al_pcie_port_max_lanes_set(struct al_pcie_port *pcie_port, uint8_t lanes) in al_pcie_port_max_lanes_set() argument
1381 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_max_lanes_set()
1384 if (al_pcie_port_is_enabled(pcie_port)) { in al_pcie_port_max_lanes_set()
1386 pcie_port->port_id); in al_pcie_port_max_lanes_set()
1394 (pcie_port->rev_id == AL_PCIE_REV_ID_3) ? in al_pcie_port_max_lanes_set()
1399 pcie_port->max_lanes = lanes; in al_pcie_port_max_lanes_set()
1405 struct al_pcie_port *pcie_port, in al_pcie_port_max_num_of_pfs_set() argument
1408 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_max_num_of_pfs_set()
1410 if (pcie_port->rev_id == AL_PCIE_REV_ID_3) in al_pcie_port_max_num_of_pfs_set()
1415 pcie_port->max_num_of_pfs = max_num_of_pfs; in al_pcie_port_max_num_of_pfs_set()
1417 if (al_pcie_port_is_enabled(pcie_port) && (pcie_port->rev_id == AL_PCIE_REV_ID_3)) { in al_pcie_port_max_num_of_pfs_set()
1418 enum al_pcie_operating_mode op_mode = al_pcie_operating_mode_get(pcie_port); in al_pcie_port_max_num_of_pfs_set()
1421 ((op_mode == AL_PCIE_OPERATING_MODE_EP) && (pcie_port->max_num_of_pfs > 1)); in al_pcie_port_max_num_of_pfs_set()
1427 pcie_port->max_num_of_pfs - 1); in al_pcie_port_max_num_of_pfs_set()
1429 al_pcie_port_wr_to_ro_set(pcie_port, AL_TRUE); in al_pcie_port_max_num_of_pfs_set()
1441 al_pcie_port_wr_to_ro_set(pcie_port, AL_FALSE); in al_pcie_port_max_num_of_pfs_set()
1450 struct al_pcie_port *pcie_port, in al_pcie_port_ib_hcrd_os_ob_reads_config() argument
1453 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_ib_hcrd_os_ob_reads_config()
1455 if (al_pcie_port_is_enabled(pcie_port)) { in al_pcie_port_ib_hcrd_os_ob_reads_config()
1457 pcie_port->port_id); in al_pcie_port_ib_hcrd_os_ob_reads_config()
1467 if (pcie_port->rev_id == AL_PCIE_REV_ID_3) { in al_pcie_port_ib_hcrd_os_ob_reads_config()
1512 pcie_port->ib_hcrd_config.nof_np_hdr = in al_pcie_port_ib_hcrd_os_ob_reads_config()
1514 pcie_port->ib_hcrd_config.nof_p_hdr = in al_pcie_port_ib_hcrd_os_ob_reads_config()
1522 struct al_pcie_port *pcie_port) in al_pcie_operating_mode_get() argument
1524 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_operating_mode_get()
1527 al_assert(pcie_port); in al_pcie_operating_mode_get()
1542 pcie_port->port_id, device_type); in al_pcie_operating_mode_get()
1549 struct al_pcie_port *pcie_port, in al_pcie_axi_qos_config() argument
1553 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_axi_qos_config()
1555 al_assert(pcie_port); in al_pcie_axi_qos_config()
1573 al_pcie_port_enable(struct al_pcie_port *pcie_port) in al_pcie_port_enable() argument
1576 (struct al_pbs_regs *)pcie_port->pbs_regs; in al_pcie_port_enable()
1577 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_enable()
1578 unsigned int port_id = pcie_port->port_id; in al_pcie_port_enable()
1587 if ((pcie_port->ib_hcrd_config.nof_np_hdr == 0) || in al_pcie_port_enable()
1588 (pcie_port->ib_hcrd_config.nof_p_hdr == 0)) in al_pcie_port_enable()
1589 al_pcie_ib_hcrd_os_ob_reads_config_default(pcie_port); in al_pcie_port_enable()
1596 if ((pcie_port->rev_id == AL_PCIE_REV_ID_1) || in al_pcie_port_enable()
1597 (pcie_port->rev_id == AL_PCIE_REV_ID_2)) { in al_pcie_port_enable()
1615 al_pcie_port_disable(struct al_pcie_port *pcie_port) in al_pcie_port_disable() argument
1618 (struct al_pbs_regs *)pcie_port->pbs_regs; in al_pcie_port_disable()
1619 unsigned int port_id = pcie_port->port_id; in al_pcie_port_disable()
1621 if (!al_pcie_port_is_enabled(pcie_port)) { in al_pcie_port_disable()
1623 pcie_port->port_id); in al_pcie_port_disable()
1635 struct al_pcie_port *pcie_port, in al_pcie_port_memory_shutdown_set() argument
1638 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_memory_shutdown_set()
1639 uint32_t mask = (pcie_port->rev_id == AL_PCIE_REV_ID_3) ? in al_pcie_port_memory_shutdown_set()
1643 if (!al_pcie_port_is_enabled(pcie_port)) { in al_pcie_port_memory_shutdown_set()
1645 pcie_port->port_id); in al_pcie_port_memory_shutdown_set()
1656 al_pcie_port_is_enabled(struct al_pcie_port *pcie_port) in al_pcie_port_is_enabled() argument
1658 struct al_pbs_regs *pbs_reg_base = (struct al_pbs_regs *)pcie_port->pbs_regs; in al_pcie_port_is_enabled()
1665 return (AL_REG_FIELD_GET(ports_enabled, AL_BIT(pcie_port->port_id), in al_pcie_port_is_enabled()
1666 pcie_port->port_id) == 1); in al_pcie_port_is_enabled()
1673 al_pcie_port_config(struct al_pcie_port *pcie_port, in al_pcie_port_config() argument
1676 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_config()
1681 if (!al_pcie_port_is_enabled(pcie_port)) { in al_pcie_port_config()
1683 pcie_port->port_id); in al_pcie_port_config()
1687 if (al_pcie_is_link_started(pcie_port)) { in al_pcie_port_config()
1689 pcie_port->port_id); in al_pcie_port_config()
1693 al_assert(pcie_port); in al_pcie_port_config()
1696 al_dbg("PCIe %d: port config\n", pcie_port->port_id); in al_pcie_port_config()
1698 op_mode = al_pcie_operating_mode_get(pcie_port); in al_pcie_port_config()
1701 if (pcie_port->max_lanes == 0) { in al_pcie_port_config()
1704 (pcie_port->rev_id == AL_PCIE_REV_ID_3) ? in al_pcie_port_config()
1711 pcie_port->max_lanes = 1; in al_pcie_port_config()
1714 pcie_port->max_lanes = 2; in al_pcie_port_config()
1717 pcie_port->max_lanes = 4; in al_pcie_port_config()
1720 pcie_port->max_lanes = 8; in al_pcie_port_config()
1723 pcie_port->max_lanes = 0; in al_pcie_port_config()
1724 al_err("PCIe %d: invalid max lanes val (0x%x)\n", pcie_port->port_id, act_lanes); in al_pcie_port_config()
1730 status = al_pcie_port_link_config(pcie_port, params->link_params); in al_pcie_port_config()
1742 if (pcie_port->rev_id != AL_PCIE_REV_ID_3) in al_pcie_port_config()
1746 if (pcie_port->rev_id == AL_PCIE_REV_ID_3) { in al_pcie_port_config()
1747 al_pcie_port_wr_to_ro_set(pcie_port, AL_TRUE); in al_pcie_port_config()
1755 al_pcie_port_wr_to_ro_set(pcie_port, AL_FALSE); in al_pcie_port_config()
1759 status = al_pcie_port_snoop_config(pcie_port, params->enable_axi_snoop); in al_pcie_port_config()
1763 al_pcie_port_max_num_of_pfs_set(pcie_port, pcie_port->max_num_of_pfs); in al_pcie_port_config()
1765 al_pcie_port_ram_parity_int_config(pcie_port, params->enable_ram_parity_int); in al_pcie_port_config()
1767 al_pcie_port_axi_parity_int_config(pcie_port, params->enable_axi_parity_int); in al_pcie_port_config()
1769 al_pcie_port_relaxed_pcie_ordering_config(pcie_port, params->relaxed_ordering_params); in al_pcie_port_config()
1772 status = al_pcie_port_lat_rply_timers_config(pcie_port, params->lat_rply_timers); in al_pcie_port_config()
1777 status = al_pcie_port_gen2_params_config(pcie_port, params->gen2_params); in al_pcie_port_config()
1782 status = al_pcie_port_gen3_params_config(pcie_port, params->gen3_params); in al_pcie_port_config()
1787 status = al_pcie_port_sris_config(pcie_port, params->sris_params, in al_pcie_port_config()
1792 al_pcie_port_ib_hcrd_config(pcie_port); in al_pcie_port_config()
1839 al_pcie_port_wr_to_ro_set(pcie_port, AL_TRUE); in al_pcie_port_config()
1847 al_pcie_port_wr_to_ro_set(pcie_port, AL_FALSE); in al_pcie_port_config()
1866 al_dbg("PCIe %d: port config %s\n", pcie_port->port_id, status? "failed": "done"); in al_pcie_port_config()
1876 struct al_pcie_port *pcie_port; in al_pcie_pf_config() local
1882 pcie_port = pcie_pf->pcie_port; in al_pcie_pf_config()
1884 if (!al_pcie_port_is_enabled(pcie_port)) { in al_pcie_pf_config()
1885 al_err("PCIe %d: port not enabled, cannot configure port\n", pcie_port->port_id); in al_pcie_pf_config()
1889 al_dbg("PCIe %d: pf %d config\n", pcie_port->port_id, pcie_pf->pf_num); in al_pcie_pf_config()
1898 pcie_port->port_id, pcie_pf->pf_num, status ? "failed" : "done"); in al_pcie_pf_config()
1907 al_pcie_link_start(struct al_pcie_port *pcie_port) in al_pcie_link_start() argument
1909 struct al_pcie_regs *regs = (struct al_pcie_regs *)pcie_port->regs; in al_pcie_link_start()
1911 if (!al_pcie_port_is_enabled(pcie_port)) { in al_pcie_link_start()
1913 pcie_port->port_id); in al_pcie_link_start()
1917 al_dbg("PCIe_%d: start port link.\n", pcie_port->port_id); in al_pcie_link_start()
1929 al_pcie_link_stop(struct al_pcie_port *pcie_port) in al_pcie_link_stop() argument
1931 struct al_pcie_regs *regs = (struct al_pcie_regs *)pcie_port->regs; in al_pcie_link_stop()
1933 if (!al_pcie_is_link_started(pcie_port)) { in al_pcie_link_stop()
1935 pcie_port->port_id); in al_pcie_link_stop()
1938 al_dbg("PCIe_%d: stop port link.\n", pcie_port->port_id); in al_pcie_link_stop()
1949 al_bool al_pcie_is_link_started(struct al_pcie_port *pcie_port) in al_pcie_is_link_started() argument
1951 struct al_pcie_regs *regs = (struct al_pcie_regs *)pcie_port->regs; in al_pcie_is_link_started()
1963 al_pcie_link_up_wait(struct al_pcie_port *pcie_port, uint32_t timeout_ms) in al_pcie_link_up_wait() argument
1968 if (al_pcie_check_link(pcie_port, NULL)) { in al_pcie_link_up_wait()
1969 al_dbg("PCIe_%d: <<<<<<<<< Link up >>>>>>>>>\n", pcie_port->port_id); in al_pcie_link_up_wait()
1973 pcie_port->port_id, wait_count); in al_pcie_link_up_wait()
1978 pcie_port->port_id); in al_pcie_link_up_wait()
1985 al_pcie_link_status(struct al_pcie_port *pcie_port, in al_pcie_link_status() argument
1988 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_link_status()
1993 if (!al_pcie_port_is_enabled(pcie_port)) { in al_pcie_link_status()
1994 al_dbg("PCIe %d: port not enabled, no link.\n", pcie_port->port_id); in al_pcie_link_status()
2002 status->link_up = al_pcie_check_link(pcie_port, &status->ltssm_state); in al_pcie_link_status()
2025 pcie_port->port_id, pcie_lnksta); in al_pcie_link_status()
2029 pcie_port->port_id, status->speed, status->lanes); in al_pcie_link_status()
2037 struct al_pcie_port *pcie_port, in al_pcie_lane_status_get() argument
2041 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_lane_status_get()
2045 al_assert(pcie_port); in al_pcie_lane_status_get()
2047 al_assert((pcie_port->rev_id != AL_PCIE_REV_ID_1) || (lane < REV1_2_MAX_NUM_LANES)); in al_pcie_lane_status_get()
2048 al_assert((pcie_port->rev_id != AL_PCIE_REV_ID_2) || (lane < REV1_2_MAX_NUM_LANES)); in al_pcie_lane_status_get()
2049 al_assert((pcie_port->rev_id != AL_PCIE_REV_ID_3) || (lane < REV3_MAX_NUM_LANES)); in al_pcie_lane_status_get()
2066 al_pcie_link_hot_reset(struct al_pcie_port *pcie_port, al_bool enable) in al_pcie_link_hot_reset() argument
2068 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_link_hot_reset()
2071 enum al_pcie_operating_mode op_mode = al_pcie_operating_mode_get(pcie_port); in al_pcie_link_hot_reset()
2074 al_err("PCIe %d: hot-reset is applicable only for RC mode\n", pcie_port->port_id); in al_pcie_link_hot_reset()
2078 if (!al_pcie_is_link_started(pcie_port)) { in al_pcie_link_hot_reset()
2079 al_err("PCIe %d: link not started, cannot trigger hot-reset\n", pcie_port->port_id); in al_pcie_link_hot_reset()
2087 al_err("PCIe %d: link is already in hot-reset state\n", pcie_port->port_id); in al_pcie_link_hot_reset()
2090 al_err("PCIe %d: link is already in non-hot-reset state\n", pcie_port->port_id); in al_pcie_link_hot_reset()
2093 al_dbg("PCIe %d: %s hot-reset\n", pcie_port->port_id, in al_pcie_link_hot_reset()
2106 al_pcie_link_disable(struct al_pcie_port *pcie_port, al_bool disable) in al_pcie_link_disable() argument
2108 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_link_disable()
2111 enum al_pcie_operating_mode op_mode = al_pcie_operating_mode_get(pcie_port); in al_pcie_link_disable()
2114 al_err("PCIe %d: hot-reset is applicable only for RC mode\n", pcie_port->port_id); in al_pcie_link_disable()
2118 if (!al_pcie_is_link_started(pcie_port)) { in al_pcie_link_disable()
2119 al_err("PCIe %d: link not started, cannot disable link\n", pcie_port->port_id); in al_pcie_link_disable()
2127 al_err("PCIe %d: link is already in disable state\n", pcie_port->port_id); in al_pcie_link_disable()
2130 al_err("PCIe %d: link is already in enable state\n", pcie_port->port_id); in al_pcie_link_disable()
2134 al_dbg("PCIe %d: %s port\n", pcie_port->port_id, (disable ? "disabling" : "enabling")); in al_pcie_link_disable()
2143 al_pcie_link_retrain(struct al_pcie_port *pcie_port) in al_pcie_link_retrain() argument
2145 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_link_retrain()
2146 enum al_pcie_operating_mode op_mode = al_pcie_operating_mode_get(pcie_port); in al_pcie_link_retrain()
2150 pcie_port->port_id); in al_pcie_link_retrain()
2154 if (!al_pcie_is_link_started(pcie_port)) { in al_pcie_link_retrain()
2155 al_err("PCIe %d: link not started, cannot link-retrain\n", pcie_port->port_id); in al_pcie_link_retrain()
2167 al_pcie_link_change_speed(struct al_pcie_port *pcie_port, in al_pcie_link_change_speed() argument
2170 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_link_change_speed()
2172 if (!al_pcie_is_link_started(pcie_port)) { in al_pcie_link_change_speed()
2173 al_err("PCIe %d: link not started, cannot change speed\n", pcie_port->port_id); in al_pcie_link_change_speed()
2177 al_dbg("PCIe %d: changing speed to %d\n", pcie_port->port_id, new_speed); in al_pcie_link_change_speed()
2179 al_pcie_port_link_speed_ctrl_set(pcie_port, new_speed); in al_pcie_link_change_speed()
2190 al_pcie_link_change_width(struct al_pcie_port *pcie_port, in al_pcie_link_change_width() argument
2194 pcie_port->port_id); in al_pcie_link_change_width()
2204 al_pcie_port_snoop_config(struct al_pcie_port *pcie_port, al_bool enable_axi_snoop) in al_pcie_port_snoop_config() argument
2206 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_port_snoop_config()
2210 pcie_port->port_id, enable_axi_snoop ? "enable" : "disable"); in al_pcie_port_snoop_config()
2239 struct al_pcie_regs *regs = pcie_pf->pcie_port->regs; in al_pcie_config_space_get()
2251 struct al_pcie_regs *regs = pcie_pf->pcie_port->regs; in al_pcie_local_cfg_space_read()
2268 struct al_pcie_port *pcie_port = pcie_pf->pcie_port; in al_pcie_local_cfg_space_write() local
2269 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_local_cfg_space_write()
2274 al_pcie_port_wr_to_ro_set(pcie_port, AL_TRUE); in al_pcie_local_cfg_space_write()
2279 al_reg_write32_dbi_cs2(pcie_port, offset, data); in al_pcie_local_cfg_space_write()
2282 al_pcie_port_wr_to_ro_set(pcie_port, AL_FALSE); in al_pcie_local_cfg_space_write()
2288 struct al_pcie_port *pcie_port, in al_pcie_target_bus_set() argument
2292 struct al_pcie_regs *regs = (struct al_pcie_regs *)pcie_port->regs; in al_pcie_target_bus_set()
2309 struct al_pcie_port *pcie_port, in al_pcie_target_bus_get() argument
2313 struct al_pcie_regs *regs = (struct al_pcie_regs *)pcie_port->regs; in al_pcie_target_bus_get()
2332 al_pcie_secondary_bus_set(struct al_pcie_port *pcie_port, uint8_t secbus) in al_pcie_secondary_bus_set() argument
2334 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_secondary_bus_set()
2348 al_pcie_subordinary_bus_set(struct al_pcie_port *pcie_port, uint8_t subbus) in al_pcie_subordinary_bus_set() argument
2350 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_subordinary_bus_set()
2365 struct al_pcie_port *pcie_port, in al_pcie_app_req_retry_set() argument
2368 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_app_req_retry_set()
2369 uint32_t mask = (pcie_port->rev_id == AL_PCIE_REV_ID_3) ? in al_pcie_app_req_retry_set()
2378 al_bool al_pcie_app_req_retry_get_status(struct al_pcie_port *pcie_port) in al_pcie_app_req_retry_get_status() argument
2380 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_app_req_retry_get_status()
2382 uint32_t mask = (pcie_port->rev_id == AL_PCIE_REV_ID_3) ? in al_pcie_app_req_retry_get_status()
2395 struct al_pcie_port *pcie_port, in al_pcie_atu_region_set() argument
2398 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_atu_region_set()
2399 enum al_pcie_operating_mode op_mode = al_pcie_operating_mode_get(pcie_port); in al_pcie_atu_region_set()
2420 && (al_pcie_is_link_started(pcie_port))) { in al_pcie_atu_region_set()
2423 pcie_port->port_id); in al_pcie_atu_region_set()
2428 pcie_port->port_id); in al_pcie_atu_region_set()
2501 if (pcie_port->rev_id > AL_PCIE_REV_ID_2) { in al_pcie_atu_region_set()
2531 if ((pcie_port->rev_id == AL_PCIE_REV_ID_3) in al_pcie_atu_region_set()
2573 struct al_pcie_port *pcie_port, in al_pcie_atu_region_get_fields() argument
2577 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_atu_region_get_fields()
2601 struct al_pcie_port *pcie_port, in al_pcie_axi_io_config() argument
2605 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_axi_io_config()
2628 struct al_pcie_regs *regs = pcie_pf->pcie_port->regs; in al_pcie_pf_flr_done_gen()
2648 struct al_pcie_regs *regs = pcie_pf->pcie_port->regs; in al_pcie_legacy_int_gen()
2664 struct al_pcie_regs *regs = pcie_pf->pcie_port->regs; in al_pcie_msi_int_gen()
2689 struct al_pcie_regs *regs = pcie_pf->pcie_port->regs; in al_pcie_msix_config()
2693 al_pcie_port_wr_to_ro_set(pcie_pf->pcie_port, AL_TRUE); in al_pcie_msix_config()
2711 al_pcie_port_wr_to_ro_set(pcie_pf->pcie_port, AL_FALSE); in al_pcie_msix_config()
2720 struct al_pcie_regs *regs = pcie_pf->pcie_port->regs; in al_pcie_msix_enabled()
2732 struct al_pcie_regs *regs = pcie_pf->pcie_port->regs; in al_pcie_msix_masked()
2745 struct al_pcie_port *pcie_port, in al_pcie_aer_config_aux() argument
2749 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_aer_config_aux()
2787 al_pcie_ecrc_gen_ob_atu_enable(pcie_port, pf_num); in al_pcie_aer_config_aux()
2815 struct al_pcie_port *pcie_port, in al_pcie_aer_uncorr_get_and_clear_aux() argument
2818 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_aer_uncorr_get_and_clear_aux()
2831 struct al_pcie_port *pcie_port, in al_pcie_aer_corr_get_and_clear_aux() argument
2834 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_aer_corr_get_and_clear_aux()
2851 struct al_pcie_port *pcie_port, in al_pcie_aer_err_tlp_hdr_get_aux() argument
2855 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_aer_err_tlp_hdr_get_aux()
2873 pcie_pf->pcie_port, pcie_pf->pf_num, params); in al_pcie_aer_config()
2882 pcie_pf->pcie_port, pcie_pf->pf_num); in al_pcie_aer_uncorr_get_and_clear()
2891 pcie_pf->pcie_port, pcie_pf->pf_num); in al_pcie_aer_corr_get_and_clear()
2906 pcie_pf->pcie_port, pcie_pf->pf_num, hdr); in al_pcie_aer_err_tlp_hdr_get()
2912 struct al_pcie_port *pcie_port, in al_pcie_port_aer_config() argument
2915 al_assert(pcie_port); in al_pcie_port_aer_config()
2922 return al_pcie_aer_config_aux(pcie_port, 0, params); in al_pcie_port_aer_config()
2927 struct al_pcie_port *pcie_port) in al_pcie_port_aer_uncorr_get_and_clear() argument
2929 al_assert(pcie_port); in al_pcie_port_aer_uncorr_get_and_clear()
2935 return al_pcie_aer_uncorr_get_and_clear_aux(pcie_port, 0); in al_pcie_port_aer_uncorr_get_and_clear()
2940 struct al_pcie_port *pcie_port) in al_pcie_port_aer_corr_get_and_clear() argument
2942 al_assert(pcie_port); in al_pcie_port_aer_corr_get_and_clear()
2948 return al_pcie_aer_corr_get_and_clear_aux(pcie_port, 0); in al_pcie_port_aer_corr_get_and_clear()
2953 struct al_pcie_port *pcie_port, in al_pcie_port_aer_err_tlp_hdr_get() argument
2956 al_assert(pcie_port); in al_pcie_port_aer_err_tlp_hdr_get()
2963 al_pcie_aer_err_tlp_hdr_get_aux(pcie_port, 0, hdr); in al_pcie_port_aer_err_tlp_hdr_get()
2970 al_pcie_local_pipe_loopback_enter(struct al_pcie_port *pcie_port) in al_pcie_local_pipe_loopback_enter() argument
2972 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_local_pipe_loopback_enter()
2974 al_dbg("PCIe %d: Enter LOCAL PIPE Loopback mode", pcie_port->port_id); in al_pcie_local_pipe_loopback_enter()
2994 al_pcie_local_pipe_loopback_exit(struct al_pcie_port *pcie_port) in al_pcie_local_pipe_loopback_exit() argument
2996 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_local_pipe_loopback_exit()
2998 al_dbg("PCIe %d: Exit LOCAL PIPE Loopback mode", pcie_port->port_id); in al_pcie_local_pipe_loopback_exit()
3012 al_pcie_remote_loopback_enter(struct al_pcie_port *pcie_port) in al_pcie_remote_loopback_enter() argument
3014 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_remote_loopback_enter()
3016 al_dbg("PCIe %d: Enter REMOTE Loopback mode", pcie_port->port_id); in al_pcie_remote_loopback_enter()
3032 al_pcie_remote_loopback_exit(struct al_pcie_port *pcie_port) in al_pcie_remote_loopback_exit() argument
3034 struct al_pcie_regs *regs = pcie_port->regs; in al_pcie_remote_loopback_exit()
3036 al_dbg("PCIe %d: Exit REMOTE Loopback mode", pcie_port->port_id); in al_pcie_remote_loopback_exit()