I understand cortex-m55 default address map suggests the following possible address range where possibly Code can be fetched from
0x00000000-0x1FFFFFFF Code All accesses are performed on the Instruction Tightly Coupled Memory (ITCM) or Master-AXI (M-AXI) interface.
That suggests the bootcode (starting from reset vector where VTOR points to) and other initial code must be either placed with in this address range Or in the ITCM?
It can be placed anywhere in the memory map. As stated, both vector tables and the code need to be in Normal Memory as the Peripheral region is expected to be eXecute Never(XN), please see section B8.1 "System address map" of the Armv8-M ARM, which shows the default memory map view, so essentially the following address ranges can be used from reset to point to the VTORS.
0x00000000 - 0x1FFFFFFF0x20000000 - 0x3FFFFFFF0x60000000 - 0x9FFFFFFF