Lines Matching defs:bmi
212 struct bootmem_info * const bmi = &bootmem_info;
213 pv_addr_t *pv = bmi->bmi_freeblocks;
247 physical_start = bmi->bmi_start = memstart;
248 physical_end = bmi->bmi_end = memstart + memsize;
253 bmi->bmi_end -= PAGE_SIZE;
264 bmi->bmi_kernelstart = kernelstart;
265 bmi->bmi_kernelend = kernelend;
268 fdt_memory_remove_range(bmi->bmi_kernelstart,
269 bmi->bmi_kernelend - bmi->bmi_kernelstart);
282 pv->pv_pa = bmi->bmi_kernelend;
284 pv->pv_size = bmi->bmi_end - bmi->bmi_kernelend;
285 bmi->bmi_freepages += pv->pv_size / PAGE_SIZE;
294 if (bmi->bmi_start < bmi->bmi_kernelstart) {
295 pv->pv_pa = bmi->bmi_start;
297 pv->pv_size = bmi->bmi_kernelstart - pv->pv_pa;
298 bmi->bmi_freepages += pv->pv_size / PAGE_SIZE;
305 bmi->bmi_nfreeblocks = pv - bmi->bmi_freeblocks;
307 SLIST_INIT(&bmi->bmi_freechunks);
308 SLIST_INIT(&bmi->bmi_chunks);
331 add_pages(struct bootmem_info *bmi, pv_addr_t *pv)
333 pv_addr_t **pvp = &SLIST_FIRST(&bmi->bmi_chunks);
350 SLIST_INSERT_HEAD(&bmi->bmi_freechunks, pv, pv_list);
358 pv_addr_t * const new_pv = SLIST_FIRST(&bmi->bmi_freechunks);
360 SLIST_REMOVE_HEAD(&bmi->bmi_freechunks, pv_list);
376 valloc_pages(struct bootmem_info *bmi, pv_addr_t *pv, size_t npages,
380 pv_addr_t *free_pv = bmi->bmi_freeblocks;
396 valloc_pages(bmi, &kernel_l1pt, L1_TABLE_SIZE / PAGE_SIZE,
398 add_pages(bmi, &kernel_l1pt);
400 valloc_pages(bmi, &efirt_l1pt, L1_TABLE_SIZE / PAGE_SIZE,
402 add_pages(bmi, &efirt_l1pt);
409 if (free_idx == bmi->bmi_nfreeblocks) {
444 --bmi->bmi_nfreeblocks;
445 for (; free_idx < bmi->bmi_nfreeblocks; free_idx++) {
450 bmi->bmi_freepages -= npages;
460 struct bootmem_info * const bmi = &bootmem_info;
493 size_t kernel_size = bmi->bmi_kernelend;
494 kernel_size -= (bmi->bmi_kernelstart & -L2_S_SEGSIZE);
524 KASSERT(KERNEL_L2PT_KERNEL_NUM + KERNEL_L2PT_VMDATA_NUM < __arraycount(bmi->bmi_l2pts));
525 pv_addr_t * const kernel_l2pt = bmi->bmi_l2pts;
530 pv_addr_t chunks[__arraycount(bmi->bmi_l2pts) + 11];
553 SLIST_INSERT_HEAD(&bmi->bmi_freechunks, &chunks[i], pv_list);
574 valloc_pages(bmi, &bmi->bmi_vector_l2pt, 1,
576 add_pages(bmi, &bmi->bmi_vector_l2pt);
584 valloc_pages(bmi, &kernel_l2pt[idx], 1,
586 add_pages(bmi, &kernel_l2pt[idx]);
594 valloc_pages(bmi, &vmdata_l2pt[idx], 1,
596 add_pages(bmi, &vmdata_l2pt[idx]);
605 valloc_pages(bmi, &kasan_l2pt[idx], 1,
607 add_pages(bmi, &kasan_l2pt[idx]);
616 valloc_pages(bmi, &bmi->bmi_io_l2pt, 1,
618 add_pages(bmi, &bmi->bmi_io_l2pt);
624 valloc_pages(bmi, &abtstack, ABT_STACK_SIZE * cpu_num,
626 add_pages(bmi, &abtstack);
627 valloc_pages(bmi, &fiqstack, FIQ_STACK_SIZE * cpu_num,
629 add_pages(bmi, &fiqstack);
630 valloc_pages(bmi, &irqstack, IRQ_STACK_SIZE * cpu_num,
632 add_pages(bmi, &irqstack);
633 valloc_pages(bmi, &undstack, UND_STACK_SIZE * cpu_num,
635 add_pages(bmi, &undstack);
636 valloc_pages(bmi, &idlestack, UPAGES * cpu_num, /* SVC32 */
638 add_pages(bmi, &idlestack);
639 valloc_pages(bmi, &kernelstack, UPAGES, /* SVC32 */
641 add_pages(bmi, &kernelstack);
645 valloc_pages(bmi, &msgbuf, msgbuf_pgs,
647 add_pages(bmi, &msgbuf);
664 valloc_pages(bmi, &systempage, 1,
678 valloc_pages(bmi, &minidataclean, 1,
706 pmap_link_l2pt(l1pt_va, va, &bmi->bmi_vector_l2pt);
709 __func__, bmi->bmi_vector_l2pt.pv_va,
710 bmi->bmi_vector_l2pt.pv_pa, systempage.pv_va, "(vectors)");
718 KERN_PHYSTOV(bmi->bmi_kernelstart & -L2_S_SEGSIZE);
748 pmap_link_l2pt(l1pt_va, va, &bmi->bmi_io_l2pt);
751 __func__, bmi->bmi_io_l2pt.pv_va, bmi->bmi_io_l2pt.pv_pa,
781 size_t totalsize = bmi->bmi_kernelend - bmi->bmi_kernelstart;
782 size_t textsize = KERN_VTOPHYS((uintptr_t)etext) - bmi->bmi_kernelstart;
788 text.pv_pa = bmi->bmi_kernelstart;
789 text.pv_va = KERN_PHYSTOV(bmi->bmi_kernelstart);
797 add_pages(bmi, &text);
808 add_pages(bmi, &data);
813 SLIST_FOREACH(lpv, &bmi->bmi_chunks, pv_list) {
822 pv_addr_t *pv = SLIST_FIRST(&bmi->bmi_chunks);
823 if (!mapallmem_p || pv->pv_pa == bmi->bmi_start) {
891 if (mapallmem_p && cur_pv.pv_pa + cur_pv.pv_size < bmi->bmi_end) {
894 cur_pv.pv_size = bmi->bmi_end - cur_pv.pv_pa;
907 cur_pv.pv_size = bmi->bmi_end - cur_pv.pv_pa;
969 VPRINTF(mem_fmt, "SDRAM", bmi->bmi_start, bmi->bmi_end - 1,
970 KERN_PHYSTOV(bmi->bmi_start), KERN_PHYSTOV(bmi->bmi_end - 1),
1031 for (size_t i = 0; i < bmi->bmi_nfreeblocks; i++) {
1032 pv = &bmi->bmi_freeblocks[i];