From 08254f5937421144893a5858a31ba96442187de1 Mon Sep 17 00:00:00 2001 From: Konstantin Porotchkin Date: Mon, 29 Jan 2018 16:22:13 +0200 Subject: 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 Reviewed-on: http://vgitil04.il.marvell.com:8080/49730 Tested-by: iSoC Platform CI Reviewed-by: Hanna Hawa --- drivers/marvell/iob.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'drivers') 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 -- cgit