Revision 2802bfe3

b/hw/mips_malta.c
548 548
    stl_raw(p++, 0x34c60000 | ((ENVP_ADDR + 8) & 0xffff));         /* ori a2, a2, low(ENVP_ADDR + 8) */
549 549
    stl_raw(p++, 0x3c070000 | (env->ram_size >> 16));              /* lui a3, high(env->ram_size) */
550 550
    stl_raw(p++, 0x34e70000 | (env->ram_size & 0xffff));           /* ori a3, a3, low(env->ram_size) */
551

  
552
    /* Load BAR registers as done by YAMON */
553
    stl_raw(p++, 0x3c09bbe0);                                      /* lui t1, 0xbbe0 */
554

  
555
#ifdef TARGET_WORDS_BIGENDIAN
556
    stl_raw(p++, 0x3c08c000);                                      /* lui t0, 0xc000 */
557
#else
558
    stl_raw(p++, 0x340800c0);                                      /* ori t0, r0, 0x00c0 */
559
#endif
560
    stl_raw(p++, 0xad280048);                                      /* sw t0, 0x0048(t1) */
561
#ifdef TARGET_WORDS_BIGENDIAN
562
    stl_raw(p++, 0x3c084000);                                      /* lui t0, 0x4000 */
563
#else
564
    stl_raw(p++, 0x34080040);                                      /* ori t0, r0, 0x0040 */
565
#endif
566
    stl_raw(p++, 0xad280050);                                      /* sw t0, 0x0050(t1) */
567

  
568
#ifdef TARGET_WORDS_BIGENDIAN
569
    stl_raw(p++, 0x3c088000);                                      /* lui t0, 0x8000 */
570
#else
571
    stl_raw(p++, 0x34080080);                                      /* ori t0, r0, 0x0080 */
572
#endif
573
    stl_raw(p++, 0xad280058);                                      /* sw t0, 0x0058(t1) */
574
#ifdef TARGET_WORDS_BIGENDIAN
575
    stl_raw(p++, 0x3c083f00);                                      /* lui t0, 0x3f00 */
576
#else
577
    stl_raw(p++, 0x3408003f);                                      /* ori t0, r0, 0x003f */
578
#endif
579
    stl_raw(p++, 0xad280060);                                      /* sw t0, 0x0060(t1) */
580

  
581
#ifdef TARGET_WORDS_BIGENDIAN
582
    stl_raw(p++, 0x3c08c100);                                      /* lui t0, 0xc100 */
583
#else
584
    stl_raw(p++, 0x340800c1);                                      /* ori t0, r0, 0x00c1 */
585
#endif
586
    stl_raw(p++, 0xad280080);                                      /* sw t0, 0x0080(t1) */
587
#ifdef TARGET_WORDS_BIGENDIAN
588
    stl_raw(p++, 0x3c085e00);                                      /* lui t0, 0x5e00 */
589
#else
590
    stl_raw(p++, 0x3408005e);                                      /* ori t0, r0, 0x005e */
591
#endif
592
    stl_raw(p++, 0xad280088);                                      /* sw t0, 0x0088(t1) */
593

  
594
    /* Jump to kernel code */
551 595
    stl_raw(p++, 0x3c1f0000 | ((kernel_entry >> 16) & 0xffff));    /* lui ra, high(kernel_entry) */
552 596
    stl_raw(p++, 0x37ff0000 | (kernel_entry & 0xffff));            /* ori ra, ra, low(kernel_entry) */
553 597
    stl_raw(p++, 0x03e00008);                                      /* jr ra */

Also available in: Unified diff