Why did the design need to reserve one channel for cascade, how did it work and what exactly was going on there?
One of the DMA controllers is the master and the other slave. They use the cascade channel to pass on requests in order to synchronize their operation and priorities. Basically the chip with 8-bit DMA channels 0..3 has to request permission to do a DMA cycle from the DMA chip with channels 4..7, which in turn asks the chipset and CPU for permission to perform a DMA cycle.
The original IBM PC and PC/XT used just one 8237 DMA controller; with PC/AT, that was found to be insufficient. PC/AT also introduced a 16-bit extension to the originally 8-bit ISA bus, so the extension could also accomodate new IRQ and DMA signals.
PC/AT was designed with two DMA controllers, but as another-dave said, the CPU had provision for connecting just one, and the designers wanted PC/AT to be able to use PC/XT software and ISA expansion cards, and so the cascade arrangement was developed.
The second controller was responsible for the new DMA channels (#4 .. #7) and the first one (channels #0 .. #3) was made subordinate to it. Instead of signaling the CPU directly when a DMA bus cycle was needed, the first DMA controller now signaled the second one on channel #4, and the second controller signaled the CPU in turn. For channels #5 .. #7, the second controller just signaled the CPU directly.
This arrangement slightly favored the new DMA channels which were available for the 16-bit ISA cards only. In addition, the DMA channel #0, which was reserved for RAM refresh in original PC design was no longer needed for that role, and was made available in PC/AT's 16-bit extension of the ISA bus also.
In PC/XT the DMA channels #2 and #3 were reserved for floppy and HDD controllers respectively, and so the change was mostly handled by the new PC/AT BIOS. Only 8-bit add-on cards designed for PC/XT and older and using the DMA channel #1 would need updated drivers for PC/AT.
The 8237 / 8257 DMA controllers could only access a maximum of 16 MiB of memory, and when the typical amount of memory in PCs grew significantly beyond that, these traditional DMA controllers were no longer very useful.
With e.g. 32 MiB of RAM, a DMA transfer to an arbitrary memory location would have only a 50% possibility of being in the "DMA zone". If it was outside the zone, the DMA transfer would need to happen first to a buffer in the DMA zone, and then the CPU would need to be used to transfer the data to its final location outside the DMA zone, which would negate the benefit of DMA. Also, as Brian H mentioned in the question comments, these DMA controllers were slow, especially when PCI and newer, faster bus types became available.
The 8237 DMA controller supported 4 channels. That's not sufficient for a reasonably well-appointed PC. So, you have two DMA controllers. But there's only provision to connect one controller to the CPU, so the second controller has to connect to the first one.
Typical DMA requirements:
- Floppy controller
- Parallel port (in some modes)
- Sound card
- Some disk controllers (without onboard DMA)
- Network card