// hypervisor timers, in that order.\r
//\r
InterruptProp = fdt_getprop (DeviceTreeBase, Node, "interrupts", &Len);\r
- ASSERT (Len == 48);\r
+ ASSERT (Len == 36 || Len == 48);\r
\r
SecIntrNum = fdt32_to_cpu (InterruptProp[0].Number)\r
+ (InterruptProp[0].Type ? 16 : 0);\r
+ (InterruptProp[1].Type ? 16 : 0);\r
VirtIntrNum = fdt32_to_cpu (InterruptProp[2].Number)\r
+ (InterruptProp[2].Type ? 16 : 0);\r
- HypIntrNum = fdt32_to_cpu (InterruptProp[3].Number)\r
- + (InterruptProp[3].Type ? 16 : 0);\r
+ HypIntrNum = Len < 48 ? 0 : fdt32_to_cpu (InterruptProp[3].Number)\r
+ + (InterruptProp[3].Type ? 16 : 0);\r
\r
DEBUG ((EFI_D_INFO, "Found Timer interrupts %d, %d, %d, %d\n",\r
SecIntrNum, IntrNum, VirtIntrNum, HypIntrNum));\r