Lines Matching +full:slot +full:- +full:size

1 // SPDX-License-Identifier: GPL-2.0
36 unsigned long size, in early_memremap_pgprot_adjust() argument
77 slot_virt[i] = __fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i); in early_ioremap_setup()
100 __early_ioremap(resource_size_t phys_addr, unsigned long size, pgprot_t prot) in __early_ioremap() argument
106 int i, slot; in __early_ioremap() local
110 slot = -1; in __early_ioremap()
113 slot = i; in __early_ioremap()
118 if (WARN(slot < 0, "%s(%pa, %08lx) not found slot\n", in __early_ioremap()
119 __func__, &phys_addr, size)) in __early_ioremap()
122 /* Don't allow wraparound or zero size */ in __early_ioremap()
123 last_addr = phys_addr + size - 1; in __early_ioremap()
124 if (WARN_ON(!size || last_addr < phys_addr)) in __early_ioremap()
127 prev_size[slot] = size; in __early_ioremap()
129 * Mappings have to be page-aligned in __early_ioremap()
133 size = PAGE_ALIGN(last_addr + 1) - phys_addr; in __early_ioremap()
138 nrpages = size >> PAGE_SHIFT; in __early_ioremap()
145 idx = FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*slot; in __early_ioremap()
152 --idx; in __early_ioremap()
153 --nrpages; in __early_ioremap()
156 __func__, &phys_addr, size, slot, offset, slot_virt[slot]); in __early_ioremap()
158 prev_map[slot] = (void __iomem *)(offset + slot_virt[slot]); in __early_ioremap()
159 return prev_map[slot]; in __early_ioremap()
162 void __init early_iounmap(void __iomem *addr, unsigned long size) in early_iounmap() argument
168 int i, slot; in early_iounmap() local
170 slot = -1; in early_iounmap()
173 slot = i; in early_iounmap()
178 if (WARN(slot < 0, "%s(%p, %08lx) not found slot\n", in early_iounmap()
179 __func__, addr, size)) in early_iounmap()
182 if (WARN(prev_size[slot] != size, in early_iounmap()
183 "%s(%p, %08lx) [%d] size not consistent %08lx\n", in early_iounmap()
184 __func__, addr, size, slot, prev_size[slot])) in early_iounmap()
188 __func__, addr, size, slot); in early_iounmap()
195 nrpages = PAGE_ALIGN(offset + size) >> PAGE_SHIFT; in early_iounmap()
197 idx = FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*slot; in early_iounmap()
203 --idx; in early_iounmap()
204 --nrpages; in early_iounmap()
206 prev_map[slot] = NULL; in early_iounmap()
211 early_ioremap(resource_size_t phys_addr, unsigned long size) in early_ioremap() argument
213 return __early_ioremap(phys_addr, size, FIXMAP_PAGE_IO); in early_ioremap()
218 early_memremap(resource_size_t phys_addr, unsigned long size) in early_memremap() argument
220 pgprot_t prot = early_memremap_pgprot_adjust(phys_addr, size, in early_memremap()
223 return (__force void *)__early_ioremap(phys_addr, size, prot); in early_memremap()
227 early_memremap_ro(resource_size_t phys_addr, unsigned long size) in early_memremap_ro() argument
229 pgprot_t prot = early_memremap_pgprot_adjust(phys_addr, size, in early_memremap_ro()
232 return (__force void *)__early_ioremap(phys_addr, size, prot); in early_memremap_ro()
238 early_memremap_prot(resource_size_t phys_addr, unsigned long size, in early_memremap_prot() argument
241 return (__force void *)__early_ioremap(phys_addr, size, in early_memremap_prot()
249 * If no empty slot, handle that and return -ENOMEM.
251 int __init copy_from_early_mem(void *dest, phys_addr_t src, unsigned long size) in copy_from_early_mem() argument
256 while (size) { in copy_from_early_mem()
258 clen = size; in copy_from_early_mem()
259 if (clen > MAX_MAP_CHUNK - slop) in copy_from_early_mem()
260 clen = MAX_MAP_CHUNK - slop; in copy_from_early_mem()
263 return -ENOMEM; in copy_from_early_mem()
268 size -= clen; in copy_from_early_mem()
276 early_ioremap(resource_size_t phys_addr, unsigned long size) in early_ioremap() argument
283 early_memremap(resource_size_t phys_addr, unsigned long size) in early_memremap() argument
288 early_memremap_ro(resource_size_t phys_addr, unsigned long size) in early_memremap_ro() argument
293 void __init early_iounmap(void __iomem *addr, unsigned long size) in early_iounmap() argument
300 void __init early_memunmap(void *addr, unsigned long size) in early_memunmap() argument
302 early_iounmap((__force void __iomem *)addr, size); in early_memunmap()