From bba63543865e3edf1fd739164ea46dd3059f2240 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Wed, 3 Dec 2014 17:47:55 -0800 Subject: [PATCH] Make timer test more thorough --- isa/rv64si/timer.S | 1055 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1043 insertions(+), 12 deletions(-) diff --git a/isa/rv64si/timer.S b/isa/rv64si/timer.S index 5f755e4..87399a6 100644 --- a/isa/rv64si/timer.S +++ b/isa/rv64si/timer.S @@ -12,18 +12,17 @@ RVTEST_RV64S RVTEST_CODE_BEGIN # clear pending IPIs then enable interrupts - li s9, 0 + li s8, 0 # number of taken timer interrupts + li s9, 10 # how many interrupts to run for la a0, handler csrw evec, a0 - csrw count, x0 - li a1, 5000 - csrw compare, a1 + csrw compare, 1 + csrw count, 0 li a0, SR_EI | (1 << (IRQ_TIMER + SR_IM_SHIFT)) csrs status, a0 # advance an LFSR 1000 times li s0, 1023 - li s1, 1023 li s4, 0 1:srl s2,s0,3 xor s2,s2,s0 @@ -34,14 +33,19 @@ RVTEST_CODE_BEGIN sll s0,s0,54 srl s0,s0,54 add s4, s4, 1 - bne s0,s1,1b + bltu s8, s9, 1b csrc status, SR_EI + # make sure the LFSR was computed correctly + li s1, 1023 + remu s4, s4, s1 + la s1, lfsr + sll s4, s4, 2 + add s1, s1, s4 + lw s1, (s1) li TESTNUM, 2 - beqz s9, fail # make sure we took at least one interrupt - li TESTNUM, 3 - bne s4, s1, fail # make sure the LFSR period was correct + bne s0, s1, fail RVTEST_PASS @@ -50,14 +54,1041 @@ RVTEST_CODE_BEGIN handler: csrr t0, cause li t1, 0x8000000000000007 + li TESTNUM, 3 bne t0, t1, fail - csrr t0, compare - addi t0, t0, 99 + csrr t0, count + addi t0, t0, 999 csrw compare, t0 - add s9, s9, 1 + add s8, s8, 1 sret +.data +lfsr: +.word 1023 +.word 511 +.word 255 +.word 127 +.word 63 +.word 31 +.word 15 +.word 7 +.word 515 +.word 769 +.word 896 +.word 448 +.word 224 +.word 112 +.word 56 +.word 540 +.word 782 +.word 903 +.word 963 +.word 993 +.word 1008 +.word 504 +.word 764 +.word 894 +.word 959 +.word 479 +.word 239 +.word 119 +.word 571 +.word 285 +.word 142 +.word 583 +.word 803 +.word 913 +.word 968 +.word 996 +.word 498 +.word 249 +.word 124 +.word 574 +.word 799 +.word 399 +.word 199 +.word 611 +.word 817 +.word 920 +.word 972 +.word 998 +.word 499 +.word 761 +.word 380 +.word 702 +.word 863 +.word 431 +.word 215 +.word 619 +.word 309 +.word 666 +.word 845 +.word 422 +.word 211 +.word 617 +.word 308 +.word 154 +.word 589 +.word 294 +.word 147 +.word 585 +.word 292 +.word 146 +.word 73 +.word 36 +.word 18 +.word 9 +.word 4 +.word 2 +.word 1 +.word 512 +.word 256 +.word 128 +.word 64 +.word 32 +.word 16 +.word 8 +.word 516 +.word 258 +.word 129 +.word 576 +.word 288 +.word 144 +.word 72 +.word 548 +.word 274 +.word 137 +.word 68 +.word 34 +.word 17 +.word 520 +.word 772 +.word 386 +.word 193 +.word 608 +.word 304 +.word 152 +.word 588 +.word 806 +.word 403 +.word 713 +.word 356 +.word 178 +.word 89 +.word 44 +.word 534 +.word 267 +.word 133 +.word 578 +.word 289 +.word 656 +.word 328 +.word 676 +.word 338 +.word 169 +.word 84 +.word 42 +.word 533 +.word 778 +.word 901 +.word 962 +.word 481 +.word 752 +.word 376 +.word 700 +.word 862 +.word 943 +.word 471 +.word 747 +.word 373 +.word 698 +.word 861 +.word 430 +.word 727 +.word 875 +.word 437 +.word 730 +.word 877 +.word 438 +.word 219 +.word 109 +.word 54 +.word 27 +.word 13 +.word 6 +.word 3 +.word 513 +.word 768 +.word 384 +.word 192 +.word 96 +.word 48 +.word 24 +.word 524 +.word 774 +.word 387 +.word 705 +.word 864 +.word 432 +.word 216 +.word 620 +.word 822 +.word 411 +.word 205 +.word 102 +.word 51 +.word 537 +.word 268 +.word 646 +.word 323 +.word 673 +.word 848 +.word 424 +.word 724 +.word 362 +.word 693 +.word 858 +.word 941 +.word 470 +.word 235 +.word 117 +.word 570 +.word 797 +.word 398 +.word 711 +.word 867 +.word 945 +.word 984 +.word 1004 +.word 1014 +.word 507 +.word 253 +.word 126 +.word 575 +.word 287 +.word 143 +.word 71 +.word 547 +.word 785 +.word 904 +.word 964 +.word 482 +.word 241 +.word 632 +.word 828 +.word 926 +.word 975 +.word 487 +.word 755 +.word 889 +.word 444 +.word 734 +.word 879 +.word 439 +.word 731 +.word 365 +.word 182 +.word 91 +.word 45 +.word 22 +.word 11 +.word 5 +.word 514 +.word 257 +.word 640 +.word 320 +.word 160 +.word 80 +.word 40 +.word 532 +.word 266 +.word 645 +.word 834 +.word 417 +.word 720 +.word 360 +.word 692 +.word 346 +.word 685 +.word 342 +.word 171 +.word 85 +.word 554 +.word 789 +.word 906 +.word 965 +.word 994 +.word 497 +.word 760 +.word 892 +.word 958 +.word 991 +.word 495 +.word 247 +.word 635 +.word 317 +.word 158 +.word 591 +.word 295 +.word 659 +.word 841 +.word 420 +.word 210 +.word 105 +.word 52 +.word 26 +.word 525 +.word 262 +.word 131 +.word 577 +.word 800 +.word 400 +.word 200 +.word 612 +.word 306 +.word 153 +.word 76 +.word 550 +.word 275 +.word 649 +.word 324 +.word 162 +.word 81 +.word 552 +.word 788 +.word 394 +.word 709 +.word 866 +.word 433 +.word 728 +.word 876 +.word 950 +.word 475 +.word 237 +.word 118 +.word 59 +.word 29 +.word 14 +.word 519 +.word 771 +.word 897 +.word 960 +.word 480 +.word 240 +.word 120 +.word 572 +.word 798 +.word 911 +.word 455 +.word 739 +.word 881 +.word 952 +.word 988 +.word 1006 +.word 1015 +.word 1019 +.word 509 +.word 254 +.word 639 +.word 319 +.word 159 +.word 79 +.word 39 +.word 531 +.word 777 +.word 388 +.word 194 +.word 97 +.word 560 +.word 280 +.word 652 +.word 838 +.word 419 +.word 721 +.word 872 +.word 948 +.word 474 +.word 749 +.word 374 +.word 187 +.word 93 +.word 46 +.word 535 +.word 779 +.word 389 +.word 706 +.word 353 +.word 688 +.word 344 +.word 684 +.word 854 +.word 427 +.word 213 +.word 618 +.word 821 +.word 922 +.word 973 +.word 486 +.word 243 +.word 633 +.word 316 +.word 670 +.word 847 +.word 423 +.word 723 +.word 873 +.word 436 +.word 218 +.word 621 +.word 310 +.word 155 +.word 77 +.word 38 +.word 19 +.word 521 +.word 260 +.word 130 +.word 65 +.word 544 +.word 272 +.word 136 +.word 580 +.word 290 +.word 145 +.word 584 +.word 804 +.word 402 +.word 201 +.word 100 +.word 50 +.word 25 +.word 12 +.word 518 +.word 259 +.word 641 +.word 832 +.word 416 +.word 208 +.word 104 +.word 564 +.word 282 +.word 653 +.word 326 +.word 163 +.word 593 +.word 808 +.word 916 +.word 458 +.word 741 +.word 882 +.word 441 +.word 220 +.word 622 +.word 823 +.word 923 +.word 461 +.word 230 +.word 115 +.word 569 +.word 284 +.word 654 +.word 839 +.word 931 +.word 977 +.word 1000 +.word 1012 +.word 506 +.word 765 +.word 382 +.word 703 +.word 351 +.word 175 +.word 87 +.word 555 +.word 277 +.word 650 +.word 837 +.word 930 +.word 465 +.word 744 +.word 884 +.word 442 +.word 733 +.word 366 +.word 695 +.word 859 +.word 429 +.word 214 +.word 107 +.word 53 +.word 538 +.word 781 +.word 390 +.word 195 +.word 609 +.word 816 +.word 408 +.word 716 +.word 870 +.word 435 +.word 729 +.word 364 +.word 694 +.word 347 +.word 173 +.word 86 +.word 43 +.word 21 +.word 522 +.word 773 +.word 898 +.word 449 +.word 736 +.word 368 +.word 184 +.word 604 +.word 814 +.word 919 +.word 971 +.word 485 +.word 754 +.word 377 +.word 188 +.word 606 +.word 815 +.word 407 +.word 715 +.word 357 +.word 690 +.word 345 +.word 172 +.word 598 +.word 299 +.word 149 +.word 586 +.word 805 +.word 914 +.word 457 +.word 228 +.word 114 +.word 57 +.word 28 +.word 526 +.word 775 +.word 899 +.word 961 +.word 992 +.word 496 +.word 248 +.word 636 +.word 830 +.word 927 +.word 463 +.word 231 +.word 627 +.word 825 +.word 412 +.word 718 +.word 871 +.word 947 +.word 985 +.word 492 +.word 758 +.word 379 +.word 189 +.word 94 +.word 559 +.word 279 +.word 651 +.word 325 +.word 674 +.word 337 +.word 680 +.word 852 +.word 426 +.word 725 +.word 874 +.word 949 +.word 986 +.word 1005 +.word 502 +.word 251 +.word 125 +.word 62 +.word 543 +.word 271 +.word 135 +.word 579 +.word 801 +.word 912 +.word 456 +.word 740 +.word 370 +.word 185 +.word 92 +.word 558 +.word 791 +.word 907 +.word 453 +.word 738 +.word 369 +.word 696 +.word 860 +.word 942 +.word 983 +.word 1003 +.word 501 +.word 762 +.word 893 +.word 446 +.word 735 +.word 367 +.word 183 +.word 603 +.word 301 +.word 150 +.word 75 +.word 37 +.word 530 +.word 265 +.word 132 +.word 66 +.word 33 +.word 528 +.word 264 +.word 644 +.word 322 +.word 161 +.word 592 +.word 296 +.word 660 +.word 330 +.word 677 +.word 850 +.word 425 +.word 212 +.word 106 +.word 565 +.word 794 +.word 909 +.word 454 +.word 227 +.word 625 +.word 824 +.word 924 +.word 974 +.word 999 +.word 1011 +.word 1017 +.word 508 +.word 766 +.word 895 +.word 447 +.word 223 +.word 111 +.word 55 +.word 539 +.word 269 +.word 134 +.word 67 +.word 545 +.word 784 +.word 392 +.word 708 +.word 354 +.word 177 +.word 600 +.word 812 +.word 918 +.word 459 +.word 229 +.word 626 +.word 313 +.word 156 +.word 590 +.word 807 +.word 915 +.word 969 +.word 484 +.word 242 +.word 121 +.word 60 +.word 542 +.word 783 +.word 391 +.word 707 +.word 865 +.word 944 +.word 472 +.word 748 +.word 886 +.word 443 +.word 221 +.word 110 +.word 567 +.word 795 +.word 397 +.word 198 +.word 99 +.word 561 +.word 792 +.word 908 +.word 966 +.word 483 +.word 753 +.word 888 +.word 956 +.word 990 +.word 1007 +.word 503 +.word 763 +.word 381 +.word 190 +.word 607 +.word 303 +.word 151 +.word 587 +.word 293 +.word 658 +.word 329 +.word 164 +.word 82 +.word 41 +.word 20 +.word 10 +.word 517 +.word 770 +.word 385 +.word 704 +.word 352 +.word 176 +.word 88 +.word 556 +.word 790 +.word 395 +.word 197 +.word 610 +.word 305 +.word 664 +.word 844 +.word 934 +.word 467 +.word 745 +.word 372 +.word 186 +.word 605 +.word 302 +.word 663 +.word 843 +.word 421 +.word 722 +.word 361 +.word 180 +.word 90 +.word 557 +.word 278 +.word 139 +.word 69 +.word 546 +.word 273 +.word 648 +.word 836 +.word 418 +.word 209 +.word 616 +.word 820 +.word 410 +.word 717 +.word 358 +.word 179 +.word 601 +.word 300 +.word 662 +.word 331 +.word 165 +.word 594 +.word 297 +.word 148 +.word 74 +.word 549 +.word 786 +.word 393 +.word 196 +.word 98 +.word 49 +.word 536 +.word 780 +.word 902 +.word 451 +.word 737 +.word 880 +.word 440 +.word 732 +.word 878 +.word 951 +.word 987 +.word 493 +.word 246 +.word 123 +.word 61 +.word 30 +.word 527 +.word 263 +.word 643 +.word 833 +.word 928 +.word 464 +.word 232 +.word 628 +.word 314 +.word 669 +.word 334 +.word 679 +.word 851 +.word 937 +.word 468 +.word 234 +.word 629 +.word 826 +.word 925 +.word 462 +.word 743 +.word 883 +.word 953 +.word 476 +.word 750 +.word 887 +.word 955 +.word 477 +.word 238 +.word 631 +.word 827 +.word 413 +.word 206 +.word 615 +.word 819 +.word 921 +.word 460 +.word 742 +.word 371 +.word 697 +.word 348 +.word 686 +.word 855 +.word 939 +.word 469 +.word 746 +.word 885 +.word 954 +.word 989 +.word 494 +.word 759 +.word 891 +.word 445 +.word 222 +.word 623 +.word 311 +.word 667 +.word 333 +.word 166 +.word 83 +.word 553 +.word 276 +.word 138 +.word 581 +.word 802 +.word 401 +.word 712 +.word 868 +.word 434 +.word 217 +.word 108 +.word 566 +.word 283 +.word 141 +.word 70 +.word 35 +.word 529 +.word 776 +.word 900 +.word 450 +.word 225 +.word 624 +.word 312 +.word 668 +.word 846 +.word 935 +.word 979 +.word 1001 +.word 500 +.word 250 +.word 637 +.word 318 +.word 671 +.word 335 +.word 167 +.word 595 +.word 809 +.word 404 +.word 202 +.word 613 +.word 818 +.word 409 +.word 204 +.word 614 +.word 307 +.word 665 +.word 332 +.word 678 +.word 339 +.word 681 +.word 340 +.word 170 +.word 597 +.word 810 +.word 917 +.word 970 +.word 997 +.word 1010 +.word 505 +.word 252 +.word 638 +.word 831 +.word 415 +.word 207 +.word 103 +.word 563 +.word 793 +.word 396 +.word 710 +.word 355 +.word 689 +.word 856 +.word 940 +.word 982 +.word 491 +.word 245 +.word 634 +.word 829 +.word 414 +.word 719 +.word 359 +.word 691 +.word 857 +.word 428 +.word 726 +.word 363 +.word 181 +.word 602 +.word 813 +.word 406 +.word 203 +.word 101 +.word 562 +.word 281 +.word 140 +.word 582 +.word 291 +.word 657 +.word 840 +.word 932 +.word 466 +.word 233 +.word 116 +.word 58 +.word 541 +.word 270 +.word 647 +.word 835 +.word 929 +.word 976 +.word 488 +.word 756 +.word 378 +.word 701 +.word 350 +.word 687 +.word 343 +.word 683 +.word 341 +.word 682 +.word 853 +.word 938 +.word 981 +.word 1002 +.word 1013 +.word 1018 +.word 1021 +.word 510 +.word 767 +.word 383 +.word 191 +.word 95 +.word 47 +.word 23 +.word 523 +.word 261 +.word 642 +.word 321 +.word 672 +.word 336 +.word 168 +.word 596 +.word 298 +.word 661 +.word 842 +.word 933 +.word 978 +.word 489 +.word 244 +.word 122 +.word 573 +.word 286 +.word 655 +.word 327 +.word 675 +.word 849 +.word 936 +.word 980 +.word 490 +.word 757 +.word 890 +.word 957 +.word 478 +.word 751 +.word 375 +.word 699 +.word 349 +.word 174 +.word 599 +.word 811 +.word 405 +.word 714 +.word 869 +.word 946 +.word 473 +.word 236 +.word 630 +.word 315 +.word 157 +.word 78 +.word 551 +.word 787 +.word 905 +.word 452 +.word 226 +.word 113 +.word 568 +.word 796 +.word 910 +.word 967 +.word 995 +.word 1009 +.word 1016 +.word 1020 +.word 1022 + RVTEST_CODE_END -- 2.30.2