Changeset 2e672fd in mainline for arch/sparc64/loader/boot.S


Ignore:
Timestamp:
2006-07-10T20:48:40Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
daab5145
Parents:
822b64e
Message:

Some 32-bit vs. 64-bit fixes.

Make the call to OpenFirmware client interface architecture dependent.
For instance and contrary to my previous experience, the sparc64 version of
'translate' method would not work reliably unless the Address Mask bit in the
PSTATE register is cleared during duration of the call.

sparc64 and ppc32 OpenFirmware seem to differ in details, for example, the above
mentioned method 'translate' signals success by setting the first return value
to -1 on sparc64 while on ppc32 the value is/stays (???) zero.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/sparc64/loader/boot.S

    r822b64e r2e672fd  
    2929#define INITIAL_STACK 0x0
    3030
     31#define PSTATE_IE_BIT   2
     32
    3133.register %g2, #scratch
    3234.register %g3, #scratch
     
    5355        flushw
    5456
     57        /*
     58         * Disable interrupts.
     59         */
     60        rdpr %pstate, %g2
     61        and %g2, ~PSTATE_IE_BIT, %g2    ! mask the Interrupt Enable bit
     62        wrpr %g2, 0, %pstate
     63
    5564        # TODO: set initial stack
    5665
    57         set ofw, %l0
     66        set ofw_cif, %l0
    5867 
    5968        call init               ! initialize OpenFirmware
Note: See TracChangeset for help on using the changeset viewer.