There seems something too-specific to PC-architecture in kernel/dma.c, which is that DMA4 is reserved for "cascade". Perhaps it should be reserved in architecture-specific initialisation. What do other architectures do with that? -