#include "config.h" #include "uart.h" #include "pci.h" Fei82559::Hw *fei82559Hw; Ohci *ohci; extern const OnDevice onDevices[]; void configurate() { ohci=0; fei82559Hw=0; pciScan(onDevices); } void ohciHandle(PciConf *pci) { ohci=(Ohci *)0xe0000000; com1 << "ohci mapped @" << (U32)ohci << "\n\r"; pci->baseAddresses[0]=(U32)ohci; pci->commandStatus=(U32)0x00000006; ohci->hcControl->set->all=ohci->hcControl->set->linkEnable.mask()|ohci->hcControl->set->lps.mask(); ohci->asynchronousRequestFilterHi->set->all=~0; ohci->asynchronousRequestFilterLo->set->all=~0; ohci->physicalRequestFilterHi->set->all=~0; ohci->physicalRequestFilterLo->set->all=~0; } void dspC6205Handle(PciConf *pci) { //DspC6205 * const dspC6205=(DspC6205 *)0xd0000000; com1 << "dsp mapped @" << (U32)0xd0800000 << "\n\r"; com1 << "dsp mapped @" << (U32)0xd0000000 << "\n\r"; com1 << "dsp mapped @" << (U32)0x0000d001 << "\n\r"; pci->baseAddresses[0]=(U32)0xd0800000; pci->baseAddresses[1]=(U32)0xd0000000; pci->baseAddresses[2]=(U32)0xd000; pci->commandStatus=(U32)0x00000007; } void fei82559Handle(PciConf *pci) { if(fei82559Hw) return; fei82559Hw= (Fei82559::Hw* )0xe0000000; com1 << "fei82559Hw mapped @" << (U32)fei82559Hw << "\n\r"; pci->baseAddresses[0]=(U32)fei82559Hw; pci->commandStatus=(U32)0x00000006; //fei82559Hw->init(); } const OnDevice onDevices[]= { { 0x8020104c,ohciHandle }, { 0x8019104c,ohciHandle }, { 0x12098086,fei82559Handle }, { 0xa106104c,dspC6205Handle }, { 0,0 } };