龙芯开源社区

 找回密码
 注册新用户(newuser)
查看: 2069|回复: 1

PMON start.s里有两个地方不理解,有高手指点一下。

  [复制链接]
发表于 2011-8-20 14:37:59 | 显示全部楼层 |阅读模式
#define        TEST_PCICONF_READW(dev, func, reg) \
        li        a0, CFGADDR(dev, func, reg); \
        li        a1, PHYS_TO_UNCACHED(PCI_CFG_SPACE); \
        and        a2, a0, 0xffff; \   
        or        a1, a2; \
        srl        a0, 16; \
        li        a2, BONITO_BASE+BONITO_PCIMAP_CFG; \  //这一行有没有必要,或与下两行合并优化
        sw        a0, BONITO_PCIMAP_CFG(bonito); \
        lw        zero, BONITO_PCIMAP_CFG(bonito); \
        lw        a0, (a1);

        PRINTSTR("\r\njust before superio init...\r\n")
11:
       
        li        v0, 0xbfd00000;     //这三行是什么意思
        li        v1, 0x02000000;
        sw        v1, 0(v0);


        TEST_PCICONF_READW(14, 0, 0x00);
        move        v0, a0;
       
        li        a1, 0x208f1022;
        beq        a0, a1, 55f;
        nop;

        move        a0, v0;
        bal hexserial;
        nop;
        TTYDBG("\r\n");
       
        li v1, 0x10000
100:
        bnez    v1,100b
        addiu   v1, -1


        b        11b;
        nop;

本版积分规则

Archiver|手机版|小黑屋|Lemote Inc.

GMT+8, 2020-10-22 15:33 , Processed in 0.158912 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表