]> Zhao Yanbai Git Server - kernel.git/commitdiff
回退在bochs上无法正确读取PCI的代码
authoracevest <zhaoyanbai@126.com>
Wed, 17 May 2023 15:51:43 +0000 (23:51 +0800)
committeracevest <zhaoyanbai@126.com>
Wed, 17 May 2023 15:51:43 +0000 (23:51 +0800)
Makefile
drivers/pci.c
include/pci.h

index 70fc7562f93a03b2cb2a67c440cdeacbcf433595..f6e3e653294a5fbef3500d22ba9230c905666f37 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -25,7 +25,6 @@ endif
 
 CFLAGS         = -g -c -fno-builtin -m32 -DBUILDER='"$(shell whoami)"'
 CFLAGS     += -DFIX_SYSENTER_ESP_MODE=1
-#CFLAGS     += -DPCI_RW_ALIGN_MODE
 SYSTEMMAP      = System.map
 KERNELBIN      = KERNEL.BIN
 LINKSCRIPT     = scripts/link.ld
index 74db154800da0cd50e4ff62a964f11e014dbc7d2..a027ba10a755c2491600a9b249f9b87eb07d4e49 100644 (file)
@@ -23,7 +23,6 @@ LIST_HEAD(pci_devs);
 
 const char *pci_get_info(unsigned int classcode, unsigned int progif);
 
-#if PCI_RW_ALIGN_MODE
 int pci_read_config_byte(int cmd) {
     outl(PCI_CONFIG_CMD(cmd), PCI_ADDR);
     return inb(PCI_DATA + (PCI_GET_CMD_REG(cmd) & 3));
@@ -53,37 +52,6 @@ void pci_write_config_long(int value, int cmd) {
     outl(PCI_CONFIG_CMD(cmd), PCI_ADDR);
     outl(value, PCI_DATA);
 }
-#else
-int pci_read_config_byte(int cmd) {
-    outl(cmd, PCI_ADDR);
-    return inb(PCI_DATA);
-}
-
-int pci_read_config_word(int cmd) {
-    outl(cmd, PCI_ADDR);
-    return inw(PCI_DATA);
-}
-
-int pci_read_config_long(int cmd) {
-    outl(cmd, PCI_ADDR);
-    return inl(PCI_DATA);
-}
-
-void pci_write_config_byte(int value, int cmd) {
-    outl(cmd, PCI_ADDR);
-    outb(value & 0xFF, PCI_DATA);
-}
-
-void pci_write_config_word(int value, int cmd) {
-    outl(cmd, PCI_ADDR);
-    outw(value & 0xFFFF, PCI_DATA);
-}
-
-void pci_write_config_long(int value, int cmd) {
-    outl(cmd, PCI_ADDR);
-    outl(value, PCI_DATA);
-}
-#endif
 
 void scan_pci_bus(int bus) {
     u8 dev, devfn;
index 4120007448210bb74f88bcd664a7cafa41d4470a..d0ca66f7dc482e3d0f5472d1d804cc94ad70e9e9 100644 (file)
 // PCI Command
 // 这个PCI_CMD是写入PCI_ADDR的,通过bus,dev,fn,reg可以定位到某个PCI总线(可以有多条PCI总线)上的某个设备的某个功能的某个寄存器
 #define PCI_CMD(bus, dev, fn, reg) (0x80000000 | (bus << 16) | (dev << 11) | (fn << 8) | reg)
-
-#if PCI_RW_ALIGN_MODE
 #define PCI_CONFIG_CMD(cmd) (cmd & ~3)
 #define PCI_GET_CMD_REG(cmd) (cmd & 0xFF)
-#endif
 
 // PCI Device
 //  All PCI compliant devices must support the Vendor ID, Device ID, Command and Status, Revision ID, Class Code and