Move Andes PLICSW ipi device to fdt ipi framework, this patch is based
on Leo's modified IPI scheme on PLICSW.
Current IPI scheme uses bit 0 of pending reigster on PLICSW to send IPI
from hart 0 to hart 7, but bit 0 needs to be hardwired to 0 according
to spec. After some investigation, self-IPI seems to be seldom or never
used, so we re-order the IPI scheme to support 8 core platforms.
dts example (Quad-core AX45MP):
plicsw: interrupt-controller@e6400000 {
compatible = "andestech,plicsw";
reg = <0x00000000 0xe6400000 0x00000000 0x00400000>;
interrupts-extended = <&CPU0_intc 3
&CPU1_intc 3
&CPU2_intc 3
&CPU3_intc 3>;
interrupt-controller;
#address-cells = <2>;
#interrupt-cells = <2>;
};
Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
41 lines
676 B
Makefile
41 lines
676 B
Makefile
#
|
|
# SPDX-License-Identifier: BSD-2-Clause
|
|
#
|
|
# Copyright (c) 2019 Andes Technology Corporation
|
|
#
|
|
# Authors:
|
|
# Zong Li <zong@andestech.com>
|
|
# Nylon Chen <nylon7@andestech.com>
|
|
#
|
|
|
|
# Compiler flags
|
|
platform-cppflags-y =
|
|
platform-cflags-y =
|
|
platform-asflags-y =
|
|
platform-ldflags-y =
|
|
|
|
# Objects to build
|
|
platform-objs-y += cache.o platform.o
|
|
|
|
# Blobs to build
|
|
FW_TEXT_START=0x00000000
|
|
|
|
FW_DYNAMIC=y
|
|
|
|
FW_JUMP=y
|
|
ifeq ($(PLATFORM_RISCV_XLEN), 32)
|
|
FW_JUMP_ADDR=0x400000
|
|
else
|
|
FW_JUMP_ADDR=0x200000
|
|
endif
|
|
FW_JUMP_FDT_ADDR=0x2000000
|
|
|
|
FW_PAYLOAD=y
|
|
ifeq ($(PLATFORM_RISCV_XLEN), 32)
|
|
FW_PAYLOAD_OFFSET=0x400000
|
|
else
|
|
FW_PAYLOAD_OFFSET=0x200000
|
|
endif
|
|
|
|
FW_PAYLOAD_FDT_ADDR=0x2000000
|