#define VESTA
#include "ppc_40x.h"
#
        .align 2
        .text
#
# added by linguohui
        .extern   initb_ebiu0, initb_config, hdw_init_finish
        .extern   initb_hsmc0, initb_hsmc1, initb_cache
# end added
       .globl    HdwInit
#
HdwInit:
#
#-----------------------------------------------------------------------*
# If we are not executing from the FLASH get out                        *
#-----------------------------------------------------------------------*
# SAW keep this or comment out a la Hawthorne?
# r3 contains NIP when used with Linux
#        rlwinm r28, r3, 8, 24, 31    # if MSB == 0xFF -> FLASH address
#        cmpwi  r28, 0xff
#        bne    locn01
#
#
#------------------------------------------------------------------------
# Init_cpu. Bank registers are setup for the IBM STB.
#------------------------------------------------------------------------
#
# Setup processor core clock to be driven off chip.  This is GPI4 bit
# twenty.  Setup Open Drain, Output Select, Three-State Control,  and
# Three-State Select registers.
#


        pb0pesr  =        0x054
        pb0pear  =        0x056

	mflr	r30

#-----------------------------------------------------------------------------
# Vectors will be at 0x1F000000
# Dummy Machine check handler just does RFI before true handler gets installed
#-----------------------------------------------------------------------------
#ifdef SDRAM16MB
         lis     r10,0x0000
	addi 	r10,r10,0x0000
#else
        lis      r10,0x1F00
	addi	r10,r10,0x0000
#endif

        mtspr   evpr,r10              #EVPR: 0x0 or 0x1f000000 depending
        isync                         # on SDRAM memory model used.

        lis     r10,0xFFFF                # clear PB0_PESR because some
        ori    r10,r10,0xFFFF            #  transitions from flash,changed by linguohui
        mtdcr   pb0pesr,r10               #  to load RAM image via RiscWatch
        lis     r10,0x0000                #  cause PB0_PESR machine checks
        mtdcr   pb0pear,r10
        addis   r10,r10,0x0000            # clear the
        mtxer   r10                       #           XER just in case...

        bl      initb_ebiu0                      # init EBIU

        bl      initb_config                     # config PPC and board




#------------------------------------------------------------------------
# EVPR  setup moved to top of this function.
#------------------------------------------------------------------------
#
	mtlr	r30
	blr
        .end
