feat(plat/arm): improve dram bank lookup

Next generation neoverse reference designs, such as RD-V3, can have
more than two non-contiguous DRAM banks. On such platforms, these
banks are spread across the system memory map.

This change modifies the common platform granule handlers to more
efficiently translate address-to-index and index-to-address on
platforms with a large number of DRAM banks. To support this arm
platforms have now have a common config option to select the
maximum number of DRAM banks - PLAT_ARM_MAX_DRAM_BANKS.

Change-Id: I6d5b02f8d3052d6b189f21ef48d1f684acb63b86
Signed-off-by: Harry Moulton <harry.moulton@arm.com>
Signed-off-by: Vivek Gautam <vivek.gautam@arm.com>
diff --git a/docs/getting_started/build-options.rst b/docs/getting_started/build-options.rst
index 4718195..42c798d 100644
--- a/docs/getting_started/build-options.rst
+++ b/docs/getting_started/build-options.rst
@@ -291,7 +291,8 @@
    RMM_CBMC_VIEWER_OUTPUT	,ON | OFF		,OFF			,"Generate report of CBMC results using the tool cbmc-viewer"
    RMM_CBMC_SINGLE_TESTBENCH	,			,OFF			,"Run CBMC on a single testbench instead on all of them"
    RMM_CCA_DA			,ON | OFF		,OFF			,"Enable Device Assignment support in RMM (experimental)"
-   ATTEST_PLAT_TOKEN_SIZE	,       		,0x1000			,"Maximum size in bytes expected for the Attestation platform token"
+   ATTEST_PLAT_TOKEN_SIZE	,			,0x1000			,"Maximum size in bytes expected for the Attestation platform token"
+   PLAT_ARM_MAX_DRAM_BANKS	,			,2			,"Maximum number of DRAM banks allowed in Arm platform layer"
 
 .. _llvm_build: