diff --git a/dts/x86/intel/intel_ish5.dtsi b/dts/x86/intel/intel_ish5.dtsi index 5334ffdcf6b60f..5623bd90f8ad60 100644 --- a/dts/x86/intel/intel_ish5.dtsi +++ b/dts/x86/intel/intel_ish5.dtsi @@ -68,6 +68,13 @@ reg = <0xff200000 DT_SIZE_K(640)>; }; + aon: memory@ff800000 { + device_type = "memory"; + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0xff800000 DT_SIZE_K(8)>; + zephyr,memory-region = "AON"; + }; + soc { #address-cells = <1>; #size-cells = <1>; diff --git a/include/zephyr/arch/x86/ia32/linker.ld b/include/zephyr/arch/x86/ia32/linker.ld index c6db8f8ae75e8a..4d3ebe03f850ac 100644 --- a/include/zephyr/arch/x86/ia32/linker.ld +++ b/include/zephyr/arch/x86/ia32/linker.ld @@ -87,6 +87,10 @@ SECTIONS *(.iplt) } +#if defined(CONFIG_SOC_FAMILY_INTEL_ISH) && defined(CONFIG_PM) +#include +#endif + #ifdef CONFIG_LINKER_USE_BOOT_SECTION SECTION_PROLOGUE(boot.text,,) diff --git a/include/zephyr/arch/x86/ia32/scripts/ish_aon.ld b/include/zephyr/arch/x86/ia32/scripts/ish_aon.ld new file mode 100644 index 00000000000000..6cd562cb6d962a --- /dev/null +++ b/include/zephyr/arch/x86/ia32/scripts/ish_aon.ld @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2023 Intel Corporation. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#define AON_C_OBJECT_FILE_IN_SECT(lsect, objfile) \ + KEEP(*_intel_hal.a:objfile.c.obj(.##lsect)) \ + KEEP(*_intel_hal.a:objfile.c.obj(.##lsect##.*)) + +#define AON_S_OBJECT_FILE_IN_SECT(lsect, objfile) \ + KEEP(*_intel_hal.a:objfile.S.obj(.##lsect)) \ + KEEP(*_intel_hal.a:objfile.S.obj(.##lsect##.*)) + +#define AON_IN_SECT(lsect) \ + AON_C_OBJECT_FILE_IN_SECT(lsect, aon_task) \ + AON_C_OBJECT_FILE_IN_SECT(lsect, ish_dma) \ + AON_S_OBJECT_FILE_IN_SECT(lsect, ipapg) + +GROUP_START(AON) + + SECTION_PROLOGUE(aon,,) + { + aon_start = .; + KEEP(*(.data.aon_share)) + AON_IN_SECT(data) + AON_IN_SECT(text) + AON_IN_SECT(bss) + aon_end = .; + } GROUP_LINK_IN(AON) + +GROUP_END(AON)