Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/src/sun4v/start.S

    r4872160 rf238e86  
    7575 *
    7676 * parameters:
    77  *  addr:           virtual address to be mapped
    78  *  rphysmem_start: register containing the starting address
    79  *                  of the physical memory
    80  *  rtmp1:          a register to be used as temporary
    81  *  rtmp2:          a register to be used as temporary
    82  *  rd:             register where the result will be saved
    83  *
     77 *      addr:                   virtual address to be mapped
     78 *      rphysmem_start:         register containing the starting address of the
     79 *                              physical memory
     80 *      rtmp1:                  a register to be used as temporary
     81 *      rtmp2:                  a register to be used as temporary
     82 *      rd:                     register where the result will be saved
    8483 */
    8584#define TTE_DATA(addr, rphysmem_start, rtmp1, rtmp2, rd) \
     
    9190/*
    9291 * Here is where the kernel is passed control from the boot loader.
    93  *
     92 * 
    9493 * The registers are expected to be in this state:
    95  *  - %o0 bootinfo structure address (BSP only)
    96  *  - %o1 starting address of physical memory
    97  *        + bootstrap processor flag
    98  *          bits 63...1: physical memory starting address / 2
    99  *          bit 0:       non-zero on BSP processor, zero on AP processors
     94 * - %o0 starting address of physical memory + bootstrap processor flag
     95 *      bits 63...1:    physical memory starting address / 2
     96 *      bit 0:          non-zero on BSP processor, zero on AP processors
     97 * - %o1 bootinfo structure address (BSP only)
     98 * - %o2 bootinfo structure size (BSP only)
    10099 *
    101100 * Moreover, we depend on boot having established the following environment:
    102  *  - TLBs are on
    103  *  - identity mapping for the kernel image
    104  *
     101 * - TLBs are on
     102 * - identity mapping for the kernel image
    105103 */
    106104.global kernel_image_start
    107105kernel_image_start:
    108106        mov BSP_FLAG, %l0
    109         and %o1, %l0, %l7                       ! l7 <= bootstrap processor?
    110         andn %o1, %l0, %l6                      ! l6 <= start of physical memory
    111         or %o0, %g0, %l0
     107        and %o0, %l0, %l7                       ! l7 <= bootstrap processor?
     108        andn %o0, %l0, %l6                      ! l6 <= start of physical memory
     109        or %o1, %g0, %l1
     110        or %o2, %g0, %l2
    112111
    113112        ! Get bits (PHYSMEM_ADDR_SIZE - 1):13 of physmem_base.
     
    246245        sub %sp, STACK_BIAS, %sp
    247246
    248         or %l0, %g0, %o0
     247        or %l1, %g0, %o1
     248        or %l2, %g0, %o2
     249        sethi %hi(bootinfo), %o0
     250        call memcpy                             ! copy bootinfo
     251        or %o0, %lo(bootinfo), %o0
     252
    249253        call arch_pre_main
    250254        nop
Note: See TracChangeset for help on using the changeset viewer.