здравствуйте =)
ОС Gentoo (если это имеет значение, ядро 2.6.39) вопрос такой:
можно ли работать с контроллером DMA из ядра напрямую (через IO порты), вопрос возник потому что нужно читать данные из АЦП (Fastwel AIC121), в распоряжении имеется пример для доса, в реализации для linux у меня получилось так:
выделяю память (я знаю, что есть специальные функции, но что-то с ними у меня не сложилось, указатели всегда нулевые получаются, поэтому пока так)
dma_pages = __get_free_pages(GFP_KERNEL | __GFP_DMA, order);
phAddr = __pa(dma_pages);
outb(3 | 4, 0xA);
outb(3 | 0x18, 0xB);
page = phAddr >> 16;
offset = (unsigned int)phAddr;
outb(page, 0x82);
outb(0, 0xC); //clear flip flop
outb((byte)offset, 0x06);
outb((byte)(offset >> 8), 0x06);
outb(lbDataCount, 0x07);
outb(hbDataCount, 0x07);
outb(3, 0xA);