Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 1911 → Rev 1912

/trunk/kernel/genarch/src/ofw/pci.c
36,6 → 36,8
*/
 
#include <genarch/ofw/ofw_tree.h>
#include <arch/drivers/pci.h>
#include <arch/trap/interrupt.h>
#include <arch/memstr.h>
#include <func.h>
#include <panic.h>
45,6 → 47,8
#define PCI_ABS_MASK 0x80000000
#define PCI_REG_MASK 0x000000ff
 
#define PCI_IGN 0x1f
 
bool ofw_pci_apply_ranges(ofw_tree_node_t *node, ofw_pci_reg_t *reg, uintptr_t *pa)
{
ofw_tree_property_t *prop;
110,5 → 114,27
return false;
}
 
/** Map PCI interrupt.
*
* So far, we only know how to map interrupts of non-PCI devices connected
* to a PCI bridge.
*/
bool ofw_pci_map_interrupt(ofw_tree_node_t *node, ofw_pci_reg_t *reg, int ino, int *inr)
{
pci_t *pci = node->device;
if (!pci) {
pci = pci_init(node);
if (!pci)
return false;
node->device = pci;
}
 
pci_enable_interrupt(pci, ino);
 
*inr = (PCI_IGN << IGN_SHIFT) | ino;
 
return true;
}
 
/** @}
*/