Merge changes I0396b597,I326f920f,I0437eec8,Ieadf01fc,I4e1d8c24, ... into integration
* changes:
feat(fvp): set defaults for build commandline
docs(arm): enable Linux boot from fip as BL33
feat(arm): enable Linux boot from fip as BL33
docs(fvp): update fvp build time options
docs(arm): add initrd props to dtb at build time
feat(arm): add initrd props to dtb at build time
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index decb2f9..46e5f67 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -36,7 +36,7 @@
- target-branch: "main"
package-ecosystem: "pip"
versioning-strategy: "lockfile-only"
- directories: ["/", "/tools/cot_dt2c", "/tools/tlc"]
+ directories: ["/", "/tools/cot_dt2c", "/tools/memory", "/tools/tlc"]
schedule:
interval: "daily"
groups:
diff --git a/.readthedocs.yaml b/.readthedocs.yaml
index 2d1afab..d308fdd 100644
--- a/.readthedocs.yaml
+++ b/.readthedocs.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2023-2024, Arm Limited. All rights reserved
+# Copyright (c) 2023-2025, Arm Limited. All rights reserved
#
# SPDX-License-Identifier: BSD-3-Clause
#
@@ -20,7 +20,7 @@
post_create_environment:
- pip install poetry=="1.3.2"
post_install:
- - VIRTUAL_ENV=$READTHEDOCS_VIRTUALENV_PATH poetry install --with docs
+ - VIRTUAL_ENV=$READTHEDOCS_VIRTUALENV_PATH poetry install --no-root --with docs
sphinx:
configuration: docs/conf.py
@@ -28,4 +28,3 @@
# Auxiliary formats to export to (in addition to the default HTML output).
formats:
- pdf
-
diff --git a/Makefile b/Makefile
index 26636c8..7fd8d0c 100644
--- a/Makefile
+++ b/Makefile
@@ -1777,8 +1777,7 @@
$(q)${MAKE} PLAT_DIR=${PLAT_DIR} BUILD_PLAT=${BUILD_PLAT} ENABLE_BTI=${ENABLE_BTI} CRYPTO_SUPPORT=${CRYPTO_SUPPORT} ARM_ARCH_MINOR=${ARM_ARCH_MINOR} INCLUDES=$(call escape-shell,$(INCLUDES)) DEFINES=$(call escape-shell,$(DEFINES)) --no-print-directory -C ${ROMLIBPATH} all
memmap: all
- $(q)PYTHONPATH=${CURDIR}/tools/memory \
- ${PYTHON} -m memory.memmap -sr ${BUILD_PLAT}
+ $(q)$(if $(host-poetry),poetry run )memory -sr ${BUILD_PLAT}
tl: ${BUILD_PLAT}/tl.bin
${BUILD_PLAT}/tl.bin: ${HW_CONFIG}
diff --git a/docs/porting-guide.rst b/docs/porting-guide.rst
index d06d153..0f0dedd 100644
--- a/docs/porting-guide.rst
+++ b/docs/porting-guide.rst
@@ -2938,6 +2938,8 @@
possible on platforms where this is guaranteed to be terminal, however, it is
strongly discouraged going forward.
+Previously this function was called ``pwr_domain_pwr_down_wfi()``.
+
plat_psci_ops.pwr_domain_on_finish()
....................................
@@ -3457,6 +3459,18 @@
External Abort handling and RAS Support
---------------------------------------
+If any cores on the platform support powerdown abandon (i.e. ``FEAT_PABANDON``
+is set, check the "Core powerup and powerdown sequence" in their TRMs), then
+these functions should be able to handle being called with power domains off and
+after the powerdown ``wfi``. In other words it may run after a call to
+``pwr_domain_suspend()`` and before a call to ``pwr_domain_suspend_finish()``
+(and their power off counterparts).
+
+Should this not be desirable, or if there is no powerdown abandon support, then
+RAS errors should be masked by writing any relevant error records in any
+powerdown hooks to prevent deadlocks due to a RAS error after the point of no
+return. See the core's TRM for further information.
+
Function : plat_ea_handler
~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/docs/tools/memory-layout-tool.rst b/docs/tools/memory-layout-tool.rst
index 8874bd7..d9c358d 100644
--- a/docs/tools/memory-layout-tool.rst
+++ b/docs/tools/memory-layout-tool.rst
@@ -23,7 +23,7 @@
.. code:: shell
- poetry install --with memory
+ poetry install --no-root
#. Verify that the tool runs in the installed virtual environment
@@ -231,6 +231,6 @@
--------------
-*Copyright (c) 2023, Arm Limited. All rights reserved.*
+*Copyright (c) 2023-2025, Arm Limited. All rights reserved.*
.. _Poetry: https://python-poetry.org/docs/
diff --git a/plat/mediatek/mt8196/drivers/gpio/mtgpio.c b/plat/mediatek/mt8196/drivers/gpio/mtgpio.c
index 6257159..a34f706 100644
--- a/plat/mediatek/mt8196/drivers/gpio/mtgpio.c
+++ b/plat/mediatek/mt8196/drivers/gpio/mtgpio.c
@@ -23,7 +23,8 @@
REG_11,
REG_12,
REG_13,
- REG_14
+ REG_14,
+ REG_15
} RegEnum;
uintptr_t mt_gpio_find_reg_addr(uint32_t pin)
@@ -37,48 +38,51 @@
switch (gpio_info.base & 0xF) {
case REG_0:
- reg_addr = IOCFG_RT_BASE;
+ reg_addr = GPIO_BASE;
break;
case REG_1:
- reg_addr = IOCFG_RM1_BASE;
+ reg_addr = IOCFG_RT_BASE;
break;
case REG_2:
- reg_addr = IOCFG_RM2_BASE;
+ reg_addr = IOCFG_RM1_BASE;
break;
case REG_3:
- reg_addr = IOCFG_RB_BASE;
+ reg_addr = IOCFG_RM2_BASE;
break;
case REG_4:
- reg_addr = IOCFG_BM1_BASE;
+ reg_addr = IOCFG_RB_BASE;
break;
case REG_5:
- reg_addr = IOCFG_BM2_BASE;
+ reg_addr = IOCFG_BM1_BASE;
break;
case REG_6:
- reg_addr = IOCFG_BM3_BASE;
+ reg_addr = IOCFG_BM2_BASE;
break;
case REG_7:
- reg_addr = IOCFG_LT_BASE;
+ reg_addr = IOCFG_BM3_BASE;
break;
case REG_8:
- reg_addr = IOCFG_LM1_BASE;
+ reg_addr = IOCFG_LT_BASE;
break;
case REG_9:
- reg_addr = IOCFG_LM2_BASE;
+ reg_addr = IOCFG_LM1_BASE;
break;
case REG_10:
- reg_addr = IOCFG_LB1_BASE;
+ reg_addr = IOCFG_LM2_BASE;
break;
case REG_11:
- reg_addr = IOCFG_LB2_BASE;
+ reg_addr = IOCFG_LB1_BASE;
break;
case REG_12:
- reg_addr = IOCFG_TM1_BASE;
+ reg_addr = IOCFG_LB2_BASE;
break;
case REG_13:
- reg_addr = IOCFG_TM2_BASE;
+ reg_addr = IOCFG_TM1_BASE;
break;
case REG_14:
+ reg_addr = IOCFG_TM2_BASE;
+ break;
+ case REG_15:
reg_addr = IOCFG_TM3_BASE;
break;
default:
diff --git a/plat/mediatek/mt8196/drivers/gpio/mtgpio.h b/plat/mediatek/mt8196/drivers/gpio/mtgpio.h
index a33bdad..ef8ee8c 100644
--- a/plat/mediatek/mt8196/drivers/gpio/mtgpio.h
+++ b/plat/mediatek/mt8196/drivers/gpio/mtgpio.h
@@ -50,131 +50,131 @@
} GPIO_PIN;
static const struct mt_pin_info mt_pin_infos[] = {
- PIN(0, 0, 0, 0x18, 0x90),
- PIN(1, 0, 1, 0x18, 0x90),
- PIN(2, 0, 1, 0x1b, 0x70),
- PIN(3, 0, 2, 0x1b, 0x70),
- PIN(4, 0, 3, 0x1b, 0x70),
- PIN(5, 0, 4, 0x1b, 0x70),
- PIN(6, 0, 5, 0x1b, 0x70),
- PIN(7, 0, 6, 0x1b, 0x70),
- PIN(8, 0, 7, 0x1b, 0x70),
- PIN(9, 0, 14, 0x29, 0xa0),
- PIN(10, 0, 12, 0x29, 0xa0),
- PIN(11, 0, 2, 0x18, 0x90),
- PIN(12, 0, 13, 0x29, 0xa0),
- PIN(13, 0, 1, 0x26, 0x90),
- PIN(14, 0, 0, 0x13, 0x80),
- PIN(15, 0, 2, 0x26, 0x90),
- PIN(16, 0, 3, 0x26, 0x90),
- PIN(17, 0, 4, 0x26, 0x90),
- PIN(18, 0, 5, 0x26, 0x90),
- PIN(19, 0, 6, 0x26, 0x90),
- PIN(20, 0, 1, 0x13, 0x80),
- PIN(21, 0, 3, 0x12, 0x80),
- PIN(22, 0, 4, 0x12, 0x80),
- PIN(23, 0, 5, 0x12, 0x80),
- PIN(24, 0, 6, 0x12, 0x80),
- PIN(25, 0, 7, 0x12, 0x80),
- PIN(26, 0, 8, 0x12, 0x80),
- PIN(27, 0, 9, 0x12, 0x80),
- PIN(28, 0, 10, 0x12, 0x80),
- PIN(29, 0, 11, 0x12, 0x80),
- PIN(30, 0, 12, 0x12, 0x80),
- PIN(31, 0, 13, 0x12, 0x80),
- PIN(32, 0, 8, 0x11, 0x80),
- PIN(33, 0, 9, 0x11, 0x80),
- PIN(34, 0, 10, 0x11, 0x80),
- PIN(35, 0, 11, 0x11, 0x80),
- PIN(36, 0, 12, 0x11, 0x80),
- PIN(37, 0, 13, 0x11, 0x80),
- PIN(38, 0, 14, 0x11, 0x80),
- PIN(39, 0, 6, 0x18, 0x90),
- PIN(40, 0, 3, 0x18, 0x90),
- PIN(41, 0, 5, 0x18, 0x90),
- PIN(42, 0, 4, 0x18, 0x90),
- PIN(43, 0, 7, 0x18, 0x90),
- PIN(44, 0, 8, 0x18, 0x90),
- PIN(45, 0, 9, 0x18, 0x90),
- PIN(46, 0, 10, 0x18, 0x90),
- PIN(47, 0, 13, 0x18, 0x90),
- PIN(48, 0, 11, 0x18, 0x90),
- PIN(49, 0, 14, 0x18, 0x90),
- PIN(50, 0, 12, 0x18, 0x90),
- PIN(51, 0, 15, 0x18, 0x90),
- PIN(52, 0, 7, 0x29, 0xa0),
- PIN(53, 0, 8, 0x29, 0xa0),
- PIN(54, 0, 2, 0x29, 0xa0),
- PIN(55, 0, 1, 0x29, 0xa0),
- PIN(56, 0, 5, 0x29, 0xa0),
- PIN(57, 0, 6, 0x29, 0xa0),
- PIN(58, 0, 3, 0x29, 0xa0),
- PIN(59, 0, 4, 0x29, 0xa0),
+ PIN(0, 0, 0, 0x18, 0xa0),
+ PIN(1, 0, 1, 0x18, 0xa0),
+ PIN(2, 0, 1, 0x1b, 0x80),
+ PIN(3, 0, 2, 0x1b, 0x80),
+ PIN(4, 0, 3, 0x1b, 0x80),
+ PIN(5, 0, 4, 0x1b, 0x80),
+ PIN(6, 0, 5, 0x1b, 0x80),
+ PIN(7, 0, 6, 0x1b, 0x80),
+ PIN(8, 0, 7, 0x1b, 0x80),
+ PIN(9, 0, 14, 0x29, 0xc0),
+ PIN(10, 0, 12, 0x29, 0xc0),
+ PIN(11, 0, 2, 0x18, 0xa0),
+ PIN(12, 0, 13, 0x29, 0xc0),
+ PIN(13, 0, 1, 0x26, 0xb0),
+ PIN(14, 0, 0, 0x13, 0x90),
+ PIN(15, 0, 2, 0x26, 0xb0),
+ PIN(16, 0, 3, 0x26, 0xb0),
+ PIN(17, 0, 4, 0x26, 0xb0),
+ PIN(18, 0, 5, 0x26, 0xb0),
+ PIN(19, 0, 6, 0x26, 0xb0),
+ PIN(20, 0, 1, 0x13, 0x90),
+ PIN(21, 0, 3, 0x12, 0x90),
+ PIN(22, 0, 4, 0x12, 0x90),
+ PIN(23, 0, 5, 0x12, 0x90),
+ PIN(24, 0, 6, 0x12, 0x90),
+ PIN(25, 0, 7, 0x12, 0x90),
+ PIN(26, 0, 8, 0x12, 0x90),
+ PIN(27, 0, 9, 0x12, 0x90),
+ PIN(28, 0, 10, 0x12, 0x90),
+ PIN(29, 0, 11, 0x12, 0x90),
+ PIN(30, 0, 12, 0x12, 0x90),
+ PIN(31, 0, 13, 0x12, 0x90),
+ PIN(32, 0, 8, 0x11, 0x90),
+ PIN(33, 0, 9, 0x11, 0x90),
+ PIN(34, 0, 10, 0x11, 0x90),
+ PIN(35, 0, 11, 0x11, 0x90),
+ PIN(36, 0, 12, 0x11, 0x90),
+ PIN(37, 0, 13, 0x11, 0x90),
+ PIN(38, 0, 14, 0x11, 0x90),
+ PIN(39, 0, 6, 0x18, 0xa0),
+ PIN(40, 0, 3, 0x18, 0xa0),
+ PIN(41, 0, 5, 0x18, 0xa0),
+ PIN(42, 0, 4, 0x18, 0xa0),
+ PIN(43, 0, 7, 0x18, 0xa0),
+ PIN(44, 0, 8, 0x18, 0xa0),
+ PIN(45, 0, 9, 0x18, 0xa0),
+ PIN(46, 0, 10, 0x18, 0xa0),
+ PIN(47, 0, 13, 0x18, 0xa0),
+ PIN(48, 0, 11, 0x18, 0xa0),
+ PIN(49, 0, 14, 0x18, 0xa0),
+ PIN(50, 0, 12, 0x18, 0xa0),
+ PIN(51, 0, 15, 0x18, 0xa0),
+ PIN(52, 0, 7, 0x29, 0xc0),
+ PIN(53, 0, 8, 0x29, 0xc0),
+ PIN(54, 0, 2, 0x29, 0xc0),
+ PIN(55, 0, 1, 0x29, 0xc0),
+ PIN(56, 0, 5, 0x29, 0xc0),
+ PIN(57, 0, 6, 0x29, 0xc0),
+ PIN(58, 0, 3, 0x29, 0xc0),
+ PIN(59, 0, 4, 0x29, 0xc0),
PIN(60, 1, 0, 0x29, 0xb0),
- PIN(61, 0, 10, 0x29, 0xa0),
- PIN(62, 0, 9, 0x29, 0xa0),
- PIN(63, 0, 18, 0x29, 0xa0),
- PIN(64, 0, 0, 0x29, 0xa0),
- PIN(65, 0, 11, 0x29, 0xa0),
- PIN(66, 0, 24, 0x29, 0xa0),
- PIN(67, 0, 21, 0x29, 0xa0),
- PIN(68, 0, 20, 0x29, 0xa0),
- PIN(69, 0, 25, 0x29, 0xa0),
- PIN(70, 0, 16, 0x29, 0xa0),
- PIN(71, 0, 15, 0x29, 0xa0),
- PIN(72, 0, 23, 0x29, 0xa0),
- PIN(73, 0, 19, 0x29, 0xa0),
- PIN(74, 0, 17, 0x29, 0xa0),
- PIN(75, 0, 2, 0x1a, 0x80),
- PIN(76, 0, 3, 0x1a, 0x80),
- PIN(77, 0, 4, 0x1a, 0x80),
- PIN(78, 0, 5, 0x1a, 0x80),
- PIN(79, 0, 0, 0x1a, 0x80),
- PIN(80, 0, 1, 0x1a, 0x80),
- PIN(81, 0, 9, 0x1b, 0x70),
- PIN(82, 0, 10, 0x1b, 0x70),
- PIN(83, 0, 12, 0x1b, 0x70),
- PIN(84, 0, 11, 0x1b, 0x70),
- PIN(85, 0, 13, 0x1b, 0x70),
- PIN(86, 0, 14, 0x1b, 0x70),
- PIN(87, 0, 16, 0x1b, 0x70),
- PIN(88, 0, 15, 0x1b, 0x70),
- PIN(89, 0, 0, 0x1b, 0x70),
- PIN(90, 0, 8, 0x1b, 0x70),
- PIN(91, 0, 6, 0x1c, 0x80),
- PIN(92, 0, 7, 0x1c, 0x80),
- PIN(93, 0, 8, 0x1c, 0x80),
- PIN(94, 0, 4, 0x1c, 0x80),
- PIN(95, 0, 1, 0x1c, 0x80),
- PIN(96, 0, 3, 0x1c, 0x80),
- PIN(97, 0, 2, 0x1c, 0x80),
- PIN(98, 0, 5, 0x1c, 0x80),
- PIN(99, 0, 9, 0x1c, 0x80),
- PIN(100, 0, 12, 0x1c, 0x80),
- PIN(101, 0, 10, 0x1c, 0x80),
- PIN(102, 0, 13, 0x1c, 0x80),
- PIN(103, 0, 0, 0x1c, 0x80),
- PIN(104, 0, 11, 0x1c, 0x80),
- PIN(105, 0, 14, 0x1c, 0x80),
- PIN(106, 0, 0, 0x15, 0x80),
- PIN(107, 0, 1, 0x15, 0x80),
- PIN(108, 0, 3, 0x15, 0x80),
- PIN(109, 0, 2, 0x15, 0x80),
- PIN(110, 0, 4, 0x15, 0x80),
- PIN(111, 0, 5, 0x15, 0x80),
- PIN(112, 0, 7, 0x15, 0x80),
- PIN(113, 0, 6, 0x15, 0x80),
- PIN(114, 0, 8, 0x15, 0x80),
- PIN(115, 0, 9, 0x15, 0x80),
- PIN(116, 0, 11, 0x15, 0x80),
- PIN(117, 0, 10, 0x15, 0x80),
- PIN(118, 0, 9, 0x26, 0x90),
- PIN(119, 0, 10, 0x26, 0x90),
- PIN(120, 0, 12, 0x26, 0x90),
- PIN(121, 0, 11, 0x26, 0x90),
- PIN(122, 0, 0, 0x26, 0x90),
- PIN(123, 0, 7, 0x26, 0x90),
- PIN(124, 0, 8, 0x26, 0x90),
+ PIN(61, 0, 10, 0x29, 0xc0),
+ PIN(62, 0, 9, 0x29, 0xc0),
+ PIN(63, 0, 18, 0x29, 0xc0),
+ PIN(64, 0, 0, 0x29, 0xc0),
+ PIN(65, 0, 11, 0x29, 0xc0),
+ PIN(66, 0, 24, 0x29, 0xc0),
+ PIN(67, 0, 21, 0x29, 0xc0),
+ PIN(68, 0, 20, 0x29, 0xc0),
+ PIN(69, 0, 25, 0x29, 0xc0),
+ PIN(70, 0, 16, 0x29, 0xc0),
+ PIN(71, 0, 15, 0x29, 0xc0),
+ PIN(72, 0, 23, 0x29, 0xc0),
+ PIN(73, 0, 19, 0x29, 0xc0),
+ PIN(74, 0, 17, 0x29, 0xc0),
+ PIN(75, 0, 2, 0x1a, 0x90),
+ PIN(76, 0, 3, 0x1a, 0x90),
+ PIN(77, 0, 4, 0x1a, 0x90),
+ PIN(78, 0, 5, 0x1a, 0x90),
+ PIN(79, 0, 0, 0x1a, 0x90),
+ PIN(80, 0, 1, 0x1a, 0x90),
+ PIN(81, 0, 9, 0x1b, 0x80),
+ PIN(82, 0, 10, 0x1b, 0x80),
+ PIN(83, 0, 12, 0x1b, 0x80),
+ PIN(84, 0, 11, 0x1b, 0x80),
+ PIN(85, 0, 13, 0x1b, 0x80),
+ PIN(86, 0, 14, 0x1b, 0x80),
+ PIN(87, 0, 16, 0x1b, 0x80),
+ PIN(88, 0, 15, 0x1b, 0x80),
+ PIN(89, 0, 0, 0x1b, 0x80),
+ PIN(90, 0, 8, 0x1b, 0x80),
+ PIN(91, 0, 6, 0x1c, 0x90),
+ PIN(92, 0, 7, 0x1c, 0x90),
+ PIN(93, 0, 8, 0x1c, 0x90),
+ PIN(94, 0, 4, 0x1c, 0x90),
+ PIN(95, 0, 1, 0x1c, 0x90),
+ PIN(96, 0, 3, 0x1c, 0x90),
+ PIN(97, 0, 2, 0x1c, 0x90),
+ PIN(98, 0, 5, 0x1c, 0x90),
+ PIN(99, 0, 9, 0x1c, 0x90),
+ PIN(100, 0, 12, 0x1c, 0x90),
+ PIN(101, 0, 10, 0x1c, 0x90),
+ PIN(102, 0, 13, 0x1c, 0x90),
+ PIN(103, 0, 0, 0x1c, 0x90),
+ PIN(104, 0, 11, 0x1c, 0x90),
+ PIN(105, 0, 14, 0x1c, 0x90),
+ PIN(106, 0, 0, 0x15, 0x90),
+ PIN(107, 0, 1, 0x15, 0x90),
+ PIN(108, 0, 3, 0x15, 0x90),
+ PIN(109, 0, 2, 0x15, 0x90),
+ PIN(110, 0, 4, 0x15, 0x90),
+ PIN(111, 0, 5, 0x15, 0x90),
+ PIN(112, 0, 7, 0x15, 0x90),
+ PIN(113, 0, 6, 0x15, 0x90),
+ PIN(114, 0, 8, 0x15, 0x90),
+ PIN(115, 0, 9, 0x15, 0x90),
+ PIN(116, 0, 11, 0x15, 0x90),
+ PIN(117, 0, 10, 0x15, 0x90),
+ PIN(118, 0, 9, 0x26, 0xb0),
+ PIN(119, 0, 10, 0x26, 0xb0),
+ PIN(120, 0, 12, 0x26, 0xb0),
+ PIN(121, 0, 11, 0x26, 0xb0),
+ PIN(122, 0, 0, 0x26, 0xb0),
+ PIN(123, 0, 7, 0x26, 0xb0),
+ PIN(124, 0, 8, 0x26, 0xb0),
PIN(125, 1, 0, 0x17, 0x80),
PIN(126, 1, 1, 0x17, 0x80),
PIN(127, 1, 2, 0x17, 0x80),
@@ -207,108 +207,108 @@
PIN(154, 1, 8, 0x14, 0x70),
PIN(155, 1, 18, 0x14, 0x70),
PIN(156, 1, 19, 0x14, 0x70),
- PIN(157, 0, 1, 0x12, 0x80),
- PIN(158, 0, 2, 0x12, 0x80),
- PIN(159, 0, 0, 0x12, 0x80),
- PIN(160, 0, 22, 0x13, 0x80),
- PIN(161, 0, 20, 0x13, 0x80),
- PIN(162, 0, 23, 0x13, 0x80),
- PIN(163, 0, 21, 0x13, 0x80),
- PIN(164, 0, 12, 0x13, 0x80),
- PIN(165, 0, 14, 0x13, 0x80),
- PIN(166, 0, 13, 0x13, 0x80),
- PIN(167, 0, 15, 0x13, 0x80),
- PIN(168, 0, 16, 0x13, 0x80),
- PIN(169, 0, 17, 0x13, 0x80),
- PIN(170, 0, 19, 0x13, 0x80),
- PIN(171, 0, 18, 0x13, 0x80),
- PIN(172, 0, 10, 0x13, 0x80),
- PIN(173, 0, 11, 0x13, 0x80),
- PIN(174, 0, 15, 0x11, 0x80),
- PIN(175, 0, 16, 0x11, 0x80),
- PIN(176, 0, 17, 0x11, 0x80),
- PIN(177, 0, 18, 0x11, 0x80),
- PIN(178, 0, 6, 0x11, 0x80),
- PIN(179, 0, 7, 0x11, 0x80),
- PIN(180, 0, 0, 0x11, 0x80),
- PIN(181, 0, 1, 0x11, 0x80),
- PIN(182, 0, 2, 0x11, 0x80),
- PIN(183, 0, 3, 0x11, 0x80),
- PIN(184, 0, 4, 0x11, 0x80),
- PIN(185, 0, 5, 0x11, 0x80),
- PIN(186, 0, 4, 0x1d, 0xc0),
- PIN(187, 0, 5, 0x1d, 0xc0),
- PIN(188, 0, 12, 0x1d, 0xc0),
- PIN(189, 0, 17, 0x1d, 0xc0),
- PIN(190, 0, 13, 0x1d, 0xc0),
- PIN(191, 0, 18, 0x1d, 0xc0),
- PIN(192, 0, 0, 0x1d, 0xc0),
- PIN(193, 0, 6, 0x1d, 0xc0),
- PIN(194, 0, 14, 0x1d, 0xc0),
- PIN(195, 0, 19, 0x1d, 0xc0),
- PIN(196, 0, 1, 0x1d, 0xc0),
- PIN(197, 0, 7, 0x1d, 0xc0),
- PIN(198, 0, 15, 0x1d, 0xc0),
- PIN(199, 0, 20, 0x1d, 0xc0),
- PIN(200, 0, 22, 0x1d, 0xc0),
- PIN(201, 0, 25, 0x1d, 0xc0),
- PIN(202, 0, 16, 0x1d, 0xc0),
- PIN(203, 0, 21, 0x1d, 0xc0),
- PIN(204, 0, 2, 0x1d, 0xc0),
- PIN(205, 0, 3, 0x1d, 0xc0),
- PIN(206, 0, 8, 0x1d, 0xc0),
- PIN(207, 0, 9, 0x1d, 0xc0),
- PIN(208, 0, 10, 0x1d, 0xc0),
- PIN(209, 0, 11, 0x1d, 0xc0),
- PIN(210, 0, 0, 0x2e, 0x90),
- PIN(211, 0, 1, 0x2e, 0x90),
- PIN(212, 0, 2, 0x2e, 0x90),
- PIN(213, 0, 3, 0x2e, 0x90),
- PIN(214, 0, 23, 0x1d, 0xc0),
- PIN(215, 0, 24, 0x1d, 0xc0),
- PIN(216, 0, 4, 0x2e, 0x90),
+ PIN(157, 0, 1, 0x12, 0x90),
+ PIN(158, 0, 2, 0x12, 0x90),
+ PIN(159, 0, 0, 0x12, 0x90),
+ PIN(160, 0, 22, 0x13, 0x90),
+ PIN(161, 0, 20, 0x13, 0x90),
+ PIN(162, 0, 23, 0x13, 0x90),
+ PIN(163, 0, 21, 0x13, 0x90),
+ PIN(164, 0, 12, 0x13, 0x90),
+ PIN(165, 0, 14, 0x13, 0x90),
+ PIN(166, 0, 13, 0x13, 0x90),
+ PIN(167, 0, 15, 0x13, 0x90),
+ PIN(168, 0, 16, 0x13, 0x90),
+ PIN(169, 0, 17, 0x13, 0x90),
+ PIN(170, 0, 19, 0x13, 0x90),
+ PIN(171, 0, 18, 0x13, 0x90),
+ PIN(172, 0, 10, 0x13, 0x90),
+ PIN(173, 0, 11, 0x13, 0x90),
+ PIN(174, 0, 15, 0x11, 0x90),
+ PIN(175, 0, 16, 0x11, 0x90),
+ PIN(176, 0, 17, 0x11, 0x90),
+ PIN(177, 0, 18, 0x11, 0x90),
+ PIN(178, 0, 6, 0x11, 0x90),
+ PIN(179, 0, 7, 0x11, 0x90),
+ PIN(180, 0, 0, 0x11, 0x90),
+ PIN(181, 0, 1, 0x11, 0x90),
+ PIN(182, 0, 2, 0x11, 0x90),
+ PIN(183, 0, 3, 0x11, 0x90),
+ PIN(184, 0, 4, 0x11, 0x90),
+ PIN(185, 0, 5, 0x11, 0x90),
+ PIN(186, 0, 4, 0x1d, 0xd0),
+ PIN(187, 0, 5, 0x1d, 0xd0),
+ PIN(188, 0, 12, 0x1d, 0xd0),
+ PIN(189, 0, 17, 0x1d, 0xd0),
+ PIN(190, 0, 13, 0x1d, 0xd0),
+ PIN(191, 0, 18, 0x1d, 0xd0),
+ PIN(192, 0, 0, 0x1d, 0xd0),
+ PIN(193, 0, 6, 0x1d, 0xd0),
+ PIN(194, 0, 14, 0x1d, 0xd0),
+ PIN(195, 0, 19, 0x1d, 0xd0),
+ PIN(196, 0, 1, 0x1d, 0xd0),
+ PIN(197, 0, 7, 0x1d, 0xd0),
+ PIN(198, 0, 15, 0x1d, 0xd0),
+ PIN(199, 0, 20, 0x1d, 0xd0),
+ PIN(200, 0, 22, 0x1d, 0xd0),
+ PIN(201, 0, 25, 0x1d, 0xd0),
+ PIN(202, 0, 16, 0x1d, 0xd0),
+ PIN(203, 0, 21, 0x1d, 0xd0),
+ PIN(204, 0, 2, 0x1d, 0xd0),
+ PIN(205, 0, 3, 0x1d, 0xd0),
+ PIN(206, 0, 8, 0x1d, 0xd0),
+ PIN(207, 0, 9, 0x1d, 0xd0),
+ PIN(208, 0, 10, 0x1d, 0xd0),
+ PIN(209, 0, 11, 0x1d, 0xd0),
+ PIN(210, 0, 0, 0x2e, 0xb0),
+ PIN(211, 0, 1, 0x2e, 0xb0),
+ PIN(212, 0, 2, 0x2e, 0xb0),
+ PIN(213, 0, 3, 0x2e, 0xb0),
+ PIN(214, 0, 23, 0x1d, 0xd0),
+ PIN(215, 0, 24, 0x1d, 0xd0),
+ PIN(216, 0, 4, 0x2e, 0xb0),
PIN(217, 1, 1, 0x2e, 0xa0),
PIN(218, 1, 2, 0x2e, 0xa0),
PIN(219, 1, 0, 0x2e, 0xa0),
- PIN(220, 0, 5, 0x2e, 0x90),
- PIN(221, 0, 6, 0x2e, 0x90),
- PIN(222, 0, 8, 0x2e, 0x90),
- PIN(223, 0, 7, 0x2e, 0x90),
+ PIN(220, 0, 5, 0x2e, 0xb0),
+ PIN(221, 0, 6, 0x2e, 0xb0),
+ PIN(222, 0, 8, 0x2e, 0xb0),
+ PIN(223, 0, 7, 0x2e, 0xb0),
PIN(224, 1, 3, 0x2e, 0xa0),
PIN(225, 1, 4, 0x2e, 0xa0),
PIN(226, 1, 5, 0x2e, 0xa0),
PIN(227, 1, 6, 0x2e, 0xa0),
PIN(228, 1, 7, 0x2e, 0xa0),
PIN(229, 1, 8, 0x2e, 0xa0),
- PIN(230, 0, 13, 0x2f, 0x70),
- PIN(231, 0, 14, 0x2f, 0x70),
- PIN(232, 0, 10, 0x2f, 0x70),
- PIN(233, 0, 0, 0x2f, 0x70),
- PIN(234, 0, 3, 0x2f, 0x70),
- PIN(235, 0, 1, 0x2f, 0x70),
- PIN(236, 0, 2, 0x2f, 0x70),
- PIN(237, 0, 6, 0x2f, 0x70),
- PIN(238, 0, 5, 0x2f, 0x70),
- PIN(239, 0, 19, 0x2f, 0x70),
- PIN(240, 0, 18, 0x2f, 0x70),
- PIN(241, 0, 16, 0x2f, 0x70),
- PIN(242, 0, 17, 0x2f, 0x70),
- PIN(243, 0, 15, 0x2f, 0x70),
- PIN(244, 0, 12, 0x2f, 0x70),
- PIN(245, 0, 9, 0x2f, 0x70),
- PIN(246, 0, 8, 0x2f, 0x70),
- PIN(247, 0, 7, 0x2f, 0x70),
- PIN(248, 0, 4, 0x2f, 0x70),
- PIN(249, 0, 20, 0x2f, 0x70),
- PIN(250, 0, 11, 0x2f, 0x70),
- PIN(251, 0, 2, 0x13, 0x80),
- PIN(252, 0, 3, 0x13, 0x80),
- PIN(253, 0, 4, 0x13, 0x80),
- PIN(254, 0, 5, 0x13, 0x80),
- PIN(255, 0, 6, 0x13, 0x80),
- PIN(256, 0, 7, 0x13, 0x80),
- PIN(257, 0, 8, 0x13, 0x80),
- PIN(258, 0, 9, 0x13, 0x80),
+ PIN(230, 0, 13, 0x2f, 0x90),
+ PIN(231, 0, 14, 0x2f, 0x90),
+ PIN(232, 0, 10, 0x2f, 0x90),
+ PIN(233, 0, 0, 0x2f, 0x90),
+ PIN(234, 0, 3, 0x2f, 0x90),
+ PIN(235, 0, 1, 0x2f, 0x90),
+ PIN(236, 0, 2, 0x2f, 0x90),
+ PIN(237, 0, 6, 0x2f, 0x90),
+ PIN(238, 0, 5, 0x2f, 0x90),
+ PIN(239, 0, 19, 0x2f, 0x90),
+ PIN(240, 0, 18, 0x2f, 0x90),
+ PIN(241, 0, 16, 0x2f, 0x90),
+ PIN(242, 0, 17, 0x2f, 0x90),
+ PIN(243, 0, 15, 0x2f, 0x90),
+ PIN(244, 0, 12, 0x2f, 0x90),
+ PIN(245, 0, 9, 0x2f, 0x90),
+ PIN(246, 0, 8, 0x2f, 0x90),
+ PIN(247, 0, 7, 0x2f, 0x90),
+ PIN(248, 0, 4, 0x2f, 0x90),
+ PIN(249, 0, 20, 0x2f, 0x90),
+ PIN(250, 0, 11, 0x2f, 0x90),
+ PIN(251, 0, 2, 0x13, 0x90),
+ PIN(252, 0, 3, 0x13, 0x90),
+ PIN(253, 0, 4, 0x13, 0x90),
+ PIN(254, 0, 5, 0x13, 0x90),
+ PIN(255, 0, 6, 0x13, 0x90),
+ PIN(256, 0, 7, 0x13, 0x90),
+ PIN(257, 0, 8, 0x13, 0x90),
+ PIN(258, 0, 9, 0x13, 0x90),
PIN(259, 1, 9, 0x2e, 0xa0),
PIN(260, 1, 10, 0x2e, 0xa0),
PIN(261, 1, 11, 0x2e, 0xa0),
diff --git a/poetry.lock b/poetry.lock
index 4127bcd..341a2bd 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1,4 +1,4 @@
-# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand.
[[package]]
name = "alabaster"
@@ -538,6 +538,25 @@
]
[[package]]
+name = "memory"
+version = "0.1.0"
+description = "A tool for analysis of "
+optional = false
+python-versions = "^3.8.0"
+files = []
+develop = true
+
+[package.dependencies]
+anytree = "^2.8.0"
+click = "^8.1.3"
+prettytable = "^3.5.0"
+pyelftools = "^0.29.0"
+
+[package.source]
+type = "directory"
+url = "tools/memory"
+
+[[package]]
name = "myst-parser"
version = "0.18.1"
description = "An extended commonmark compliant parser, with bridges to docutils & sphinx."
@@ -1147,7 +1166,7 @@
[package.dependencies]
click = "^8.1.7"
-jinja2 = "^3.1.4"
+jinja2 = "^3.1.5"
pyyaml = "^6.0.1"
rich = "^10.14.0"
tox = "^4.18.0"
@@ -1312,4 +1331,4 @@
[metadata]
lock-version = "2.0"
python-versions = "^3.8"
-content-hash = "6a6d2fe9390a4d7d1ecf808d5f303f2dc1eeb44736827b706a858046f3eea1db"
+content-hash = "7574eee0a05db1d9631bb29288abfc806810906a66e087a5a32e6e3920eb4bba"
diff --git a/pyproject.toml b/pyproject.toml
index 62878b4..55f3f2a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -5,16 +5,11 @@
authors = ["Arm Ltd."]
license = "BSD-3-Clause"
readme = "readme.rst"
-packages = [
- { include = "memory", from = "tools/memory"}
-]
-
-[tool.poetry.scripts]
-memory = "memory.memmap:main"
[tool.poetry.dependencies]
python = "^3.8"
cot-dt2c = {path = "tools/cot_dt2c", develop = true}
+memory = {path = "tools/memory", develop = true}
tlc = {path = "tools/tlc", develop = true}
[tool.poetry.group.docs]
@@ -30,9 +25,3 @@
[tool.poetry.group.ci.dependencies]
click = "^8.1.3"
-
-[tool.poetry.group.memory.dependencies]
-pyelftools = "^0.29"
-anytree = "^2.8.0"
-click = "^8.1.3"
-prettytable = "^3.5.0"
diff --git a/tools/memory/__init__.py b/tools/memory/__init__.py
deleted file mode 100644
index 0b4c8d3..0000000
--- a/tools/memory/__init__.py
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/env python3
-
-#
-# Copyright (c) 2023, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
diff --git a/tools/memory/memory/__init__.py b/tools/memory/memory/__init__.py
deleted file mode 100644
index 0b4c8d3..0000000
--- a/tools/memory/memory/__init__.py
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/env python3
-
-#
-# Copyright (c) 2023, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
diff --git a/tools/memory/poetry.lock b/tools/memory/poetry.lock
new file mode 100644
index 0000000..2747479
--- /dev/null
+++ b/tools/memory/poetry.lock
@@ -0,0 +1,95 @@
+# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand.
+
+[[package]]
+name = "anytree"
+version = "2.12.1"
+description = "Powerful and Lightweight Python Tree Data Structure with various plugins"
+optional = false
+python-versions = ">=3.7.2,<4"
+files = [
+ {file = "anytree-2.12.1-py3-none-any.whl", hash = "sha256:5ea9e61caf96db1e5b3d0a914378d2cd83c269dfce1fb8242ce96589fa3382f0"},
+ {file = "anytree-2.12.1.tar.gz", hash = "sha256:244def434ccf31b668ed282954e5d315b4e066c4940b94aff4a7962d85947830"},
+]
+
+[package.dependencies]
+six = "*"
+
+[[package]]
+name = "click"
+version = "8.1.8"
+description = "Composable command line interface toolkit"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"},
+ {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"},
+]
+
+[package.dependencies]
+colorama = {version = "*", markers = "platform_system == \"Windows\""}
+
+[[package]]
+name = "colorama"
+version = "0.4.6"
+description = "Cross-platform colored terminal text."
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
+files = [
+ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
+ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
+]
+
+[[package]]
+name = "prettytable"
+version = "3.11.0"
+description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "prettytable-3.11.0-py3-none-any.whl", hash = "sha256:aa17083feb6c71da11a68b2c213b04675c4af4ce9c541762632ca3f2cb3546dd"},
+ {file = "prettytable-3.11.0.tar.gz", hash = "sha256:7e23ca1e68bbfd06ba8de98bf553bf3493264c96d5e8a615c0471025deeba722"},
+]
+
+[package.dependencies]
+wcwidth = "*"
+
+[package.extras]
+tests = ["pytest", "pytest-cov", "pytest-lazy-fixtures"]
+
+[[package]]
+name = "pyelftools"
+version = "0.29"
+description = "Library for analyzing ELF files and DWARF debugging information"
+optional = false
+python-versions = "*"
+files = [
+ {file = "pyelftools-0.29-py2.py3-none-any.whl", hash = "sha256:519f38cf412f073b2d7393aa4682b0190fa901f7c3fa0bff2b82d537690c7fc1"},
+ {file = "pyelftools-0.29.tar.gz", hash = "sha256:ec761596aafa16e282a31de188737e5485552469ac63b60cfcccf22263fd24ff"},
+]
+
+[[package]]
+name = "six"
+version = "1.17.0"
+description = "Python 2 and 3 compatibility utilities"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
+files = [
+ {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"},
+ {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"},
+]
+
+[[package]]
+name = "wcwidth"
+version = "0.2.13"
+description = "Measures the displayed width of unicode strings in a terminal"
+optional = false
+python-versions = "*"
+files = [
+ {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"},
+ {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"},
+]
+
+[metadata]
+lock-version = "2.0"
+python-versions = "^3.8.0"
+content-hash = "d7c185b3dbfc9bba145f12146e18ce501caf081d7762f138bc5a7fde99f40543"
diff --git a/tools/memory/pyproject.toml b/tools/memory/pyproject.toml
new file mode 100644
index 0000000..c2fdfcb
--- /dev/null
+++ b/tools/memory/pyproject.toml
@@ -0,0 +1,21 @@
+[tool.poetry]
+name = "memory"
+version = "0.1.0"
+description = "A tool for analysis of static memory consumption by TF-A images"
+authors = ["Chris Kay <chris.kay@arm.com>", "Harrison Mutai <harrison.mutai@arm.com>"]
+license = "BSD-3-Clause"
+packages = [{include = "memory", from = "src"}]
+
+[tool.poetry.dependencies]
+anytree = "^2.8.0"
+click = "^8.1.3"
+prettytable = "^3.5.0"
+pyelftools = "^0.29.0"
+python = "^3.8.0"
+
+[tool.poetry.scripts]
+memory = "memory.memmap:main"
+
+[build-system]
+requires = ["poetry-core"]
+build-backend = "poetry.core.masonry.api"
diff --git a/tools/memory/src/memory/__init__.py b/tools/memory/src/memory/__init__.py
new file mode 100644
index 0000000..8e0db6b
--- /dev/null
+++ b/tools/memory/src/memory/__init__.py
@@ -0,0 +1,5 @@
+#
+# Copyright (c) 2025, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
diff --git a/tools/memory/memory/buildparser.py b/tools/memory/src/memory/buildparser.py
similarity index 97%
rename from tools/memory/memory/buildparser.py
rename to tools/memory/src/memory/buildparser.py
index dedff79..ea417e1 100755
--- a/tools/memory/memory/buildparser.py
+++ b/tools/memory/src/memory/buildparser.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2023, Arm Limited. All rights reserved.
+# Copyright (c) 2023-2025, Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
diff --git a/tools/memory/memory/elfparser.py b/tools/memory/src/memory/elfparser.py
similarity index 98%
rename from tools/memory/memory/elfparser.py
rename to tools/memory/src/memory/elfparser.py
index 2dd2513..e6581c9 100644
--- a/tools/memory/memory/elfparser.py
+++ b/tools/memory/src/memory/elfparser.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2023, Arm Limited. All rights reserved.
+# Copyright (c) 2023-2025, Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
diff --git a/tools/memory/memory/mapparser.py b/tools/memory/src/memory/mapparser.py
similarity index 97%
rename from tools/memory/memory/mapparser.py
rename to tools/memory/src/memory/mapparser.py
index ce4cc31..1c28e71 100644
--- a/tools/memory/memory/mapparser.py
+++ b/tools/memory/src/memory/mapparser.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2023-2024, Arm Limited. All rights reserved.
+# Copyright (c) 2023-2025, Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
diff --git a/tools/memory/memory/memmap.py b/tools/memory/src/memory/memmap.py
similarity index 97%
rename from tools/memory/memory/memmap.py
rename to tools/memory/src/memory/memmap.py
index 34f5069..f46db8c 100755
--- a/tools/memory/memory/memmap.py
+++ b/tools/memory/src/memory/memmap.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python3
#
-# Copyright (c) 2023-2024, Arm Limited. All rights reserved.
+# Copyright (c) 2023-2025, Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
diff --git a/tools/memory/memory/printer.py b/tools/memory/src/memory/printer.py
similarity index 98%
rename from tools/memory/memory/printer.py
rename to tools/memory/src/memory/printer.py
index 4b18560..f797139 100755
--- a/tools/memory/memory/printer.py
+++ b/tools/memory/src/memory/printer.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2023, Arm Limited. All rights reserved.
+# Copyright (c) 2023-2025, Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#