⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpc6xx_lo.s

📁 motorola 针对coldfire 5275 评估板的Dbug bootloader源程序
💻 S
📖 第 1 页 / 共 5 页
字号:
    #
    # File:     mpc6xx_lo.s
    #
    # Purpose:  Low level routines for all MPC6XX dBUG
    #
    # Notes:    This file assembles with both Diab and GNU assemblers
    #
    #
    # Modificiations:
    #
    #

######################################################################

    .equ    PVR_602,0x0002
    .equ    PVR_603,0x0003
    .equ    PVR_604,0x0004
    .equ    PVR_603E,0x0006
    .equ    PVR_603EV,0x0007
    .equ    PVR_750,0x0008
    .equ    PVR_604E,0x0009
    .equ    PVR_MACH5,0x000A
    .equ    PVR_620,0x0014

######################################################################

    # Globally accessible symbols
    .extern VECTOR_TABLE

    .global asm_startmeup           # Called by dBUG reset command
    .global asm_exception_body
    .global asm_isr_handler
    .global asm_switch_context
    .global asm_sc_exit_to_dbug

    .global cpu_iord_8
    .global cpu_iord_16
    .global cpu_iord_32
    .global cpu_iowr_8
    .global cpu_iowr_16
    .global cpu_iowr_32

    .global cpu_iord_16r                # byte reversed
    .global cpu_iord_32r
    .global cpu_iowr_16r
    .global cpu_iowr_32r

    .global cpu_cache_flush

    .global mpc6xx_wr_msr
    .global mpc6xx_rd_msr

    .global mpc6xx_wr_sr0
    .global mpc6xx_rd_sr0
    .global mpc6xx_wr_sr1
    .global mpc6xx_rd_sr1
    .global mpc6xx_wr_sr2
    .global mpc6xx_rd_sr2
    .global mpc6xx_wr_sr3
    .global mpc6xx_rd_sr3
    .global mpc6xx_wr_sr4
    .global mpc6xx_rd_sr4
    .global mpc6xx_wr_sr5
    .global mpc6xx_rd_sr5
    .global mpc6xx_wr_sr6
    .global mpc6xx_rd_sr6
    .global mpc6xx_wr_sr7
    .global mpc6xx_rd_sr7
    .global mpc6xx_wr_sr8
    .global mpc6xx_rd_sr8
    .global mpc6xx_wr_sr9
    .global mpc6xx_rd_sr9
    .global mpc6xx_wr_sr10
    .global mpc6xx_rd_sr10
    .global mpc6xx_wr_sr11
    .global mpc6xx_rd_sr11
    .global mpc6xx_wr_sr12
    .global mpc6xx_rd_sr12
    .global mpc6xx_wr_sr13
    .global mpc6xx_rd_sr13
    .global mpc6xx_wr_sr14
    .global mpc6xx_rd_sr14
    .global mpc6xx_wr_sr15
    .global mpc6xx_rd_sr15

    .global mpc6xx_wr_tbl
    .global mpc6xx_rd_tbl
    .global mpc6xx_wr_tbu
    .global mpc6xx_rd_tbu

    .global mpc6xx_rd_pvr

    .global mpc6xx_wr_ibat0u
    .global mpc6xx_rd_ibat0u
    .global mpc6xx_wr_ibat0l
    .global mpc6xx_rd_ibat0l
    .global mpc6xx_wr_ibat1u
    .global mpc6xx_rd_ibat1u
    .global mpc6xx_wr_ibat1l
    .global mpc6xx_rd_ibat1l
    .global mpc6xx_wr_ibat2u
    .global mpc6xx_rd_ibat2u
    .global mpc6xx_wr_ibat2l
    .global mpc6xx_rd_ibat2l
    .global mpc6xx_wr_ibat3u
    .global mpc6xx_rd_ibat3u
    .global mpc6xx_wr_ibat3l
    .global mpc6xx_rd_ibat3l

    .global mpc6xx_wr_dbat0u
    .global mpc6xx_rd_dbat0u
    .global mpc6xx_wr_dbat0l
    .global mpc6xx_rd_dbat0l
    .global mpc6xx_wr_dbat1u
    .global mpc6xx_rd_dbat1u
    .global mpc6xx_wr_dbat1l
    .global mpc6xx_rd_dbat1l
    .global mpc6xx_wr_dbat2u
    .global mpc6xx_rd_dbat2u
    .global mpc6xx_wr_dbat2l
    .global mpc6xx_rd_dbat2l
    .global mpc6xx_wr_dbat3u
    .global mpc6xx_rd_dbat3u
    .global mpc6xx_wr_dbat3l
    .global mpc6xx_rd_dbat3l

    .global mpc6xx_wr_sdr1
    .global mpc6xx_rd_sdr1

    .global mpc6xx_wr_dar
    .global mpc6xx_rd_dar

    .global mpc6xx_wr_dsisr
    .global mpc6xx_rd_dsisr

    .global mpc6xx_wr_dec
    .global mpc6xx_rd_dec

    .global mpc603_wr_hid0
    .global mpc603_rd_hid0
    .global mpc603_wr_dmiss
    .global mpc603_rd_dmiss
    .global mpc603_wr_dcmp
    .global mpc603_rd_dcmp
    .global mpc603_rd_hash1
    .global mpc603_rd_hash2
    .global mpc603_wr_imiss
    .global mpc603_rd_imiss
    .global mpc603_wr_icmp
    .global mpc603_rd_icmp
    .global mpc603_wr_rpa
    .global mpc603_rd_rpa
    .global mpc603_wr_iabr
    .global mpc603_rd_iabr
    .global mpc603_wr_ear
    .global mpc603_rd_ear

    .global mpc603e_wr_hid0
    .global mpc603e_rd_hid0
    .global mpc603e_wr_hid1
    .global mpc603e_rd_hid1
    .global mpc603e_wr_dmiss
    .global mpc603e_rd_dmiss
    .global mpc603e_wr_dcmp
    .global mpc603e_rd_dcmp
    .global mpc603e_rd_hash1
    .global mpc603e_rd_hash2
    .global mpc603e_wr_imiss
    .global mpc603e_rd_imiss
    .global mpc603e_wr_icmp
    .global mpc603e_rd_icmp
    .global mpc603e_wr_rpa
    .global mpc603e_rd_rpa
    .global mpc603e_wr_iabr
    .global mpc603e_rd_iabr
    .global mpc603e_wr_ear
    .global mpc603e_rd_ear

    .global mpc604_wr_hid0
    .global mpc604_rd_hid0
    .global mpc604_rd_pmc1
    .global mpc604_rd_pmc2
    .global mpc604_wr_mmcr0
    .global mpc604_rd_mmcr0
    .global mpc604_rd_sda
    .global mpc604_rd_sia
    .global mpc604_wr_iabr
    .global mpc604_rd_iabr
    .global mpc604_wr_dabr
    .global mpc604_rd_dabr
    .global mpc604_wr_ear
    .global mpc604_rd_ear
    .global mpc604_rd_pir

    .global mpc604e_wr_hid0
    .global mpc604e_rd_hid0
    .global mpc604e_rd_hid1
    .global mpc604e_rd_pmc1
    .global mpc604e_rd_pmc2
    .global mpc604e_wr_mmcr0
    .global mpc604e_rd_mmcr0
    .global mpc604e_rd_sda
    .global mpc604e_rd_sia
    .global mpc604e_wr_iabr
    .global mpc604e_rd_iabr
    .global mpc604e_wr_dabr
    .global mpc604e_rd_dabr
    .global mpc604e_wr_ear
    .global mpc604e_rd_ear
    .global mpc604e_rd_pir

    .global mpc750_rd_upmc1
    .global mpc750_rd_upmc2
    .global mpc750_rd_upmc3
    .global mpc750_rd_upmc4
    .global mpc750_rd_usia
    .global mpc750_rd_ummcr0
    .global mpc750_rd_ummcr1
    .global mpc750_wr_hid0
    .global mpc750_rd_hid0
    .global mpc750_rd_hid1
    .global mpc750_rd_pmc1
    .global mpc750_rd_pmc2
    .global mpc750_rd_pmc3
    .global mpc750_rd_pmc4
    .global mpc750_wr_mmcr0
    .global mpc750_rd_mmcr0
    .global mpc750_wr_mmcr1
    .global mpc750_rd_mmcr1
    .global mpc750_rd_sia
    .global mpc750_wr_thrm1
    .global mpc750_rd_thrm1
    .global mpc750_wr_thrm2
    .global mpc750_rd_thrm2
    .global mpc750_wr_thrm3
    .global mpc750_rd_thrm3
    .global mpc750_wr_ictc
    .global mpc750_rd_ictc
    .global mpc750_wr_l2cr
    .global mpc750_rd_l2cr
    .global mpc750_wr_iabr
    .global mpc750_rd_iabr
    .global mpc750_wr_dabr
    .global mpc750_rd_dabr
    .global mpc750_wr_ear
    .global mpc750_rd_ear


