This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Behavior of DSB with early write acknowledgement device memory attribute

Suppose software does a write to device memory that allows early write acknowledgement, then executes a DSB instruction.

*device_memory = 1; /* Suppose the memory type is Device-nGnRE */
asm volatile("dsb sy" : : : "memory");

Because the memory type is Device-nGnRE, the memory system can return a write acknowledgement before the write has reached its endpoint. Does this mean the DSB instruction can complete before the write has reached its endpoint? Could someone point me to a section of the "Armv8 Architecture Reference Manual" that explains this?

Parents
  • The "Early Write Acknowledgement|" section in page B2-173 in the G.a version of the manual. Some more details here (see ioremap and ioremap_np) and here.

    Note that nGnRE is the "Device Memory" type as known in the older architectures. The (edit: guarantee of the) completion of any side-effects of a write on such a memory type has been noted in the manuals as requiring a poll/read from the device (in armv6), or an implemention-defined method (in armv7).

Reply
  • The "Early Write Acknowledgement|" section in page B2-173 in the G.a version of the manual. Some more details here (see ioremap and ioremap_np) and here.

    Note that nGnRE is the "Device Memory" type as known in the older architectures. The (edit: guarantee of the) completion of any side-effects of a write on such a memory type has been noted in the manuals as requiring a poll/read from the device (in armv6), or an implemention-defined method (in armv7).

Children