Lines Matching refs:fw_dump

45 static struct fw_dump fw_dump;
88 if (!fw_dump.fadump_enabled)
95 if (fw_dump.nocma)
98 base = fw_dump.reserve_dump_area_start;
99 size = fw_dump.boot_memory_size;
129 fw_dump.reserve_dump_area_size);
149 rtas_fadump_dt_scan(&fw_dump, node);
154 opal_fadump_dt_scan(&fw_dump, node);
169 if (!fw_dump.dump_registered)
175 d_start = fw_dump.reserve_dump_area_start;
176 d_end = d_start + fw_dump.reserve_dump_area_size;
180 return (addr <= fw_dump.boot_mem_top);
185 if (!fw_dump.dump_registered || !fw_dump.fadumphdr_addr)
192 return fw_dump.dump_active;
235 for (i = 0; i < fw_dump.boot_mem_regs_cnt; i++) {
236 d_start = fw_dump.boot_mem_addr[i];
237 d_end = d_start + fw_dump.boot_mem_sz[i];
255 d_start = fw_dump.reserve_dump_area_start;
256 d_end = d_start + fw_dump.reserve_dump_area_size;
266 (fw_dump.fadump_supported ? "present" : "no support"));
268 if (!fw_dump.fadump_supported)
272 (fw_dump.fadump_enabled ? "yes" : "no"));
274 (fw_dump.dump_active ? "yes" : "no"));
276 pr_debug(" CPU state data size: %lx\n", fw_dump.cpu_state_data_size);
277 pr_debug(" HPTE region size : %lx\n", fw_dump.hpte_region_size);
278 pr_debug(" Boot memory size : %lx\n", fw_dump.boot_memory_size);
279 pr_debug(" Boot memory top : %llx\n", fw_dump.boot_mem_top);
280 pr_debug("Boot memory regions cnt: %llx\n", fw_dump.boot_mem_regs_cnt);
281 for (i = 0; i < fw_dump.boot_mem_regs_cnt; i++) {
283 fw_dump.boot_mem_addr[i], fw_dump.boot_mem_sz[i]);
307 if (fw_dump.reserve_bootvar)
320 if (fw_dump.reserve_bootvar)
323 fw_dump.reserve_bootvar = (unsigned long)size;
330 if (fw_dump.reserve_bootvar > max_size) {
331 fw_dump.reserve_bootvar = max_size;
333 (fw_dump.reserve_bootvar >> 20));
336 return fw_dump.reserve_bootvar;
337 } else if (fw_dump.reserve_bootvar) {
342 return fw_dump.reserve_bootvar;
355 bootmem_min = fw_dump.ops->fadump_get_bootmem_min();
367 size += fw_dump.cpu_state_data_size;
368 size += fw_dump.hpte_region_size;
374 size += fw_dump.boot_memory_size;
384 size += (fw_dump.ops->fadump_get_metadata_size ?
385 fw_dump.ops->fadump_get_metadata_size() : 0);
392 int i = fw_dump.boot_mem_regs_cnt++;
394 if (fw_dump.boot_mem_regs_cnt > FADUMP_MAX_MEM_REGS) {
395 fw_dump.boot_mem_regs_cnt = FADUMP_MAX_MEM_REGS;
401 fw_dump.boot_mem_addr[i] = rstart;
402 fw_dump.boot_mem_sz[i] = rsize;
417 max_size = fw_dump.max_copy_size ? fw_dump.max_copy_size : msize;
438 unsigned long mem_size = fw_dump.boot_memory_size;
443 fw_dump.boot_mem_regs_cnt = 0;
466 fw_dump.boot_mem_top = PAGE_ALIGN(fw_dump.boot_memory_size + hole_size);
539 if (!fw_dump.fadump_enabled)
542 if (!fw_dump.fadump_supported) {
552 if (!fw_dump.dump_active) {
553 fw_dump.boot_memory_size =
556 if (!fw_dump.nocma) {
557 fw_dump.boot_memory_size =
558 ALIGN(fw_dump.boot_memory_size,
563 bootmem_min = fw_dump.ops->fadump_get_bootmem_min();
564 if (fw_dump.boot_memory_size < bootmem_min) {
566 fw_dump.boot_memory_size, bootmem_min);
597 base = fw_dump.boot_mem_top;
599 fw_dump.reserve_dump_area_size = size;
600 if (fw_dump.dump_active) {
619 pr_debug("fadumphdr_addr = %#016lx\n", fw_dump.fadumphdr_addr);
621 fw_dump.reserve_dump_area_start);
633 fw_dump.reserve_dump_area_start = base;
639 if (fw_dump.ops->fadump_setup_metadata &&
640 (fw_dump.ops->fadump_setup_metadata(&fw_dump) < 0))
656 fw_dump.fadump_enabled = 0;
657 fw_dump.reserve_dump_area_size = 0;
668 fw_dump.fadump_enabled = 1;
670 fw_dump.fadump_enabled = 0;
672 fw_dump.fadump_enabled = 1;
673 fw_dump.nocma = 1;
688 fw_dump.reserve_bootvar = memparse(p, &p);
724 while (fw_dump.dump_registered)
729 fdh = __va(fw_dump.fadumphdr_addr);
750 fw_dump.ops->fadump_trigger(fdh, str);
778 phdr->p_paddr = __pa(fw_dump.cpu_notes_buf_vaddr);
780 phdr->p_filesz = fw_dump.cpu_notes_buf_size;
781 phdr->p_memsz = fw_dump.cpu_notes_buf_size;
811 fw_dump.cpu_notes_buf_size = num_cpus * sizeof(note_buf_t);
812 fw_dump.cpu_notes_buf_size = PAGE_ALIGN(fw_dump.cpu_notes_buf_size);
813 fw_dump.cpu_notes_buf_vaddr =
814 (unsigned long)fadump_alloc_buffer(fw_dump.cpu_notes_buf_size);
815 if (!fw_dump.cpu_notes_buf_vaddr) {
817 fw_dump.cpu_notes_buf_size);
822 fw_dump.cpu_notes_buf_size,
823 fw_dump.cpu_notes_buf_vaddr);
829 if (!fw_dump.cpu_notes_buf_vaddr)
832 fadump_free_buffer(fw_dump.cpu_notes_buf_vaddr,
833 fw_dump.cpu_notes_buf_size);
834 fw_dump.cpu_notes_buf_vaddr = 0;
835 fw_dump.cpu_notes_buf_size = 0;
900 if ((start + size) == base && start >= fw_dump.boot_mem_top)
939 ra_start = fw_dump.reserve_dump_area_start;
940 ra_end = ra_start + fw_dump.reserve_dump_area_size;
1017 for (i = 0; i < fw_dump.boot_mem_regs_cnt; i++) {
1018 start = fw_dump.boot_mem_addr[i];
1019 end = start + fw_dump.boot_mem_sz[i];
1030 if (start < fw_dump.boot_mem_top) {
1031 if (end > fw_dump.boot_mem_top)
1032 start = fw_dump.boot_mem_top;
1059 for (i = 0; i < fw_dump.boot_mem_regs_cnt; i++) {
1060 rstart = fw_dump.boot_mem_addr[i];
1061 rend = rstart + fw_dump.boot_mem_sz[i];
1065 raddr += fw_dump.boot_mem_dest_addr - hole_size;
1126 raddr = fw_dump.boot_mem_addr[0];
1147 phdr->p_offset = fw_dump.boot_mem_dest_addr + offset;
1148 if (j < (fw_dump.boot_mem_regs_cnt - 1)) {
1149 offset += fw_dump.boot_mem_sz[j];
1150 raddr = fw_dump.boot_mem_addr[++j];
1200 if (!fw_dump.reserve_dump_area_size)
1207 addr = fw_dump.fadumphdr_addr;
1218 return fw_dump.ops->fadump_register(&fw_dump);
1223 if (!fw_dump.fadump_supported)
1227 if (fw_dump.dump_active) {
1229 fw_dump.ops->fadump_invalidate(&fw_dump);
1230 } else if (fw_dump.dump_registered) {
1232 fw_dump.ops->fadump_unregister(&fw_dump);
1236 if (fw_dump.ops->fadump_cleanup)
1237 fw_dump.ops->fadump_cleanup(&fw_dump);
1382 ra_start = fw_dump.reserve_dump_area_start;
1383 ra_end = ra_start + fw_dump.reserve_dump_area_size;
1422 if (!fw_dump.dump_active) {
1430 fadump_release_memory(fw_dump.boot_mem_top, memblock_end_of_DRAM());
1437 if (fw_dump.ops->fadump_setup_metadata &&
1438 (fw_dump.ops->fadump_setup_metadata(&fw_dump) < 0))
1440 fw_dump.ops->fadump_init_mem_struct(&fw_dump);
1449 if (!fw_dump.dump_active)
1474 fadump_release_memory(fw_dump.reserve_dump_area_start,
1475 fw_dump.reserve_dump_area_size);
1476 fw_dump.fadump_enabled = 0;
1484 return sprintf(buf, "%d\n", fw_dump.fadump_enabled);
1491 return sprintf(buf, "%ld\n", fw_dump.reserve_dump_area_size);
1498 return sprintf(buf, "%d\n", fw_dump.dump_registered);
1508 if (!fw_dump.fadump_enabled || fw_dump.dump_active)
1518 if (fw_dump.dump_registered == 0) {
1524 fw_dump.ops->fadump_unregister(&fw_dump);
1527 if (fw_dump.dump_registered == 1) {
1529 fw_dump.ops->fadump_unregister(&fw_dump);
1546 if (!fw_dump.fadump_enabled)
1550 fw_dump.ops->fadump_region_show(&fw_dump, m);
1584 if (fw_dump.dump_active) {
1623 if (fw_dump.dump_active) {
1640 if (!fw_dump.fadump_supported)
1646 if (!fw_dump.fadump_enabled)
1653 if (fw_dump.dump_active) {
1658 if (fw_dump.ops->fadump_process(&fw_dump) < 0)
1662 else if (fw_dump.reserve_dump_area_size) {
1663 fw_dump.ops->fadump_init_mem_struct(&fw_dump);
1692 opal_fadump_dt_scan(&fw_dump, node);
1703 if (fw_dump.dump_active) {
1709 fadump_reserve_crash_area(fw_dump.boot_mem_top);