Lines Matching full:bar

88 	 * Set the root complex BAR configuration register:  in cdns_pcie_host_init_root_port()
122 enum cdns_pcie_rp_bar bar, in cdns_pcie_host_bar_ib_config() argument
129 if (!rc->avail_ib_bar[bar]) in cdns_pcie_host_bar_ib_config()
132 rc->avail_ib_bar[bar] = false; in cdns_pcie_host_bar_ib_config()
138 cdns_pcie_writel(pcie, CDNS_PCIE_AT_IB_RP_BAR_ADDR0(bar), addr0); in cdns_pcie_host_bar_ib_config()
139 cdns_pcie_writel(pcie, CDNS_PCIE_AT_IB_RP_BAR_ADDR1(bar), addr1); in cdns_pcie_host_bar_ib_config()
141 if (bar == RP_NO_BAR) in cdns_pcie_host_bar_ib_config()
145 value &= ~(LM_RC_BAR_CFG_CTRL_MEM_64BITS(bar) | in cdns_pcie_host_bar_ib_config()
146 LM_RC_BAR_CFG_CTRL_PREF_MEM_64BITS(bar) | in cdns_pcie_host_bar_ib_config()
147 LM_RC_BAR_CFG_CTRL_MEM_32BITS(bar) | in cdns_pcie_host_bar_ib_config()
148 LM_RC_BAR_CFG_CTRL_PREF_MEM_32BITS(bar) | in cdns_pcie_host_bar_ib_config()
149 LM_RC_BAR_CFG_APERTURE(bar, bar_aperture_mask[bar] + 2)); in cdns_pcie_host_bar_ib_config()
152 value |= LM_RC_BAR_CFG_CTRL_MEM_64BITS(bar); in cdns_pcie_host_bar_ib_config()
153 value |= LM_RC_BAR_CFG_CTRL_PREF_MEM_64BITS(bar); in cdns_pcie_host_bar_ib_config()
156 value |= LM_RC_BAR_CFG_CTRL_MEM_32BITS(bar); in cdns_pcie_host_bar_ib_config()
157 value |= LM_RC_BAR_CFG_CTRL_PREF_MEM_32BITS(bar); in cdns_pcie_host_bar_ib_config()
160 value |= LM_RC_BAR_CFG_APERTURE(bar, aperture); in cdns_pcie_host_bar_ib_config()
169 enum cdns_pcie_rp_bar bar, sel_bar; in cdns_pcie_host_find_min_bar() local
172 for (bar = RP_BAR0; bar <= RP_NO_BAR; bar++) { in cdns_pcie_host_find_min_bar()
173 if (!rc->avail_ib_bar[bar]) in cdns_pcie_host_find_min_bar()
176 if (size <= bar_max_size[bar]) { in cdns_pcie_host_find_min_bar()
178 sel_bar = bar; in cdns_pcie_host_find_min_bar()
182 if (bar_max_size[bar] < bar_max_size[sel_bar]) in cdns_pcie_host_find_min_bar()
183 sel_bar = bar; in cdns_pcie_host_find_min_bar()
193 enum cdns_pcie_rp_bar bar, sel_bar; in cdns_pcie_host_find_max_bar() local
196 for (bar = RP_BAR0; bar <= RP_NO_BAR; bar++) { in cdns_pcie_host_find_max_bar()
197 if (!rc->avail_ib_bar[bar]) in cdns_pcie_host_find_max_bar()
200 if (size >= bar_max_size[bar]) { in cdns_pcie_host_find_max_bar()
202 sel_bar = bar; in cdns_pcie_host_find_max_bar()
206 if (bar_max_size[bar] > bar_max_size[sel_bar]) in cdns_pcie_host_find_max_bar()
207 sel_bar = bar; in cdns_pcie_host_find_max_bar()
220 enum cdns_pcie_rp_bar bar; in cdns_pcie_host_bar_config() local
237 * Try to find a minimum BAR whose size is greater than in cdns_pcie_host_bar_config()
241 * If a minimum BAR is found, IB ATU will be configured and in cdns_pcie_host_bar_config()
244 bar = cdns_pcie_host_find_min_bar(rc, size); in cdns_pcie_host_bar_config()
245 if (bar != RP_BAR_UNDEFINED) { in cdns_pcie_host_bar_config()
246 ret = cdns_pcie_host_bar_ib_config(rc, bar, cpu_addr, in cdns_pcie_host_bar_config()
249 dev_err(dev, "IB BAR: %d config failed\n", bar); in cdns_pcie_host_bar_config()
255 * resource_entry size cannot be fitted in a single BAR. So we in cdns_pcie_host_bar_config()
256 * find a maximum BAR whose size is less than or equal to the in cdns_pcie_host_bar_config()
259 * BAR. The remaining size would be fitted during the next in cdns_pcie_host_bar_config()
261 * If a maximum BAR is not found, there is no way we can fit in cdns_pcie_host_bar_config()
264 bar = cdns_pcie_host_find_max_bar(rc, size); in cdns_pcie_host_bar_config()
265 if (bar == RP_BAR_UNDEFINED) { in cdns_pcie_host_bar_config()
266 dev_err(dev, "No free BAR to map cpu_addr %llx\n", in cdns_pcie_host_bar_config()
271 winsize = bar_max_size[bar]; in cdns_pcie_host_bar_config()
272 ret = cdns_pcie_host_bar_ib_config(rc, bar, cpu_addr, winsize, in cdns_pcie_host_bar_config()
275 dev_err(dev, "IB BAR: %d config failed\n", bar); in cdns_pcie_host_bar_config()
311 of_property_read_u32(np, "cdns,no-bar-match-nbits", in cdns_pcie_host_map_dma_ranges()
316 dev_err(dev, "IB BAR: %d config failed\n", RP_NO_BAR); in cdns_pcie_host_map_dma_ranges()
424 enum cdns_pcie_rp_bar bar; in cdns_pcie_host_setup() local
464 for (bar = RP_BAR0; bar <= RP_NO_BAR; bar++) in cdns_pcie_host_setup()
465 rc->avail_ib_bar[bar] = true; in cdns_pcie_host_setup()