soc/mediatek/mt8186: add GIC pre-initialization function
GIC (generic interrupt controller) defines architectural requirements for handling all interrupt sources and common interrupt controller programming interface. GIC needs to be pre-initialized on MT8186, so we add this initialize function. TEST=build pass BUG=b:202871018 Change-Id: I6bf439d0d9e1ca7130a69b9006b957afca8b133c Signed-off-by: Rex-BC Chen <rex-bc.chen@mediatek.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/59252 Reviewed-by: Yu-Ping Wu <yupingso@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
2f9e5b9e34
commit
b9f95db1dc
|
@ -3,6 +3,7 @@ ifeq ($(CONFIG_SOC_MEDIATEK_MT8186),y)
|
||||||
bootblock-y += bootblock.c
|
bootblock-y += bootblock.c
|
||||||
bootblock-y += ../common/eint_event.c
|
bootblock-y += ../common/eint_event.c
|
||||||
bootblock-y += ../common/flash_controller.c
|
bootblock-y += ../common/flash_controller.c
|
||||||
|
bootblock-y += gic.c
|
||||||
bootblock-y += ../common/gpio.c gpio.c
|
bootblock-y += ../common/gpio.c gpio.c
|
||||||
bootblock-y += ../common/mmu_operations.c
|
bootblock-y += ../common/mmu_operations.c
|
||||||
bootblock-y += ../common/pll.c pll.c
|
bootblock-y += ../common/pll.c pll.c
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include <bootblock_common.h>
|
#include <bootblock_common.h>
|
||||||
#include <soc/eint_event.h>
|
#include <soc/eint_event.h>
|
||||||
|
#include <soc/gic.h>
|
||||||
#include <soc/mmu_operations.h>
|
#include <soc/mmu_operations.h>
|
||||||
#include <soc/pll.h>
|
#include <soc/pll.h>
|
||||||
#include <soc/wdt.h>
|
#include <soc/wdt.h>
|
||||||
|
@ -12,4 +13,5 @@ void bootblock_soc_init(void)
|
||||||
mtk_wdt_init();
|
mtk_wdt_init();
|
||||||
mt_pll_init();
|
mt_pll_init();
|
||||||
unmask_eint_event_mask();
|
unmask_eint_event_mask();
|
||||||
|
mtk_gic_preinit();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is created based on MT8186 Functional Specification
|
||||||
|
* Chapter number: 4.3
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <device/mmio.h>
|
||||||
|
#include <soc/addressmap.h>
|
||||||
|
#include <soc/gic.h>
|
||||||
|
|
||||||
|
void mtk_gic_preinit(void)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 3; i < 15; i++) {
|
||||||
|
write32((void *)((uintptr_t)MCUSYS_BASE + 0xA600 + i * 4), 0);
|
||||||
|
write32((void *)((uintptr_t)MCUSYS_BASE + 0xA650 + i * 4), 0xFFFFFFFF);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is created based on MT8186 Functional Specification
|
||||||
|
* Chapter number: 4.3
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef SOC_MEDIATEK_MT8186_GIC_H
|
||||||
|
#define SOC_MEDIATEK_MT8186_GIC_H
|
||||||
|
|
||||||
|
void mtk_gic_preinit(void);
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue