Some PXE NBPs are known to make PXE API calls with very little space available on the real-mode stack. For example, the Rembo-ia32 NBP from some versions of IBM's Tivoli Provisioning Manager for Operating System Deployment (TPMfOSD) will issue calls with the real-mode stack placed at 0000:03d2; this is at the end of the interrupt vector table and leaves only 498 bytes of stack space available before overwriting the hardware IRQ vectors. This limits the amount of state that we can preserve before transitioning to protected mode. Work around these challenging conditions by preserving everything other than the initial register dump in a temporary static buffer within our real-mode data segment, and copying the contents of this buffer to the protected-mode stack. Signed-off-by: Michael Brown <mcb30@ipxe.org>tags/v1.20.1
|
|
||
180 |
|
180 |
|
181 |
|
181 |
|
182 |
|
182 |
|
183 |
|
|
|
|
183 |
|
|
184 |
|
184 |
|
185 |
|
185 |
|
186 |
|
|
|
187 |
|
|
|
188 |
|
186 |
|
189 |
|
187 |
|
190 |
|
188 |
|
191 |
|
189 |
|
192 |
|
190 |
|
193 |
|
191 |
|
|
192 |
|
|
|
193 |
|
|
|
194 |
|
|
|
195 |
|
|
|
196 |
|
|
|
197 |
|
|
|
198 |
|
|
|
199 |
|
|
|
200 |
|
|
|
201 |
|
|
|
202 |
|
|
|
203 |
|
|
|
204 |
|
|
|
205 |
|
|
|
206 |
|
|
|
207 |
|
|
|
208 |
|
|
|
209 |
|
|
|
210 |
|
|
|
211 |
|
|
|
212 |
|
|
|
213 |
|
|
|
214 |
|
|
|
215 |
|
|
|
216 |
|
|
|
217 |
|
|
|
218 |
|
|
|
219 |
|
|
|
220 |
|
|
|
221 |
|
|
|
222 |
|
|
|
223 |
|
|
|
224 |
|
|
|
225 |
|
|
194 |
|
226 |
|
195 |
|
227 |
|
196 |
|
228 |
|
|
|
||
341 |
|
373 |
|
342 |
|
374 |
|
343 |
|
375 |
|
|
376 |
|
|
344 |
|
377 |
|
345 |
|
378 |
|
346 |
|
379 |
|
|
|
||
361 |
|
394 |
|
362 |
|
395 |
|
363 |
|
396 |
|
364 |
|
|
|
365 |
|
|
|
366 |
|
|
|
367 |
|
|
|
368 |
|
|
|
|
397 |
|
|
|
398 |
|
|
|
399 |
|
|
369 |
|
400 |
|
370 |
|
|
|
|
401 |
|
|
|
402 |
|
|
371 |
|
403 |
|
|
404 |
|
|
|
405 |
|
|
|
406 |
|
|
|
407 |
|
|
|
408 |
|
|
|
409 |
|
|
372 |
|
410 |
|
373 |
|
411 |
|
374 |
|
412 |
|
|
|
||
407 |
|
445 |
|
408 |
|
446 |
|
409 |
|
447 |
|
410 |
|
|
|
411 |
|
|
|
412 |
|
|
|
|
448 |
|
|
|
449 |
|
|
413 |
|
450 |
|
414 |
|
451 |
|
|
452 |
|
|
415 |
|
453 |
|
416 |
|
454 |
|
417 |
|
455 |
|
418 |
|
456 |
|
|
457 |
|
|
|
458 |
|
|
|
459 |
|
|
|
460 |
|
|
|
461 |
|
|
419 |
|
462 |
|
420 |
|
463 |
|
421 |
|
464 |
|
|
|
||
435 |
|
478 |
|
436 |
|
479 |
|
437 |
|
480 |
|
|
481 |
|
|
438 |
|
482 |
|
439 |
|
483 |
|
440 |
|
484 |
|
|
|
||
455 |
|
499 |
|
456 |
|
500 |
|
457 |
|
501 |
|
458 |
|
|
|
459 |
|
|
|
460 |
|
|
|
461 |
|
|
|
462 |
|
|
|
|
502 |
|
|
|
503 |
|
|
|
504 |
|
|
|
505 |
|
|
463 |
|
506 |
|
464 |
|
|
|
|
507 |
|
|
|
508 |
|
|
465 |
|
509 |
|
466 |
|
510 |
|
467 |
|
511 |
|
468 |
|
512 |
|
469 |
|
513 |
|
470 |
|
514 |
|
|
515 |
|
|
|
516 |
|
|
|
517 |
|
|
|
518 |
|
|
|
519 |
|
|
|
520 |
|
|
|
521 |
|
|
471 |
|
522 |
|
472 |
|
523 |
|
473 |
|
524 |
|
|
|
||
497 |
|
548 |
|
498 |
|
549 |
|
499 |
|
550 |
|
500 |
|
|
|
501 |
|
|
|
|
551 |
|
|
|
552 |
|
|
|
553 |
|
|
|
554 |
|
|
502 |
|
555 |
|
503 |
|
556 |
|
504 |
|
557 |
|
|
|
||
921 |
|
974 |
|
922 |
|
975 |
|
923 |
|
976 |
|
924 |
|
|
|
925 |
|
|
|
926 |
|
|
|
927 |
|
|
|
928 |
|
|
|
929 |
|
|
|
930 |
|
|
|
931 |
|
|
|
932 |
|
977 |
|
933 |
|
978 |
|
934 |
|
979 |
|
|
|
||
941 |
|
986 |
|
942 |
|
987 |
|
943 |
|
988 |
|
944 |
|
|
|
|
989 |
|
|
945 |
|
990 |
|
946 |
|
991 |
|
947 |
|
992 |
|
|
|
||
951 |
|
996 |
|
952 |
|
997 |
|
953 |
|
998 |
|
954 |
|
|
|
955 |
|
|
|
956 |
|
|
|
957 |
|
|
|
|
999 |
|
|
|
1000 |
|
|
|
1001 |
|
|
|
1002 |
|
|
|
1003 |
|
|
|
1004 |
|
|
|
1005 |
|
|
|
1006 |
|
|
958 |
|
1007 |
|
959 |
|
1008 |
|
960 |
|
1009 |
|
961 |
|
1010 |
|
962 |
|
|
|
963 |
|
|
|
|
1011 |
|
|
|
1012 |
|
|
964 |
|
1013 |
|
965 |
|
|
|
|
1014 |
|
|
966 |
|
1015 |
|
967 |
|
|
|
|
1016 |
|
|
968 |
|
1017 |
|
969 |
|
1018 |
|
970 |
|
1019 |
|
971 |
|
1020 |
|
972 |
|
1021 |
|
973 |
|
1022 |
|
|
1023 |
|
|
974 |
|
1024 |
|
975 |
|
1025 |
|
976 |
|
1026 |
|
977 |
|
1027 |
|
978 |
|
1028 |
|
979 |
|
1029 |
|
980 |
|
|
|
981 |
|
|
|
|
1030 |
|
|
982 |
|
1031 |
|
983 |
|
1032 |
|
984 |
|
1033 |
|
|
|
||
989 |
|
1038 |
|
990 |
|
1039 |
|
991 |
|
1040 |
|
992 |
|
|
|
993 |
|
|
|
994 |
|
|
|
|
1041 |
|
|
|
1042 |
|
|
995 |
|
1043 |
|
996 |
|
|
|
997 |
|
1044 |
|
998 |
|
1045 |
|
999 |
|
1046 |
|
|
|
||
1001 |
|
1048 |
|
1002 |
|
1049 |
|
1003 |
|
1050 |
|
1004 |
|
|
|
|
1051 |
|
|
|
1052 |
|
|
1005 |
|
1053 |
|
1006 |
|
1054 |
|
1007 |
|
1055 |
|
|
|
||
1009 |
|
1057 |
|
1010 |
|
1058 |
|
1011 |
|
1059 |
|
1012 |
|
|
|
|
1060 |
|
|
1013 |
|
1061 |
|
1014 |
|
|
|
|
1062 |
|
|
1015 |
|
1063 |
|
1016 |
|
|
|
1017 |
|
|
|
|
1064 |
|
|
|
1065 |
|
|
1018 |
|
1066 |
|
1019 |
|
1067 |
|
1020 |
|
1068 |
|
1021 |
|
1069 |
|
1022 |
|
|
|
|
1070 |
|
|
1023 |
|
1071 |
|
1024 |
|
1072 |
|
1025 |
|
1073 |
|
|
|
||
1067 |
|
1115 |
|
1068 |
|
1116 |
|
1069 |
|
1117 |
|
|
1118 |
|
|
1070 |
|
1119 |
|
1071 |
|
1120 |
|
1072 |
|
1121 |
|
|
|
||
1087 |
|
1136 |
|
1088 |
|
1137 |
|
1089 |
|
1138 |
|
|
1139 |
|
|
1090 |
|
1140 |
|
1091 |
|
|
|
1092 |
|
1141 |
|
1093 |
|
1142 |
|
1094 |
|
|
|
|
1143 |
|
|
|
1144 |
|
|
1095 |
|
1145 |
|
1096 |
|
1146 |
|
1097 |
|
1147 |
|
|
|
||
1099 |
|
1149 |
|
1100 |
|
1150 |
|
1101 |
|
1151 |
|
1102 |
|
|
|
1103 |
|
1152 |
|
1104 |
|
|
|
|
1153 |
|
|
1105 |
|
1154 |
|
1106 |
|
1155 |
|
1107 |
|
1156 |
|
|
|
||
1109 |
|
1158 |
|
1110 |
|
1159 |
|
1111 |
|
1160 |
|
|
1161 |
|
|
1112 |
|
1162 |
|
1113 |
|
1163 |
|
1114 |
|
1164 |
|
|
|
||
1126 |
|
1176 |
|
1127 |
|
1177 |
|
1128 |
|
1178 |
|
1129 |
|
|
|
1130 |
|
|
|
1131 |
|
|
|
1132 |
|
|
|
1133 |
|
|
|
1134 |
|
|
|
1135 |
|
1179 |
|
1136 |
|
1180 |
|
1137 |
|
1181 |
|