Skip to content

Commit

Permalink
arm: plat-orion: Add coherency attribute when setup mbus target
Browse files Browse the repository at this point in the history
Recent SoC such as Armada 370/XP came with the possibility to deal
with the I/O coherency by hardware. In this case the transaction
attribute of the window must be flagged as "Shared transaction". Once
this flag is set, then the transactions will be forced to be sent
through the coherency block, in other case transaction is driven
directly to DRAM.

Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Reviewed-by: Yehuda Yitschak <yehuday@marvell.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  • Loading branch information
Gregory CLEMENT committed Nov 21, 2012
1 parent 87b54e7 commit 722202e
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 0 deletions.
4 changes: 4 additions & 0 deletions arch/arm/plat-orion/addr-map.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ EXPORT_SYMBOL_GPL(mv_mbus_dram_info);
#define WIN_REMAP_LO_OFF 0x0008
#define WIN_REMAP_HI_OFF 0x000c

#define ATTR_HW_COHERENCY (0x1 << 4)

/*
* Default implementation
*/
Expand Down Expand Up @@ -163,6 +165,8 @@ void __init orion_setup_cpu_mbus_target(const struct orion_addr_map_cfg *cfg,
w = &orion_mbus_dram_info.cs[cs++];
w->cs_index = i;
w->mbus_attr = 0xf & ~(1 << i);
if (cfg->hw_io_coherency)
w->mbus_attr |= ATTR_HW_COHERENCY;
w->base = base & 0xffff0000;
w->size = (size | 0x0000ffff) + 1;
}
Expand Down
1 change: 1 addition & 0 deletions arch/arm/plat-orion/include/plat/addr-map.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ struct orion_addr_map_cfg {
const int num_wins; /* Total number of windows */
const int remappable_wins;
void __iomem *bridge_virt_base;
int hw_io_coherency;

/* If NULL, the default cpu_win_can_remap will be used, using
the value in remappable_wins */
Expand Down

0 comments on commit 722202e

Please sign in to comment.