mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-26 06:30:39 +00:00
arm64: Layerscape: Survive LPI one-way reset workaround
The workaround of LPI one-way reset issue is broken by the series: https://patchwork.ozlabs.org/project/uboot/list/?series=192398 This patch is to add DT node for GIC RD tables and create corresponding reserved-memory node in kernel DT to fix it. Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
This commit is contained in:
parent
223c19076f
commit
af288cb291
5 changed files with 40 additions and 1 deletions
|
@ -45,7 +45,22 @@ DECLARE_GLOBAL_DATA_PTR;
|
|||
#ifdef CONFIG_GIC_V3_ITS
|
||||
int ls_gic_rd_tables_init(void *blob)
|
||||
{
|
||||
int ret;
|
||||
struct fdt_memory lpi_base;
|
||||
fdt_addr_t addr;
|
||||
fdt_size_t size;
|
||||
int offset, ret;
|
||||
|
||||
offset = fdt_path_offset(gd->fdt_blob, "/syscon@0x80000000");
|
||||
addr = fdtdec_get_addr_size_auto_noparent(gd->fdt_blob, offset, "reg",
|
||||
0, &size, false);
|
||||
|
||||
lpi_base.start = addr;
|
||||
lpi_base.end = addr + size - 1;
|
||||
ret = fdtdec_add_reserved_memory(blob, "lpi_rd_table", &lpi_base, NULL);
|
||||
if (ret) {
|
||||
debug("%s: failed to add reserved memory\n", __func__);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = gic_lpi_tables_init();
|
||||
if (ret)
|
||||
|
|
|
@ -44,6 +44,12 @@
|
|||
IRQ_TYPE_LEVEL_LOW)>;
|
||||
};
|
||||
|
||||
gic_lpi_base: syscon@0x80000000 {
|
||||
compatible = "gic-lpi-base";
|
||||
reg = <0x0 0x80000000 0x0 0x100000>;
|
||||
max-gic-redistributors = <2>;
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
|
||||
|
|
|
@ -26,6 +26,12 @@
|
|||
interrupts = <1 9 0x4>;
|
||||
};
|
||||
|
||||
gic_lpi_base: syscon@0x80000000 {
|
||||
compatible = "gic-lpi-base";
|
||||
reg = <0x0 0x80000000 0x0 0x100000>;
|
||||
max-gic-redistributors = <8>;
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
interrupts = <1 13 0x8>, /* Physical Secure PPI, active-low */
|
||||
|
|
|
@ -26,6 +26,12 @@
|
|||
interrupts = <1 9 0x4>;
|
||||
};
|
||||
|
||||
gic_lpi_base: syscon@0x80000000 {
|
||||
compatible = "gic-lpi-base";
|
||||
reg = <0x0 0x80000000 0x0 0x100000>;
|
||||
max-gic-redistributors = <8>;
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
interrupts = <1 13 0x8>, /* Physical Secure PPI, active-low */
|
||||
|
|
|
@ -43,6 +43,12 @@
|
|||
interrupts = <1 9 0x4>;
|
||||
};
|
||||
|
||||
gic_lpi_base: syscon@0x80000000 {
|
||||
compatible = "gic-lpi-base";
|
||||
reg = <0x0 0x80000000 0x0 0x200000>;
|
||||
max-gic-redistributors = <16>;
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
interrupts = <1 13 0x8>, /* Physical Secure PPI, active-low */
|
||||
|
|
Loading…
Reference in a new issue