######################################################################
######################################################################
######################################################################

    .equ    sr0,0
    .equ    sr1,1
    .equ    sr2,2
    .equ    sr3,3
    .equ    sr4,4
    .equ    sr5,5
    .equ    sr6,6
    .equ    sr7,7
    .equ    sr8,8
    .equ    sr9,9
    .equ    sr10,10
    .equ    sr11,11
    .equ    sr12,12
    .equ    sr13,13
    .equ    sr14,14
    .equ    sr15,15

    #
    # Offsets of registers in the REGISTERS data structure.
    # NOTE:  Offsets must match compiler calculated offsets!
    #

    .equ    o_r0,000000
    .equ    o_r1,0x0004
    .equ    o_r2,0x0008
    .equ    o_r3,0x000c
    .equ    o_r4,0x0010
    .equ    o_r5,0x0014
    .equ    o_r6,0x0018
    .equ    o_r7,0x001c
    .equ    o_r8,0x0020
    .equ    o_r9,0x0024
    .equ    o_r10,0x0028
    .equ    o_r11,0x002c
    .equ    o_r12,0x0030
    .equ    o_r13,0x0034
    .equ    o_r14,0x0038
    .equ    o_r15,0x003c
    .equ    o_r16,0x0040
    .equ    o_r17,0x0044
    .equ    o_r18,0x0048
    .equ    o_r19,0x004c
    .equ    o_r20,0x0050
    .equ    o_r21,0x0054
    .equ    o_r22,0x0058
    .equ    o_r23,0x005c
    .equ    o_r24,0x0060
    .equ    o_r25,0x0064
    .equ    o_r26,0x0068
    .equ    o_r27,0x006c
    .equ    o_r28,0x0070
    .equ    o_r29,0x0074
    .equ    o_r30,0x0078
    .equ    o_r31,0x007c
    .equ    o_f0,0x0080
    .equ    o_f1,0x0088
    .equ    o_f2,0x0090
    .equ    o_f3,0x0098
    .equ    o_f4,0x00a0
    .equ    o_f5,0x00a8
    .equ    o_f6,0x00b0
    .equ    o_f7,0x00b8
    .equ    o_f8,0x00c0
    .equ    o_f9,0x00c8
    .equ    o_f10,0x00d0
    .equ    o_f11,0x00d8
    .equ    o_f12,0x00e0
    .equ    o_f13,0x00e8
    .equ    o_f14,0x00f0
    .equ    o_f15,0x00f8
    .equ    o_f16,0x0100
    .equ    o_f17,0x0108
    .equ    o_f18,0x0110
    .equ    o_f19,0x0118
    .equ    o_f20,0x0120
    .equ    o_f21,0x0128
    .equ    o_f22,0x0130
    .equ    o_f23,0x0138
    .equ    o_f24,0x0140
    .equ    o_f25,0x0148
    .equ    o_f26,0x0150
    .equ    o_f27,0x0158
    .equ    o_f28,0x0160
    .equ    o_f29,0x0168
    .equ    o_f30,0x0170
    .equ    o_f31,0x0178
    .equ    o_cr,0x0180
    .equ    o_fpscr,0x0184
    .equ    o_xer,0x0188
    .equ    o_lr,0x018c
    .equ    o_ctr,0x0190
    .equ    o_tbl,0x0194
    .equ    o_tbu,0x0198
    .equ    o_msr,0x019c
    .equ    o_pvr,0x01a0
    .equ    o_ibat0u,0x01a4
    .equ    o_ibat0l,0x01a8
    .equ    o_ibat1u,0x01ac
    .equ    o_ibat1l,0x01b0
    .equ    o_ibat2u,0x01b4
    .equ    o_ibat2l,0x01b8
    .equ    o_ibat3u,0x01bc
    .equ    o_ibat3l,0x01c0
    .equ    o_dbat0u,0x01c4
    .equ    o_dbat0l,0x01c8
    .equ    o_dbat1u,0x01cc
    .equ    o_dbat1l,0x01d0
    .equ    o_dbat2u,0x01d4
    .equ    o_dbat2l,0x01d8
    .equ    o_dbat3u,0x01dc
    .equ    o_dbat3l,0x01e0
    .equ    o_sr0,0x01e4
    .equ    o_sr1,0x01e8
    .equ    o_sr2,0x01ec
    .equ    o_sr3,0x01f0
    .equ    o_sr4,0x01f4
    .equ    o_sr5,0x01f8
    .equ    o_sr6,0x01fc
    .equ    o_sr7,0x0200
    .equ    o_sr8,0x0204
    .equ    o_sr9,0x0208
    .equ    o_sr10,0x020c
    .equ    o_sr11,0x0210
    .equ    o_sr12,0x0214
    .equ    o_sr13,0x0218
    .equ    o_sr14,0x021c
    .equ    o_sr15,0x0220
    .equ    o_sdr1,0x0224
    .equ    o_dar,0x0228
    .equ    o_dsisr,0x022c
    .equ    o_srr0,0x0230
    .equ    o_srr1,0x0234
    .equ    o_sprg0,0x0238
    .equ    o_sprg1,0x023c
    .equ    o_sprg2,0x0240
    .equ    o_sprg3,0x0244
    .equ    o_dec,0x0248
    .equ    o_603_hid0,0x024c
    .equ    o_603_dmiss,0x0250
    .equ    o_603_dcmp,0x0254
    .equ    o_603_hash1,0x0258
    .equ    o_603_hash2,0x025c
    .equ    o_603_imiss,0x0260
    .equ    o_603_icmp,0x0264
    .equ    o_603_rpa,0x0268
    .equ    o_603_iabr,0x026c
    .equ    o_603_ear,0x0270
    .equ    o_603e_hid0,0x024c
    .equ    o_603e_hid1,0x0250
    .equ    o_603e_dmiss,0x0254
    .equ    o_603e_dcmp,0x0258
    .equ    o_603e_hash1,0x025c
    .equ    o_603e_hash2,0x0260
    .equ    o_603e_imiss,0x0264
    .equ    o_603e_icmp,0x0268
    .equ    o_603e_rpa,0x026c
    .equ    o_603e_iabr,0x0270
    .equ    o_603e_ear,0x0274
    .equ    o_604_hid0,0x024c
    .equ    o_604_pmc1,0x0250
    .equ    o_604_pmc2,0x0254
    .equ    o_604_mmcr0,0x0258
    .equ    o_604_sda,0x025c
    .equ    o_604_sia,0x0260
    .equ    o_604_iabr,0x0264
    .equ    o_604_dabr,0x0268
    .equ    o_604_ear,0x026c
    .equ    o_604_pir,0x0270
    .equ    o_604e_hid0,0x024c
    .equ    o_604e_hid1,0x0250
    .equ    o_604e_pmc1,0x0254
    .equ    o_604e_pmc2,0x0258
    .equ    o_604e_pmc3,0x025c
    .equ    o_604e_pmc4,0x0260
    .equ    o_604e_mmcr0,0x0264
    .equ    o_604e_mmcr1,0x0268
    .equ    o_604e_sda,0x026c
    .equ    o_604e_sia,0x0270
    .equ    o_604e_iabr,0x0274
    .equ    o_604e_dabr,0x0278
    .equ    o_604e_ear,0x027c
    .equ    o_604e_pir,0x0280
    .equ    o_750_upmc1,0x024c
    .equ    o_750_upmc2,0x0250
    .equ    o_750_upmc3,0x0254
    .equ    o_750_upmc4,0x0258
    .equ    o_750_usia,0x025c
    .equ    o_750_ummcr0,0x0260
    .equ    o_750_ummcr1,0x0264
    .equ    o_750_hid0,0x0268
    .equ    o_750_hid1,0x026c
    .equ    o_750_pmc1,0x0270
    .equ    o_750_pmc2,0x0274
    .equ    o_750_pmc3,0x0278
    .equ    o_750_pmc4,0x027c
    .equ    o_750_mmcr0,0x0280
    .equ    o_750_mmcr1,0x0284
    .equ    o_750_sia,0x0288
    .equ    o_750_thrm1,0x028c
    .equ    o_750_thrm2,0x0290
    .equ    o_750_thrm3,0x0294
    .equ    o_750_ictc,0x0298
    .equ    o_750_l2cr,0x029c
    .equ    o_750_iabr,0x02a0
    .equ    o_750_dabr,0x02a4
    .equ    o_750_ear,0x02a8


    #
    # PowerPC Special Purpose Register numbers
    #

    .equ    spr_xer,1
    .equ    spr_lr,8
    .equ    spr_ctr,9
    .equ    spr_tbl,268
    .equ    spr_tbu,269
    .equ    spr_pvr,287
    .equ    spr_ibat0u,528
    .equ    spr_ibat0l,529
    .equ    spr_ibat1u,530
    .equ    spr_ibat1l,531
    .equ    spr_ibat2u,532
    .equ    spr_ibat2l,533
    .equ    spr_ibat3u,534
    .equ    spr_ibat3l,535
    .equ    spr_dbat0u,536
    .equ    spr_dbat0l,537
    .equ    spr_dbat1u,538
    .equ    spr_dbat1l,539
    .equ    spr_dbat2u,540
    .equ    spr_dbat2l,541
    .equ    spr_dbat3u,542
    .equ    spr_dbat3l,543
    .equ    spr_sdr1,25
    .equ    spr_dar,19
    .equ    spr_dsisr,18
    .equ    spr_srr0,26
    .equ    spr_srr1,27
    .equ    spr_sprg0,272
    .equ    spr_sprg1,273
    .equ    spr_sprg2,274
    .equ    spr_sprg3,275
    .equ    spr_dec,22
    .equ    spr_603_hid0,1008
    .equ    spr_603_dmiss,976
    .equ    spr_603_dcmp,977
    .equ    spr_603_hash1,978
    .equ    spr_603_hash2,979
    .equ    spr_603_imiss,980
    .equ    spr_603_icmp,981
    .equ    spr_603_rpa,982
    .equ    spr_603_iabr,1010
    .equ    spr_603_ear,282
    .equ    spr_603e_hid0,1008
    .equ    spr_603e_hid1,1009
    .equ    spr_603e_dmiss,976
    .equ    spr_603e_dcmp,977
    .equ    spr_603e_hash1,978
    .equ    spr_603e_hash2,979

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -