#include <grub/i386/io.h>
#include <grub/time.h>
+#define vtop(x) ((x) & 0x7fffffff)
+
struct grub_ohci_hcca
{
/* Pointers to Interrupt Endpoint Descriptors. Not used by
grub_ohci_writereg32 (o, GRUB_OHCI_REG_FRAME_INTERVAL, frame_interval);
/* Setup the HCCA. */
- grub_ohci_writereg32 (o, GRUB_OHCI_REG_HCCA, (grub_uint32_t) o->hcca);
+ grub_ohci_writereg32 (o, GRUB_OHCI_REG_HCCA, vtop ((grub_uint32_t) o->hcca));
grub_dprintf ("ohci", "OHCI HCCA\n");
/* Enable the OHCI. */
buffer = (grub_uint32_t) data;
buffer_end = buffer + size - 1;
- td->token = grub_cpu_to_le32 (token);
- td->buffer = grub_cpu_to_le32 (buffer);
+ td->token = grub_cpu_to_le32 (vtop (token));
+ td->buffer = grub_cpu_to_le32 (vtop (buffer));
td->next_td = 0;
- td->buffer_end = grub_cpu_to_le32 (buffer_end);
+ td->buffer_end = grub_cpu_to_le32 (vtop (buffer_end));
}
static grub_usb_err_t
grub_ohci_transaction (&td_list[i], tr->pid, tr->toggle,
tr->size, tr->data);
- td_list[i].next_td = grub_cpu_to_le32 (&td_list[i + 1]);
+ td_list[i].next_td = grub_cpu_to_le32 (vtop (&td_list[i + 1]));
}
/* Setup the Endpoint Descriptor. */
/* Set the maximum packet size. */
target |= transfer->max << 16;
- td_head = (grub_uint32_t) td_list;
+ td_head = vtop ((grub_uint32_t) td_list);
- td_tail = (grub_uint32_t) &td_list[transfer->transcnt];
+ td_tail = vtop ((grub_uint32_t) &td_list[transfer->transcnt]);
ed->target = grub_cpu_to_le32 (target);
ed->td_head = grub_cpu_to_le32 (td_head);
status &= ~(1 << 2);
grub_ohci_writereg32 (o, GRUB_OHCI_REG_CMDSTATUS, status);
- grub_ohci_writereg32 (o, GRUB_OHCI_REG_BULKHEAD, (grub_uint32_t) ed);
+ grub_ohci_writereg32 (o, GRUB_OHCI_REG_BULKHEAD,
+ vtop ((grub_uint32_t) ed));
/* Enable the Bulk list. */
control |= 1 << 5;
grub_ohci_writereg32 (o, GRUB_OHCI_REG_CMDSTATUS, status);
grub_ohci_writereg32 (o, GRUB_OHCI_REG_CONTROLHEAD,
- (grub_uint32_t) ed);
+ vtop ((grub_uint32_t) ed));
grub_ohci_writereg32 (o, GRUB_OHCI_REG_CONTROLHEAD+1,
- (grub_uint32_t) ed);
+ vtop ((grub_uint32_t) ed));
/* Enable the Control list. */
control |= 1 << 4;
pci_mod_CFLAGS = $(COMMON_CFLAGS)
pci_mod_LDFLAGS = $(COMMON_LDFLAGS)
+# For lspci.mod
+pkglib_MODULES += lspci.mod
+lspci_mod_SOURCES = commands/lspci.c
+lspci_mod_CFLAGS = $(COMMON_CFLAGS)
+lspci_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+# For ohci.mod
+pkglib_MODULES += ohci.mod
+ohci_mod_SOURCES = bus/usb/ohci.c
+ohci_mod_CFLAGS = $(COMMON_CFLAGS)
+ohci_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+# For usb.mod
+pkglib_MODULES += usb.mod
+usb_mod_SOURCES = bus/usb/usb.c bus/usb/usbtrans.c bus/usb/usbhub.c
+usb_mod_CFLAGS = $(COMMON_CFLAGS)
+usb_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+# For usbtest.mod
+pkglib_MODULES += usbtest.mod
+usbtest_mod_SOURCES = commands/usbtest.c
+usbtest_mod_CFLAGS = $(COMMON_CFLAGS)
+usbtest_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+# For usbms.mod
+pkglib_MODULES += usbms.mod
+usbms_mod_SOURCES = disk/usbms.c
+usbms_mod_CFLAGS = $(COMMON_CFLAGS)
+usbms_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+# For usb_keyboard.mod
+pkglib_MODULES += usb_keyboard.mod
+usb_keyboard_mod_SOURCES = term/usb_keyboard.c
+usb_keyboard_mod_CFLAGS = $(COMMON_CFLAGS)
+usb_keyboard_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+
# For relocator.mod.
pkglib_MODULES += relocator.mod
relocator_mod_SOURCES = lib/$(target_cpu)/relocator.c lib/$(target_cpu)/relocator_asm.S