Lines Matching refs:a

217 find_rsdp_address(struct pci_access *a, const char *efisystab, int use_bsd UNUSED, int use_x86bios …  in find_rsdp_address()  argument
228 struct ecam_access *eacc = a->backend_data; in find_rsdp_address()
243 a->debug("reading EFI system table: %s...", efisystab); in find_rsdp_address()
270 a->debug("opening failed: %s...", strerror(errno)); in find_rsdp_address()
282 a->debug("calling kenv hint.acpi.0.rsdp..."); in find_rsdp_address()
292 a->debug("calling sysctl machdep.acpi_root..."); in find_rsdp_address()
303 a->debug("calling sysctl hw.acpi.root..."); in find_rsdp_address()
316 a->debug("reading EBDA location from BDA..."); in find_rsdp_address()
322 a->debug("unmapping of BDA failed: %s...", strerror(errno)); in find_rsdp_address()
325 a->debug("scanning first kB of EBDA at 0x%" PCI_U64_FMT_X "...", ebda); in find_rsdp_address()
338 a->debug("unmapping of EBDA failed: %s...", strerror(errno)); in find_rsdp_address()
341 a->debug("mapping of EBDA failed: %s...", strerror(errno)); in find_rsdp_address()
344 a->debug("EBDA location 0x%" PCI_U64_FMT_X " is insane...", ebda); in find_rsdp_address()
347 a->debug("mapping of BDA failed: %s...", strerror(errno)); in find_rsdp_address()
354 a->debug("scanning BIOS below 1 MB..."); in find_rsdp_address()
367 a->debug("unmapping of BIOS failed: %s...", strerror(errno)); in find_rsdp_address()
370 a->debug("mapping of BIOS failed: %s...", strerror(errno)); in find_rsdp_address()
385 get_system_firmware_table_acpi_mcfg(struct pci_access *a) in get_system_firmware_table_acpi_mcfg() argument
411 a->debug("Cannot retrieve ACPI MCFG table: %s.\n", win32_strerror(error)); in get_system_firmware_table_acpi_mcfg()
415 mcfg = pci_malloc(a, size); in get_system_firmware_table_acpi_mcfg()
420 a->debug("Cannot retrieve ACPI MCFG table: %s.\n", win32_strerror(error)); in get_system_firmware_table_acpi_mcfg()
427 a->debug("ACPI MCFG table is broken.\n"); in get_system_firmware_table_acpi_mcfg()
437 find_mcfg(struct pci_access *a, const char *acpimcfg, const char *efisystab, int use_bsd, int use_x… argument
439 struct ecam_access *eacc = a->backend_data;
467 a->debug("reading ACPI mcfg via GetSystemFirmwareTable()...");
468 mcfg = get_system_firmware_table_acpi_mcfg(a);
471 a->debug("failed...");
479 a->debug("glob(%s) failed: %d...", acpimcfg, ret);
484 a->debug("reading ACPI mcfg file: %s...", path);
498 mcfg = pci_malloc(a, length);
511 a->debug("failed...");
515 a->debug("searching for ACPI RSDP...");
516 rsdp_address = find_rsdp_address(a, efisystab, use_bsd, use_x86bios);
519 a->debug("not found...");
522 a->debug("found at 0x%" PCI_U64_FMT_X "...", rsdp_address);
526 a->debug("invalid...");
531a->debug("searching for ACPI MCFG (XSDT=0x%" PCI_U64_FMT_X ", RSDT=0x%lx)...", xsdt_address, (unsi…
536 a->debug("via XSDT...");
543 mcfg = pci_malloc(a, sdt->length);
552 a->debug("found...");
560 a->debug("via RSDT...");
567 mcfg = pci_malloc(a, sdt->length);
576 a->debug("found...");
581 a->debug("not found...");
794 munmap_reg(struct pci_access *a) argument
796 struct ecam_access *eacc = a->backend_data;
810 mmap_reg(struct pci_access *a, int w, int domain, u8 bus, u8 dev, u8 func, int pos, volatile void *… argument
812 struct ecam_access *eacc = a->backend_data;
830 addrs = pci_get_param(a, "ecam.addrs");
841 cache = eacc->cache = pci_malloc(a, sizeof(*cache));
865 ecam_config(struct pci_access *a) argument
867 physmem_init_config(a);
868 pci_define_param(a, "ecam.acpimcfg", PCI_PATH_ACPI_MCFG, "Path to the ACPI MCFG table");
869 pci_define_param(a, "ecam.efisystab", PCI_PATH_EFI_SYSTAB, "Path to the EFI system table");
871 pci_define_param(a, "ecam.bsd", "1", "Use BSD kenv or sysctl to find ACPI MCFG table");
874 pci_define_param(a, "ecam.x86bios", "1", "Scan x86 BIOS memory for ACPI MCFG table");
876 …pci_define_param(a, "ecam.addrs", "", "Physical addresses of memory mapped PCIe ECAM interface"); …
880 ecam_detect(struct pci_access *a) argument
883 const char *acpimcfg = pci_get_param(a, "ecam.acpimcfg");
884 const char *efisystab = pci_get_param(a, "ecam.efisystab");
886 const char *bsd = pci_get_param(a, "ecam.bsd");
889 const char *x86bios = pci_get_param(a, "ecam.x86bios");
891 const char *addrs = pci_get_param(a, "ecam.addrs");
900 a->debug("ecam.addrs was not specified...");
912 a->debug("cannot access acpimcfg: %s: %s...", mcfg_glob.gl_pathv[0], strerror(errno));
919 a->debug("glob(%s) failed: %d...", acpimcfg, ret);
931 a->debug("cannot access efisystab: %s: %s...", efisystab, strerror(errno));
939 a->debug("not using BSD kenv/sysctl...");
949 a->debug("not using x86 BIOS...");
958 a->debug("no ecam source provided");
964 a->debug("ecam.addrs has invalid format %s", addrs);
968 if (physmem_access(a, 0))
970 a->debug("cannot access physical memory: %s", strerror(errno));
976 eacc = pci_malloc(a, sizeof(*eacc));
978 eacc->physmem = physmem_open(a, a->writeable);
981 a->debug("cannot open physcal memory: %s.", strerror(errno));
989 a->debug("Cannot get page size: %s.", strerror(errno));
997 a->backend_data = eacc;
998 eacc->mcfg = find_mcfg(a, acpimcfg, efisystab, use_bsd, use_x86bios);
1003 a->backend_data = NULL;
1009 a->debug("using with ecam addresses %s", addrs);
1011a->debug("using with%s%s%s%s%s%s", use_acpimcfg ? " acpimcfg=" : "", use_acpimcfg ? acpimcfg : "",…
1017 ecam_init(struct pci_access *a) argument
1019 const char *acpimcfg = pci_get_param(a, "ecam.acpimcfg");
1020 const char *efisystab = pci_get_param(a, "ecam.efisystab");
1022 const char *bsd = pci_get_param(a, "ecam.bsd");
1025 const char *x86bios = pci_get_param(a, "ecam.x86bios");
1027 const char *addrs = pci_get_param(a, "ecam.addrs");
1029 struct ecam_access *eacc = a->backend_data;
1038 a->error("Option ecam.addrs has invalid address format \"%s\".", addrs);
1042 physmem = physmem_open(a, a->writeable);
1044 a->error("Cannot open physcal memory: %s.", strerror(errno));
1048 a->error("Cannot get page size: %s.", strerror(errno));
1050 eacc = pci_malloc(a, sizeof(*eacc));
1055 a->backend_data = eacc;
1069 eacc->mcfg = find_mcfg(a, acpimcfg, efisystab, use_bsd, use_x86bios);
1071 a->error("Option ecam.addrs was not specified and ACPI MCFG table cannot be found.");
1080 if (!mmap_reg(a, 0, test_domain, test_bus, 0, 0, 0, &test_reg))
1081 a->error("Cannot map ecam region: %s.", errno ? strerror(errno) : "Unknown error");
1085 ecam_cleanup(struct pci_access *a) argument
1087 struct ecam_access *eacc = a->backend_data;
1089 munmap_reg(a);
1093 a->backend_data = NULL;
1097 ecam_scan(struct pci_access *a) argument
1099 const char *addrs = pci_get_param(a, "ecam.addrs");
1100 struct ecam_access *eacc = a->backend_data;
1105 segments = pci_malloc(a, 0xFFFF/8);
1129 pci_generic_scan_domain(a, 32*i + j);