09/01/20 19:28:06 yUIqzKQr
アンテナを全部つないでみても動かない
さらにkernelのPCIとDMA関係を調べてみて、初期化が足らない可能性があったので、
pt1_pci_init_oneのpci_enable_device(pdev)の後に
rc = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
if (rc) {
printk(KERN_ERR "PT1:DMA MASK ERROR");
return rc;
}
pci_read_config_word(pdev, PCI_COMMAND, &cmd);
if (!(cmd & PCI_COMMAND_MASTER)) {
printk(KERN_INFO "Attempting to enable Bus Mastering\n");
pci_set_master(pdev);
pci_read_config_word(pdev, PCI_COMMAND, &cmd);
if (!(cmd & PCI_COMMAND_MASTER)) {
printk(KERN_ERR "Bus Mastering is not enabled\n");
return -EIO;
}
}
printk(KERN_INFO "Bus Mastering Enabled.\n");
もう一つ、ioremapの前に
rc = request_mem_region(dev_conf->mmio_start, dev_conf->mmio_len, DEV_NAME);
if (!rc) {
printk(KERN_ERR "PT1: cannot request iomem (0x%llx).\n", (unsigned long long) dev_conf->mmio_start);
goto out_err_regbase;
}
を入れてみたけど、TSが取れないことは変わらない
そういえば作者はx86_64みたいだけど、x86で動作確認できている人いる?