forked from KolibriOS/kolibrios
Devman (acpi.sys):
- Fixed errors breaking build; - Added to auto build; git-svn-id: svn://kolibrios.org@9499 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
c1d40e004d
commit
8848af8de1
@ -1,56 +1,42 @@
|
|||||||
|
CC = kos32-gcc
|
||||||
|
LD = kos32-ld
|
||||||
|
KPACK = kpack
|
||||||
|
|
||||||
|
CFLAGS = -c -w -O2 -fomit-frame-pointer -fno-builtin-printf
|
||||||
|
|
||||||
CC = gcc
|
DRV_DIR = $(CURDIR)/..
|
||||||
FASM = e:/fasm/fasm.exe
|
INCLUDES = -I$(DRV_DIR)/devman/acpica/include -I$(DRV_DIR)/devman -I$(DRV_DIR)/include/linux -I$(DRV_DIR)/include -I$(DRV_DIR)/include/uapi
|
||||||
|
|
||||||
CFLAGS = -c -O2 -fomit-frame-pointer -fno-builtin-printf
|
DEFINES = -D__KERNEL__ -DCONFIG_X86_32 -DCONFIG_X86_L1_CACHE_SHIFT=6 -DCONFIG_ARCH_HAS_CACHE_LINE_SIZE -DHAVE_ACPICA -DCONFIG_ACPI -DLINUX_MOD_DEVICETABLE_H -DCONFIG_PCI
|
||||||
|
|
||||||
|
LDFLAGS = -nostdlib -shared -s -Map acpi.map --image-base 0 --file-alignment 512 --section-alignment 4096
|
||||||
|
|
||||||
DRV_DIR = $(CURDIR)/..
|
LIBPATH := -L$(DRV_DIR)/ddk -L../devman/acpica -L../../contrib/sdk/lib
|
||||||
|
LIBS := -lacpica -lgcc -lddk -lcore
|
||||||
|
|
||||||
DRV_INCLUDES = $(DRV_DIR)/include
|
NAME = acpi.sys
|
||||||
|
|
||||||
ACPI_INCLUDES = ./acpica/include
|
NAME_SRCS = acpi.c \
|
||||||
|
scan.c \
|
||||||
|
pci_root.c \
|
||||||
|
pci_bind.c \
|
||||||
|
pci_irq.c \
|
||||||
|
pci/probe.c \
|
||||||
|
pci/pci.c \
|
||||||
|
pci/access.c
|
||||||
|
|
||||||
INCLUDES = -I$(DRV_INCLUDES) -I$(ACPI_INCLUDES) -I$(DRV_DIR)/include/linux
|
all: $(NAME)
|
||||||
|
|
||||||
DEFINES = -D__KERNEL__ -DCONFIG_X86_32
|
NAME_OBJS = $(patsubst %.S, %.o, $(patsubst %.asm, %.o, \
|
||||||
|
|
||||||
LDFLAGS = -nostdlib -shared -s -Map acpi.map --image-base 0\
|
|
||||||
--file-alignment 512 --section-alignment 4096
|
|
||||||
|
|
||||||
LIBPATH:= -L$(DRV_DIR)/ddk -L./acpica
|
|
||||||
|
|
||||||
LIBS:= -lacpica -lgcc -lddk -lcore
|
|
||||||
|
|
||||||
|
|
||||||
NAME= acpi
|
|
||||||
|
|
||||||
NAME_SRCS= acpi.c \
|
|
||||||
scan.c \
|
|
||||||
pci_irq.c \
|
|
||||||
pci_root.c \
|
|
||||||
pci/access.c \
|
|
||||||
pci/pci.c \
|
|
||||||
pci/probe.c \
|
|
||||||
pci_bind.c
|
|
||||||
|
|
||||||
|
|
||||||
all: $(NAME).dll
|
|
||||||
|
|
||||||
NAME_OBJS = $(patsubst %.S, %.o, $(patsubst %.asm, %.o,\
|
|
||||||
$(patsubst %.c, %.o, $(NAME_SRCS))))
|
$(patsubst %.c, %.o, $(NAME_SRCS))))
|
||||||
|
|
||||||
|
|
||||||
$(NAME).dll: $(NAME_OBJS) acpi.lds Makefile
|
$(NAME): $(NAME_OBJS) ../devman/acpi.lds Makefile
|
||||||
ld $(LIBPATH) $(LDFLAGS) -T acpi.lds -o $@ $(NAME_OBJS) $(LIBS)
|
$(LD) $(LIBPATH) $(LDFLAGS) -T ../devman/acpi.lds -o $@ $(NAME_OBJS) $(LIBS)
|
||||||
kpack $(NAME).dll
|
$(KPACK) $(NAME)
|
||||||
|
|
||||||
%.o : %.c $(HFILES) Makefile
|
%.o : %.c $(HFILES) Makefile
|
||||||
$(CC) $(CFLAGS) $(DEFINES) $(INCLUDES) -o $@ $<
|
$(CC) $(CFLAGS) $(DEFINES) $(INCLUDES) -o $@ $<
|
||||||
|
|
||||||
%.o : %.S $(HFILES) Makefile
|
clean:
|
||||||
as -o $@ $<
|
rm -rf *.o
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
21
drivers/devman/Tupfile.lua
Executable file
21
drivers/devman/Tupfile.lua
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
if tup.getconfig("NO_FASM") ~= "" then return end
|
||||||
|
if tup.getconfig("NO_GCC") ~= "" then return end
|
||||||
|
tup.include("../../programs/use_gcc.lua")
|
||||||
|
|
||||||
|
DRV_DIR = ".."
|
||||||
|
INCLUDES = string.format(" -I./include -I./acpica/include -I. -I%s/include -I%s/include/linux -I%s/include/uapi ", DRV_DIR, DRV_DIR, DRV_DIR)
|
||||||
|
|
||||||
|
DEFINES = " -D__KERNEL__ -DCONFIG_X86_32 -DCONFIG_X86_L1_CACHE_SHIFT=6 -DCONFIG_ARCH_HAS_CACHE_LINE_SIZE -DHAVE_ACPICA -DCONFIG_ACPI -DLINUX_MOD_DEVICETABLE_H -DCONFIG_PCI "
|
||||||
|
|
||||||
|
CFLAGS = " -w -Os -march=i686 -fno-ident -msse2 -fomit-frame-pointer -fno-builtin-printf -mno-stack-arg-probe -mpreferred-stack-boundary=2 -mincoming-stack-boundary=2 -mno-ms-bitfields " .. DEFINES
|
||||||
|
|
||||||
|
LDFLAGS = " -nostdlib -T acpi.lds -shared -s --image-base 0 --file-alignment 512 --section-alignment 4096 -L../../contrib/sdk/lib -L../ddk -Lacpica "
|
||||||
|
|
||||||
|
NAME = "acpi.sys"
|
||||||
|
|
||||||
|
compile_gcc{ "acpi.c", "scan.c", "pci_root.c", "pci_bind.c", "pci_irq.c", "pci/probe.c", "pci/pci.c", "pci/access.c" }
|
||||||
|
OBJS.extra_inputs = {"../ddk/libcore.a", "../ddk/libddk.a", "./acpica/libacpica.a"}
|
||||||
|
|
||||||
|
LIBS = " -lacpica -lgcc -lddk -lcore "
|
||||||
|
tup.rule(OBJS, "kos32-ld" .. LDFLAGS .. "%f -o %o " .. LIBS .. tup.getconfig("KPACK_CMD"), NAME);
|
||||||
|
tup.rule("acpi.asm", "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "acpi")
|
@ -27,7 +27,7 @@ start:
|
|||||||
|
|
||||||
align 4
|
align 4
|
||||||
app_path rb 2048
|
app_path rb 2048
|
||||||
sz_dll db '.dll',0
|
sz_dll db '.sys',0
|
||||||
i_end:
|
i_end:
|
||||||
rb 128
|
rb 128
|
||||||
mem:
|
mem:
|
||||||
|
@ -571,46 +571,37 @@ void acpi_init_pci(struct acpi_device *device)
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
uint32_t drvEntry(int action, char *cmdline)
|
||||||
u32_t drvEntry(int action, char *cmdline)
|
|
||||||
{
|
{
|
||||||
u32_t retval;
|
uint32_t retval;
|
||||||
|
|
||||||
ACPI_STATUS status;
|
ACPI_STATUS status;
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if(action != 1)
|
if(action != 1)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if( !dbg_open("/rd/1/drivers/acpi.log") )
|
|
||||||
{
|
|
||||||
printf("Can't open /rd/1/drivers/acpi.log\nExit\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
status = AcpiInitializeSubsystem();
|
status = AcpiInitializeSubsystem();
|
||||||
if (status != AE_OK) {
|
if (status != AE_OK) {
|
||||||
dbgprintf("AcpiInitializeSubsystem failed (%s)\n",
|
printf("AcpiInitializeSubsystem failed (%s)\n",
|
||||||
AcpiFormatException(status));
|
AcpiFormatException(status));
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
status = AcpiInitializeTables (NULL, 16, FALSE);
|
status = AcpiInitializeTables (NULL, 16, FALSE);
|
||||||
if (status != AE_OK) {
|
if (status != AE_OK) {
|
||||||
dbgprintf("AcpiInitializeTables failed (%s)\n",
|
printf("AcpiInitializeTables failed (%s)\n",
|
||||||
AcpiFormatException(status));
|
AcpiFormatException(status));
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
status = AcpiLoadTables();
|
status = AcpiLoadTables();
|
||||||
if (status != AE_OK) {
|
if (status != AE_OK) {
|
||||||
dbgprintf("AcpiLoadTables failed (%s)\n",
|
printf("AcpiLoadTables failed (%s)\n",
|
||||||
AcpiFormatException(status));
|
AcpiFormatException(status));
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
// u32_t mode = ACPI_NO_HARDWARE_INIT | ACPI_NO_ACPI_ENABLE;
|
// u32_t mode = ACPI_NO_HARDWARE_INIT | ACPI_NO_ACPI_ENABLE;
|
||||||
|
|
||||||
status = AcpiEnableSubsystem(ACPI_NO_HANDLER_INIT | ACPI_NO_HARDWARE_INIT);
|
status = AcpiEnableSubsystem(ACPI_NO_HANDLER_INIT | ACPI_NO_HARDWARE_INIT);
|
||||||
if (status != AE_OK) {
|
if (status != AE_OK) {
|
||||||
@ -627,25 +618,17 @@ u32_t drvEntry(int action, char *cmdline)
|
|||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
set_pic_mode(IO_APIC);
|
set_pic_mode(IO_APIC);
|
||||||
|
|
||||||
acpi_scan();
|
acpi_scan();
|
||||||
|
|
||||||
acpi_init_pci(acpi_root);
|
acpi_init_pci(acpi_root);
|
||||||
|
|
||||||
print_pci_irqs();
|
print_pci_irqs();
|
||||||
|
|
||||||
create_dm_list();
|
create_dm_list();
|
||||||
|
|
||||||
print_dm_list();
|
print_dm_list();
|
||||||
|
|
||||||
write_device_dat("/RD/1/DRIVERS/DEVICES.DAT");
|
write_device_dat("/RD/1/DRIVERS/DEVICES.DAT");
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
char* strdup(const char *str)
|
char* strdup(const char *str)
|
||||||
@ -699,7 +682,6 @@ count_dev_resources(ACPI_RESOURCE *acpi_res, void *data)
|
|||||||
return AE_OK;
|
return AE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void dm_add_acpi(struct acpi_device *device)
|
static void dm_add_acpi(struct acpi_device *device)
|
||||||
{
|
{
|
||||||
struct acpi_device *child;
|
struct acpi_device *child;
|
||||||
@ -748,7 +730,6 @@ static void create_dm_list()
|
|||||||
{
|
{
|
||||||
struct acpi_pci_root *root;
|
struct acpi_pci_root *root;
|
||||||
|
|
||||||
|
|
||||||
list_for_each_entry(root, &acpi_pci_roots, node)
|
list_for_each_entry(root, &acpi_pci_roots, node)
|
||||||
{
|
{
|
||||||
struct pci_bus *pbus, *tbus;
|
struct pci_bus *pbus, *tbus;
|
||||||
|
@ -5,55 +5,6 @@
|
|||||||
#include <pci.h>
|
#include <pci.h>
|
||||||
#include <syscall.h>
|
#include <syscall.h>
|
||||||
|
|
||||||
|
|
||||||
int pci_read_config_byte(struct pci_dev *dev, int where, u8 *val)
|
|
||||||
{
|
|
||||||
*val = PciRead8(dev->busnr, dev->devfn, where);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int pci_read_config_word(struct pci_dev *dev, int where, u16 *val)
|
|
||||||
{
|
|
||||||
|
|
||||||
if ( where & 1)
|
|
||||||
return PCIBIOS_BAD_REGISTER_NUMBER;
|
|
||||||
*val = PciRead16(dev->busnr, dev->devfn, where);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int pci_read_config_dword(struct pci_dev *dev, int where, u32 *val)
|
|
||||||
{
|
|
||||||
|
|
||||||
if ( where & 3)
|
|
||||||
return PCIBIOS_BAD_REGISTER_NUMBER;
|
|
||||||
*val = PciRead32(dev->busnr, dev->devfn, where);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int pci_write_config_byte(struct pci_dev *dev, int where, u8 val)
|
|
||||||
{
|
|
||||||
PciWrite8(dev->busnr, dev->devfn, where, val);
|
|
||||||
return 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
int pci_write_config_word(struct pci_dev *dev, int where, u16 val)
|
|
||||||
{
|
|
||||||
if ( where & 1)
|
|
||||||
return PCIBIOS_BAD_REGISTER_NUMBER;
|
|
||||||
PciWrite16(dev->busnr, dev->devfn, where, val);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int pci_write_config_dword(struct pci_dev *dev, int where,
|
|
||||||
u32 val)
|
|
||||||
{
|
|
||||||
if ( where & 3)
|
|
||||||
return PCIBIOS_BAD_REGISTER_NUMBER;
|
|
||||||
PciWrite32(dev->busnr, dev->devfn, where, val);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int pci_bus_read_config_byte (struct pci_bus *bus, u32 devfn,
|
int pci_bus_read_config_byte (struct pci_bus *bus, u32 devfn,
|
||||||
int pos, u8 *value)
|
int pos, u8 *value)
|
||||||
{
|
{
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#include <ddk.h>
|
#include <ddk.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <mutex.h>
|
#include <mutex.h>
|
||||||
#include <pci.h>
|
#include <linux/pci.h>
|
||||||
#include <syscall.h>
|
#include <syscall.h>
|
||||||
|
|
||||||
extern struct list_head pci_root_buses;
|
extern struct list_head pci_root_buses;
|
||||||
|
@ -18,22 +18,11 @@ LIST_HEAD(pci_root_buses);
|
|||||||
#define CARDBUS_LATENCY_TIMER 176 /* secondary latency timer */
|
#define CARDBUS_LATENCY_TIMER 176 /* secondary latency timer */
|
||||||
#define CARDBUS_RESERVE_BUSNR 3
|
#define CARDBUS_RESERVE_BUSNR 3
|
||||||
|
|
||||||
static int pcibios_assign_all_busses(void)
|
int pcibios_assign_all_busses(void)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* pci_ari_enabled - query ARI forwarding status
|
|
||||||
* @bus: the PCI bus
|
|
||||||
*
|
|
||||||
* Returns 1 if ARI forwarding is enabled, or 0 if not enabled;
|
|
||||||
*/
|
|
||||||
static inline int pci_ari_enabled(struct pci_bus *bus)
|
|
||||||
{
|
|
||||||
return bus->self && bus->self->ari_enabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Translate the low bits of the PCI base
|
* Translate the low bits of the PCI base
|
||||||
* to the resource type
|
* to the resource type
|
||||||
@ -632,7 +621,7 @@ int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max, int pass)
|
|||||||
pci_write_config_byte(dev, PCI_SUBORDINATE_BUS, max);
|
pci_write_config_byte(dev, PCI_SUBORDINATE_BUS, max);
|
||||||
}
|
}
|
||||||
|
|
||||||
vsprintf(child->name,
|
sprintf(child->name,
|
||||||
(is_cardbus ? "PCI CardBus %04x:%02x" : "PCI Bus %04x:%02x"),
|
(is_cardbus ? "PCI CardBus %04x:%02x" : "PCI Bus %04x:%02x"),
|
||||||
pci_domain_nr(bus), child->number);
|
pci_domain_nr(bus), child->number);
|
||||||
|
|
||||||
@ -669,7 +658,7 @@ void set_pcie_port_type(struct pci_dev *pdev)
|
|||||||
pos = pci_find_capability(pdev, PCI_CAP_ID_EXP);
|
pos = pci_find_capability(pdev, PCI_CAP_ID_EXP);
|
||||||
if (!pos)
|
if (!pos)
|
||||||
return;
|
return;
|
||||||
pdev->is_pcie = 1;
|
//pdev->is_pcie = 1;
|
||||||
pdev->pcie_cap = pos;
|
pdev->pcie_cap = pos;
|
||||||
pci_read_config_word(pdev, pos + PCI_EXP_FLAGS, ®16);
|
pci_read_config_word(pdev, pos + PCI_EXP_FLAGS, ®16);
|
||||||
pdev->pcie_type = (reg16 & PCI_EXP_FLAGS_TYPE) >> 4;
|
pdev->pcie_type = (reg16 & PCI_EXP_FLAGS_TYPE) >> 4;
|
||||||
@ -1062,7 +1051,7 @@ unsigned int pci_scan_child_bus(struct pci_bus *bus)
|
|||||||
pci_scan_slot(bus, devfn);
|
pci_scan_slot(bus, devfn);
|
||||||
|
|
||||||
/* Reserve buses for SR-IOV capability. */
|
/* Reserve buses for SR-IOV capability. */
|
||||||
max += pci_iov_bus_range(bus);
|
//max += pci_iov_bus_range(bus);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* After performing arch-dependent fixup of the bus, look behind
|
* After performing arch-dependent fixup of the bus, look behind
|
||||||
|
@ -784,4 +784,3 @@ int acpi_scan()
|
|||||||
|
|
||||||
return err;
|
return err;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user