Reading CP15 from GDB, switching off MMU

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Hi Mike,

    The MMU can be enabled / disabled by bit 0 of the CP15 control
    register (which is addressed with: CRn=1, CRm=0, op1=0, op2=0).

    You can use the GDB Server to read out the current value
    of the control register and to write back a modified value.

    The sequence below shows how to disable and enable
    the MMU on an Atmel AT91SAM9260.

    We have configured the MMU to map SDRAM @ 0x40000000
    which was normally address of the NAND flash. As you can see,
    we disable the MMU and we read NAND flash (which was empty).
    If we enable the MMU again, we read SDRAM.

    (gdb) monitor long 0x40000000
    Reading from address 0x40000000 (Data = 0x2204480B)
    (gdb) monitor cp15 1 0 0 0
    Reading CP15 register (1,0,0,0 = 0x0005507D)
    (gdb) monitor cp15 1 0 0 0 = 0x5507c
    Writing CP15 register (1,0,0,0 = 0x0005507C)
    (gdb) monitor long 0x40000000
    Reading from address 0x40000000 (Data = 0xFFFFFFFF)
    (gdb) monitor cp15 1 0 0 0 = 0x5507d
    Writing CP15 register (1,0,0,0 = 0x0005507D)
    (gdb) monitor long 0x40000000
    Reading from address 0x40000000 (Data = 0x2204480B)


    Does this answer your questions ?

    Best regards,
    Tobias