> But you are saying that the *disk* gets to choose which part of the host's memory to write to
Yes; the disk gets told by the disk driver the address which it should write to.
> and organizes the DMA itself?
The disk device just sends a packet with a specific address to the host.
This address usually works similar to the port number in TCP/IP, i.e., the controller writes the packet into a buffer configured by the driver, and the host's FireWire software stack uses the address to determine which driver/application gets to handle the packet.
However, as an optimization, FireWire controllers can be configured by the driver to handle certain packets from certain devices differently, by writing them to the physical memory address specified in the packet itself.