diff options
author | Konstantin Porotchkin <kostap@marvell.com> | 2018-01-29 16:22:13 +0200 |
---|---|---|
committer | Hanna Hawa <hannah@marvell.com> | 2018-01-29 21:31:56 +0200 |
commit | 08254f5937421144893a5858a31ba96442187de1 (patch) | |
tree | b3e8a95988609da2a9ddf2ad057d5d286861d383 /drivers | |
parent | f220351b506e5f23eebe7043b1319a5fd82f8f70 (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.c | 9 |
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 |