• Andre Przywara's avatar
    net: axienet: Autodetect 64-bit DMA capability · f735c40e
    Andre Przywara authored
    When newer revisions of the Axienet IP are configured for a 64-bit bus,
    we *need* to write to the MSB part of the an address registers,
    otherwise the IP won't recognise this as a DMA start condition.
    This is even true when the actual DMA address comes from the lower 4 GB.
    
    To autodetect this configuration, at probe time we write all 1's to such
    an MSB register, and see if any bits stick. If this is configured for a
    32-bit bus, those MSB registers are RES0, so reading back 0 indicates
    that no MSB writes are necessary.
    On the other hands reading anything other than 0 indicated the need to
    write the MSB registers, so we set the respective flag.
    
    The actual DMA mask stays at 32-bit for now. To help bisecting, a
    separate patch will enable allocations from higher addresses.
    Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f735c40e
xilinx_axienet.h 20.9 KB