summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorKonstantin Porotchkin <kostap@marvell.com>2018-01-29 16:22:13 +0200
committerHanna Hawa <hannah@marvell.com>2018-01-29 21:31:56 +0200
commit08254f5937421144893a5858a31ba96442187de1 (patch)
treeb3e8a95988609da2a9ddf2ad057d5d286861d383 /drivers
parentf220351b506e5f23eebe7043b1319a5fd82f8f70 (diff)
mvebu: iob: Enable IOB window after setting address range
Move the IOB window enable operation past the ALR and AHR (high and low address registers) setup. Change-Id: I389366f7a6ae37a60d0b3a52baed0d86372622ac Signed-off-by: Konstantin Porotchkin <kostap@marvell.com> Reviewed-on: http://vgitil04.il.marvell.com:8080/49730 Tested-by: iSoC Platform CI <ykjenk@marvell.com> Reviewed-by: Hanna Hawa <hannah@marvell.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/marvell/iob.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/marvell/iob.c b/drivers/marvell/iob.c
index 33c2c8dc..cc32ec25 100644
--- a/drivers/marvell/iob.c
+++ b/drivers/marvell/iob.c
@@ -93,16 +93,17 @@ static void iob_enable_win(struct addr_map_win *win, uint32_t win_id)
uint32_t alr, ahr;
uint64_t end_addr;
- iob_win_reg = WIN_ENABLE_BIT;
- iob_win_reg |= (win->target_id & IOB_TARGET_ID_MASK) << IOB_TARGET_ID_OFFSET;
- mmio_write_32(IOB_WIN_CR_OFFSET(win_id), iob_win_reg);
-
end_addr = (win->base_addr + win->win_size - 1);
alr = (uint32_t)((win->base_addr >> ADDRESS_SHIFT) & ADDRESS_MASK);
ahr = (uint32_t)((end_addr >> ADDRESS_SHIFT) & ADDRESS_MASK);
mmio_write_32(IOB_WIN_ALR_OFFSET(win_id), alr);
mmio_write_32(IOB_WIN_AHR_OFFSET(win_id), ahr);
+
+ iob_win_reg = WIN_ENABLE_BIT;
+ iob_win_reg |= (win->target_id & IOB_TARGET_ID_MASK) << IOB_TARGET_ID_OFFSET;
+ mmio_write_32(IOB_WIN_CR_OFFSET(win_id), iob_win_reg);
+
}
#ifdef DEBUG_ADDR_MAP