mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-18 10:34:19 +00:00
Merge pull request #1501 from robertovargas-arm/cci
cci: Wait before reading status register
This commit is contained in:
commit
781842ea8a
1 changed files with 13 additions and 0 deletions
|
@ -5,6 +5,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <arch.h>
|
#include <arch.h>
|
||||||
|
#include <arch_helpers.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <cci.h>
|
#include <cci.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
@ -142,6 +143,12 @@ void cci_enable_snoop_dvm_reqs(unsigned int master_id)
|
||||||
SLAVE_IFACE_OFFSET(slave_if_id) + SNOOP_CTRL_REG,
|
SLAVE_IFACE_OFFSET(slave_if_id) + SNOOP_CTRL_REG,
|
||||||
DVM_EN_BIT | SNOOP_EN_BIT);
|
DVM_EN_BIT | SNOOP_EN_BIT);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Wait for the completion of the write to the Snoop Control Register
|
||||||
|
* before testing the change_pending bit
|
||||||
|
*/
|
||||||
|
dmbish();
|
||||||
|
|
||||||
/* Wait for the dust to settle down */
|
/* Wait for the dust to settle down */
|
||||||
while (mmio_read_32(cci_base + STATUS_REG) & CHANGE_PENDING_BIT)
|
while (mmio_read_32(cci_base + STATUS_REG) & CHANGE_PENDING_BIT)
|
||||||
;
|
;
|
||||||
|
@ -163,6 +170,12 @@ void cci_disable_snoop_dvm_reqs(unsigned int master_id)
|
||||||
SLAVE_IFACE_OFFSET(slave_if_id) + SNOOP_CTRL_REG,
|
SLAVE_IFACE_OFFSET(slave_if_id) + SNOOP_CTRL_REG,
|
||||||
~(DVM_EN_BIT | SNOOP_EN_BIT));
|
~(DVM_EN_BIT | SNOOP_EN_BIT));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Wait for the completion of the write to the Snoop Control Register
|
||||||
|
* before testing the change_pending bit
|
||||||
|
*/
|
||||||
|
dmbish();
|
||||||
|
|
||||||
/* Wait for the dust to settle down */
|
/* Wait for the dust to settle down */
|
||||||
while (mmio_read_32(cci_base + STATUS_REG) & CHANGE_PENDING_BIT)
|
while (mmio_read_32(cci_base + STATUS_REG) & CHANGE_PENDING_BIT)
|
||||||
;
|
;
|
||||||
|
|
Loading…
Add table
Reference in a new issue