flowrs-engine/crates/flowrs-boards/data/soc/alif_ensemble.json
flowRS fd958c0547 flowRS engine, cut from flowRS 3451b065
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 19:04:39 -05:00

137 lines
16 KiB
JSON

{
"soc": "alif-ensemble",
"about": "One description of Alif Semiconductor's Ensemble SoC memory map, shared by the twins of both of its sides: the Cortex-M55 real-time subsystems (RTSS-HP, RTSS-HE) and the Cortex-A32 application subsystem (APSS) that runs Linux. Addresses are facts read from Alif's published device trees and Yocto machine files (sources below); no text of them is copied. The peripheral list is the APSS (Linux) view of the global map, which the M55s share; each M55 also has its own tightly coupled memories at the same local addresses (rtss below).",
"sources": [
{"what": "peripherals, GIC, memory nodes (APSS view)", "where": "github.com/alifsemi/linux_alif v6.12-dev arch/arm/boot/dts/alif/ensemble/common/ensemble-ex.dtsi", "licence": "GPL-2.0+ (addresses only are used)"},
{"what": "E7 APSS SRAM0/MRAM regions, Cortex-A32 core, GIC distributor", "where": "github.com/alifsemi/zephyr_alif main boards/alif/alif_e7_dk/alif_e7_dk_ae722f80f55d5xx_apss.dts", "licence": "Apache-2.0"},
{"what": "RTSS-HP and RTSS-HE ITCM/DTCM, SRAM1, MRAM, OSPI", "where": "github.com/alifsemi/zephyr_alif main dts/arm/alif/ensemble/common/{ensemble_rtss_hp,ensemble_rtss_he,e1,e3_e5_e7}.dtsi", "licence": "Apache-2.0"},
{"what": "APSS boot: XIP kernel in MRAM at 0x80020000, DTB at 0x80010000, kernel RAM in SRAM0 or HyperRAM, BL32 in MRAM", "where": "github.com/alifsemi/meta-alif-ensemble devkit-ex-b0 conf/machine/devkit-e7.conf", "licence": "MIT layer; the machine file carries Alif's own licence header, so only its values are used"},
{"what": "which parts have which core clusters", "where": "github.com/zephyrproject-rtos/zephyr soc/alif/ensemble/soc.yml; alifsemi/linux_alif dts devkit-e6/e8 and meta-alif-ensemble devkit-e5/e7", "licence": "Apache-2.0 / GPL-2.0+ (facts only)"}
],
"series": [
{"series": "e1c", "part_prefix": "ae1c", "clusters": ["rtss_he"]},
{"series": "e3", "part_prefix": "ae3", "clusters": ["rtss_he", "rtss_hp"]},
{"series": "e4", "part_prefix": "ae4", "clusters": ["rtss_he", "rtss_hp"]},
{"series": "e5", "part_prefix": "ae5", "clusters": ["apss", "rtss_he", "rtss_hp"]},
{"series": "e6", "part_prefix": "ae6", "clusters": ["apss", "rtss_he", "rtss_hp"]},
{"series": "e7", "part_prefix": "ae7", "clusters": ["apss", "rtss_he", "rtss_hp"]},
{"series": "e8", "part_prefix": "ae8", "clusters": ["apss", "rtss_he", "rtss_hp"]}
],
"clusters": {"apss": {"cores": "Cortex-A32 (ARMv8-A, AArch32 only), up to two", "runs": "Linux (Alif's linux_alif 5.4 and 6.12, XIP kernel from MRAM)"}, "rtss_hp": {"cores": "Cortex-M55 with Helium and an Ethos-U55, 400 MHz", "runs": "Zephyr, FreeRTOS, bare metal"}, "rtss_he": {"cores": "Cortex-M55 with Helium and an Ethos-U55, 160 MHz, low power", "runs": "Zephyr, FreeRTOS, bare metal"}},
"memory": [
{"name": "sram0", "base": "0x02000000", "size": "0x400000", "seen_by": ["apss", "rtss_hp", "rtss_he"], "note": "4 MB on the E7; the APSS kernel's RAM by default (meta-alif-ensemble KERNEL_XIP_RAM)"},
{"name": "sram1", "base": "0x08000000", "size": null, "seen_by": ["apss", "rtss_hp", "rtss_he"], "note": "E3/E5/E7; TF-A's trusted SRAM (TRUSTED_SRAM1). The sources give its base, not its size"},
{"name": "mram", "base": "0x80000000", "size": "0x580000", "seen_by": ["apss", "rtss_hp", "rtss_he"], "note": "non-volatile. The size is a lower bound: the E7 APSS image region, 0x80100000 + 4.5 MB (zephyr_alif), ends at 0x80580000. The XIP kernel sits at 0x80020000 and its DTB at 0x80010000 (meta-alif-ensemble)"},
{"name": "hyperram", "base": "0xa0000000", "size": "0x4000000", "seen_by": ["apss"], "note": "external, on the dev kits; holds the Ethos-U buffers in the Linux device tree (0xa2000000, 0xa3000000)"},
{"name": "modem_sram", "base": "0x60000000", "size": null, "seen_by": ["apss"], "note": "the APSS kernel's RAM when MODEM_SRAM=1 in meta-alif-ensemble; the sources give its base, not its size"}
],
"rtss_local": [
{"cluster": "rtss_hp", "name": "itcm", "base": "0x00000000", "size": "0x40000"},
{"cluster": "rtss_hp", "name": "dtcm", "base": "0x20000000", "size": "0x100000"},
{"cluster": "rtss_he", "name": "itcm", "base": "0x00000000", "size": "0x40000"},
{"cluster": "rtss_he", "name": "dtcm", "base": "0x20000000", "size": "0x40000"}
],
"apss": {"gic": "gic-400: distributor 0x1c010000, CPU interface 0x1c02f000", "console": "uart4 (serial0 in devkit-e8.dts); uart2 in TF-A (UART=2)", "uart_kind": "ns16550 (DesignWare APB UART), reg-shift 2"},
"peripherals": [
{"name": "refclk", "class": "timer", "base": "0x1a220000", "size": "0x1000", "compatible": ["arm,armv7-timer-mem"]},
{"name": "refclk_frame", "class": "timer", "base": "0x1a230000", "size": "0x1000", "compatible": []},
{"name": "watchdog", "class": "watchdog", "base": "0x1a300000", "size": "0x1000", "compatible": ["arm,sbsa-gwdt"], "more_regs": [["0x1a310000", "0x1000"]]},
{"name": "pinmux", "class": "pinmux", "base": "0x1a603000", "size": "0x1000", "compatible": ["alif,ensemble-pinctrl"]},
{"name": "ensemble_reg", "class": "power", "base": "0x1a609000", "size": "0x4", "compatible": ["alif,ensemble-regulator"]},
{"name": "mbox_m55_hp_mhu0_tx", "class": "mailbox", "base": "0x1b000000", "size": "0x1000", "compatible": ["arm,mhuv2-tx", "arm,primecell"]},
{"name": "mbox_m55_hp_mhu0_rx", "class": "mailbox", "base": "0x1b010000", "size": "0x1000", "compatible": ["arm,mhuv2-rx", "arm,primecell"]},
{"name": "mbox_m55_hp_mhu1_tx", "class": "mailbox", "base": "0x1b020000", "size": "0x1000", "compatible": ["arm,mhuv2-tx", "arm,primecell"]},
{"name": "mbox_m55_hp_mhu1_rx", "class": "mailbox", "base": "0x1b030000", "size": "0x1000", "compatible": ["arm,mhuv2-rx", "arm,primecell"]},
{"name": "mbox_m55_he_mhu0_tx", "class": "mailbox", "base": "0x1b040000", "size": "0x1000", "compatible": ["arm,mhuv2-tx", "arm,primecell"]},
{"name": "mbox_m55_he_mhu0_rx", "class": "mailbox", "base": "0x1b050000", "size": "0x1000", "compatible": ["arm,mhuv2-rx", "arm,primecell"]},
{"name": "mbox_m55_he_mhu1_tx", "class": "mailbox", "base": "0x1b060000", "size": "0x1000", "compatible": ["arm,mhuv2-tx", "arm,primecell"]},
{"name": "mbox_m55_he_mhu1_rx", "class": "mailbox", "base": "0x1b070000", "size": "0x1000", "compatible": ["arm,mhuv2-rx", "arm,primecell"]},
{"name": "mbox_se_mhu0_tx", "class": "mailbox", "base": "0x1b800000", "size": "0x1000", "compatible": ["arm,mhuv2-tx", "arm,primecell"]},
{"name": "mbox_se_mhu0_rx", "class": "mailbox", "base": "0x1b810000", "size": "0x1000", "compatible": ["arm,mhuv2-rx", "arm,primecell"]},
{"name": "mbox_se_mhu1_tx", "class": "mailbox", "base": "0x1b820000", "size": "0x1000", "compatible": ["arm,mhuv2-tx", "arm,primecell"]},
{"name": "mbox_se_mhu1_rx", "class": "mailbox", "base": "0x1b830000", "size": "0x1000", "compatible": ["arm,mhuv2-rx", "arm,primecell"]},
{"name": "gic", "class": "interrupt", "base": "0x1c010000", "size": "0x1000", "compatible": ["arm,gic-400"], "more_regs": [["0x1c02f000", "0x2000"], ["0x1c04f000", "0x1000"], ["0x1c06f000", "0x2000"]]},
{"name": "rtc", "class": "rtc", "base": "0x42000000", "size": "0x100", "compatible": ["snps,designware-rtc"]},
{"name": "lpgpio", "class": "gpio", "base": "0x42002000", "size": "0x1000", "compatible": ["snps,dw-apb-gpio"]},
{"name": "utimer", "class": "timer", "base": "0x48000000", "size": "0x100000", "compatible": ["alif,alif-utimer"]},
{"name": "eth0", "class": "net", "base": "0x48100000", "size": "0x2000", "compatible": ["snps,dwc-qos-ethernet-4.10"]},
{"name": "sdmmc", "class": "storage", "base": "0x48102000", "size": "0x1000", "compatible": ["alif,ensemble-dwcmshc", "snps,dwcmshc-sdhci"]},
{"name": "spi0", "class": "spi", "base": "0x48103000", "size": "0x1000", "compatible": ["snps,dwc-ssi-1.01a"]},
{"name": "spi1", "class": "spi", "base": "0x48104000", "size": "0x1000", "compatible": ["snps,dwc-ssi-1.01a"]},
{"name": "spi2", "class": "spi", "base": "0x48105000", "size": "0x1000", "compatible": ["snps,dwc-ssi-1.01a"]},
{"name": "spi3", "class": "spi", "base": "0x48106000", "size": "0x1000", "compatible": ["snps,dwc-ssi-1.01a"]},
{"name": "crc", "class": "crc", "base": "0x48107000", "size": "0x1000", "compatible": ["alif,alif-crccode"]},
{"name": "dwc3", "class": "usb", "base": "0x48200000", "size": "0x100000", "compatible": ["snps", "snps,dwc3"]},
{"name": "gpio0", "class": "gpio", "base": "0x49000000", "size": "0x1000", "compatible": ["snps,dw-apb-gpio"]},
{"name": "gpio1", "class": "gpio", "base": "0x49001000", "size": "0x1000", "compatible": ["snps,dw-apb-gpio"]},
{"name": "gpio2", "class": "gpio", "base": "0x49002000", "size": "0x1000", "compatible": ["snps,dw-apb-gpio"]},
{"name": "gpio3", "class": "gpio", "base": "0x49003000", "size": "0x1000", "compatible": ["snps,dw-apb-gpio"]},
{"name": "gpio4", "class": "gpio", "base": "0x49004000", "size": "0x1000", "compatible": ["snps,dw-apb-gpio"]},
{"name": "gpio5", "class": "gpio", "base": "0x49005000", "size": "0x1000", "compatible": ["snps,dw-apb-gpio"]},
{"name": "gpio6", "class": "gpio", "base": "0x49006000", "size": "0x1000", "compatible": ["snps,dw-apb-gpio"]},
{"name": "gpio7", "class": "gpio", "base": "0x49007000", "size": "0x1000", "compatible": ["snps,dw-apb-gpio"]},
{"name": "gpio8", "class": "gpio", "base": "0x49008000", "size": "0x1000", "compatible": ["snps,dw-apb-gpio"]},
{"name": "gpio9", "class": "gpio", "base": "0x49009000", "size": "0x1000", "compatible": ["snps,dw-apb-gpio"]},
{"name": "gpio10", "class": "gpio", "base": "0x4900a000", "size": "0x1000", "compatible": ["snps,dw-apb-gpio"]},
{"name": "gpio11", "class": "gpio", "base": "0x4900b000", "size": "0x1000", "compatible": ["snps,dw-apb-gpio"]},
{"name": "gpio12", "class": "gpio", "base": "0x4900c000", "size": "0x1000", "compatible": ["snps,dw-apb-gpio"]},
{"name": "gpio13", "class": "gpio", "base": "0x4900d000", "size": "0x1000", "compatible": ["snps,dw-apb-gpio"]},
{"name": "gpio14", "class": "gpio", "base": "0x4900e000", "size": "0x1000", "compatible": ["snps,dw-apb-gpio"]},
{"name": "i2c0", "class": "i2c", "base": "0x49010000", "size": "0x1000", "compatible": ["snps,designware-i2c"]},
{"name": "i2c1", "class": "i2c", "base": "0x49011000", "size": "0x1000", "compatible": ["snps,designware-i2c"]},
{"name": "i2c2", "class": "i2c", "base": "0x49012000", "size": "0x1000", "compatible": ["snps,designware-i2c"]},
{"name": "i2c3", "class": "i2c", "base": "0x49013000", "size": "0x1000", "compatible": ["snps,designware-i2c"]},
{"name": "i2s0", "class": "audio", "base": "0x49014000", "size": "0x1000", "compatible": ["snps,designware-i2s"]},
{"name": "i2s1", "class": "audio", "base": "0x49015000", "size": "0x1000", "compatible": ["snps,designware-i2s"]},
{"name": "i2s2", "class": "audio", "base": "0x49016000", "size": "0x1000", "compatible": ["snps,designware-i2s"]},
{"name": "i2s3", "class": "audio", "base": "0x49017000", "size": "0x1000", "compatible": ["snps,designware-i2s"]},
{"name": "uart0", "class": "uart", "base": "0x49018000", "size": "0x1000", "compatible": ["alif,ensemble-dw-uart", "snps,dw-apb-uart"]},
{"name": "uart1", "class": "uart", "base": "0x49019000", "size": "0x1000", "compatible": ["alif,ensemble-dw-uart", "snps,dw-apb-uart"]},
{"name": "uart2", "class": "uart", "base": "0x4901a000", "size": "0x1000", "compatible": ["snps,dw-apb-uart"]},
{"name": "uart3", "class": "uart", "base": "0x4901b000", "size": "0x1000", "compatible": ["alif,ensemble-dw-uart", "snps,dw-apb-uart"]},
{"name": "uart4", "class": "uart", "base": "0x4901c000", "size": "0x1000", "compatible": ["snps,dw-apb-uart"]},
{"name": "uart5", "class": "uart", "base": "0x4901d000", "size": "0x1000", "compatible": ["alif,ensemble-dw-uart", "snps,dw-apb-uart"]},
{"name": "uart6", "class": "uart", "base": "0x4901e000", "size": "0x1000", "compatible": ["alif,ensemble-dw-uart", "snps,dw-apb-uart"]},
{"name": "uart7", "class": "uart", "base": "0x4901f000", "size": "0x1000", "compatible": ["alif,ensemble-dw-uart", "snps,dw-apb-uart"]},
{"name": "adc12_0", "class": "adc", "base": "0x49020000", "size": "0x100", "compatible": ["alif,adc-dev"], "more_regs": [["0x49023000", "0x10"]]},
{"name": "adc12_1", "class": "adc", "base": "0x49021000", "size": "0x100", "compatible": ["alif,adc-dev"]},
{"name": "adc12_2", "class": "adc", "base": "0x49022000", "size": "0x100", "compatible": ["alif,adc-dev"]},
{"name": "cmp0", "class": "comparator", "base": "0x49023000", "size": "0x1000", "compatible": ["alif,cmp-module"]},
{"name": "cmp1", "class": "comparator", "base": "0x49024000", "size": "0x1000", "compatible": ["alif,cmp-module"]},
{"name": "cmp2", "class": "comparator", "base": "0x49025000", "size": "0x1000", "compatible": ["alif,cmp-module"]},
{"name": "cmp3", "class": "comparator", "base": "0x49026000", "size": "0x1000", "compatible": ["alif,cmp-module"]},
{"name": "adc24", "class": "adc", "base": "0x49027000", "size": "0x100", "compatible": ["alif,adc-dev"], "more_regs": [["0x49023000", "0x10"]]},
{"name": "dac12_0", "class": "dac", "base": "0x49028000", "size": "0x10", "compatible": ["alif,ensemble-dac"]},
{"name": "dac12_1", "class": "dac", "base": "0x49029000", "size": "0x10", "compatible": ["alif,ensemble-dac"]},
{"name": "adc_dac6", "class": "adc", "base": "0x4902a000", "size": "0x2000", "compatible": ["alif,adc-dac6"]},
{"name": "pdm0", "class": "audio", "base": "0x4902d000", "size": "0x1000", "compatible": ["alif,alif-pcm"]},
{"name": "pcmcard", "class": "audio", "base": "0x4902d800", "size": "0x1000", "compatible": ["alif,alif-pcm-card"]},
{"name": "hwsem0", "class": "semaphore", "base": "0x4902e000", "size": "0x4", "compatible": ["alif,hwsem"]},
{"name": "hwsem1", "class": "semaphore", "base": "0x4902e010", "size": "0x4", "compatible": ["alif,hwsem"]},
{"name": "hwsem2", "class": "semaphore", "base": "0x4902e020", "size": "0x4", "compatible": ["alif,hwsem"]},
{"name": "hwsem3", "class": "semaphore", "base": "0x4902e030", "size": "0x4", "compatible": ["alif,hwsem"]},
{"name": "hwsem4", "class": "semaphore", "base": "0x4902e040", "size": "0x4", "compatible": ["alif,hwsem"]},
{"name": "hwsem5", "class": "semaphore", "base": "0x4902e050", "size": "0x4", "compatible": ["alif,hwsem"]},
{"name": "hwsem6", "class": "semaphore", "base": "0x4902e060", "size": "0x4", "compatible": ["alif,hwsem"]},
{"name": "hwsem7", "class": "semaphore", "base": "0x4902e070", "size": "0x4", "compatible": ["alif,hwsem"]},
{"name": "hwsem8", "class": "semaphore", "base": "0x4902e080", "size": "0x4", "compatible": ["alif,hwsem"]},
{"name": "hwsem9", "class": "semaphore", "base": "0x4902e090", "size": "0x4", "compatible": ["alif,hwsem"]},
{"name": "hwsem10", "class": "semaphore", "base": "0x4902e0a0", "size": "0x4", "compatible": ["alif,hwsem"]},
{"name": "hwsem11", "class": "semaphore", "base": "0x4902e0b0", "size": "0x4", "compatible": ["alif,hwsem"]},
{"name": "hwsem12", "class": "semaphore", "base": "0x4902e0c0", "size": "0x4", "compatible": ["alif,hwsem"]},
{"name": "hwsem13", "class": "semaphore", "base": "0x4902e0d0", "size": "0x4", "compatible": ["alif,hwsem"]},
{"name": "hwsem14", "class": "semaphore", "base": "0x4902e0e0", "size": "0x4", "compatible": ["alif,hwsem"]},
{"name": "hwsem15", "class": "semaphore", "base": "0x4902e0f0", "size": "0x4", "compatible": ["alif,hwsem"]},
{"name": "psclks", "class": "clock", "base": "0x4902f000", "size": "0x1000", "compatible": ["alif,ensemble-ccps"]},
{"name": "cpi", "class": "camera", "base": "0x49030000", "size": "0x1000", "compatible": ["alif,ensemble-cpi2"]},
{"name": "cdc200", "class": "display", "base": "0x49031000", "size": "0x1000", "compatible": ["tes,cdc-2.1"]},
{"name": "dsi", "class": "display", "base": "0x49032000", "size": "0x1000", "compatible": ["alif,ensemble-dsi", "snps,dw-mipi-dsi"]},
{"name": "csi", "class": "camera", "base": "0x49033000", "size": "0x1000", "compatible": ["alif,ensemble-mipi-csi2", "snps,dw-mipi-csi2-v150"]},
{"name": "i3c0", "class": "i3c", "base": "0x49034000", "size": "0x1000", "compatible": ["snps,dw-i3c-master-1.00a"]},
{"name": "event_router", "class": "dma", "base": "0x49035000", "size": "0x1000", "compatible": ["alif,event-router"]},
{"name": "dphy", "class": "phy", "base": "0x4903f000", "size": "0xb0", "compatible": ["alif,dphy", "snps,dphy"], "more_regs": [["0x1a609008", "0x4"]]},
{"name": "tes_d2d_0", "class": "gpu", "base": "0x49040000", "size": "0x1000", "compatible": ["tes,d2d-1.0"]},
{"name": "ethosu_npu", "class": "npu", "base": "0x49042000", "size": "0x2000", "compatible": ["arm,ethosu-direct"]},
{"name": "dmac_bus_ns", "class": "dma", "base": "0x490a0000", "size": "0x1000", "compatible": ["arm,pl330", "arm,primecell"]}
]
}