Configuration of SVE Vector Length on ARM N2 Processor

    I am currently working with an ARM N2 processor and encountering an issue regarding the configuration and modification of the Scalable Vector Extension (SVE) vector length in the operating system environment. I am seeking clarification on the following:

Background Information:

    We have read the following registers in the system, which indicate a configuration suggesting that the SVE vector length should be 2048 bits:

  • ZCR_EL3 = 0xf

  • ZCR_EL2 = 0xf

  • ZCR_EL1 = 0xf

  • HCR_EL2.{E2H, TGE} is {1, 1}

    This configuration appears to set the vector length to 2048 bits. However, when reading the vector length at EL0 in the OS environment, the reported length is still 128 bits, which seems inconsistent with the configuration provided by ZCR_EL2 (which should apply to EL0).

Questions:

  1. Is our chip limited to supporting only a 128-bit SVE vector length?

    Upon checking the system register values, we found that ZCR_EL3, ZCR_EL2, and ZCR_EL1 are all set to 0xf, indicating that the SVE vector length has been configured to 2048 bits. However, when reading the SVE vector length at EL0 (operating system environment), it consistently reports as 128 bits. We would like to confirm whether this behavior is due to hardware limitations of the chip, which might support only a 128-bit vector length.

  2. If the chip supports vector lengths greater than 128 bits, how should we configure or modify the SVE vector length in our system?