[OSy] Problemy se zapisem do tlb

Tom� Martinec fyzmat at gmail.com
Tue Dec 2 11:32:41 CET 2008


Dobry den,

Resim uz chvili problem pri zapisu do tlb polozky. Naplnim registry HI
a LO prislusnymi hodnotami, nastavim index registr na prvni polozku
tlb a nasledne zapisu polozku instrukci tlbwi. Hned na to polozku ctu
instrukci tlbr a zjistuji, ze v tlb je jina hodnota nez jsem tam
zapsal.

Vytazek z trasovani:

    /* Zapis do HI */
    800021F0    mtc0  s1, entryhi       # cp0_entryhi: 0x000000ff->0x03bae000
    800021F4    andi  s0, s0, 0x0001    # s0: 0x800d0->0x0
    800021F8    bne   s0, 0, 0x1d       # 0x1d=29
    800021FC    addiu v1, 0, 0x1        # v1: 0x30->0x1
    80002200    sll   v0, s2, 0x06      # v0: 0xffffe000->0x2003400
    80002204    ori   v0, v0, 0x0007    # v0: 0x2003400->0x2003407
    80002208    nop

    /* Zapis do LO */
    8000220C    mtc0  v0, entrylo0      #
					# cp0_entrylo0: 0x00000001->0x02003407
    80002210    addiu v1, 0, 0x1
    80002214    nop
    80002218    mtc0  v1, entrylo1
    8000221C    addu  v0, 0, 0          # v0: 0x2003407->0x0
    80002220    nop

    /* Nastaveni indexu na polozku nula TLB tabulky*/
    80002224    mtc0  v0, index         # cp0_index: 0x0000002f->0x00000000

    /* Zapis do TLB*/
    80002228    tlbwi

    /* Precteni stejne polozky, hodnota je jina nez by mela byt*/
    8000222C    tlbr                    #
					# cp0_entrylo0: 0x02003407->0xfe003407

Podle manualu by meli byt dva nejvyssi bity navracene hodnoty dokonce nulove.
Vim, ze podobne veci jsou vetsinou zpusobene hloupostmi; chtel bych se
tedy chtel jenom zeptat, jestli netusite v cem
by mohl byt problem.

S pozdravem
Tomas Martinec




More information about the NSWI004 mailing list