Execution stops while enabling MMU

M. Warner Losh imp at bsdimp.com
Fri Jun 1 19:56:06 UTC 2007


In message: <62776.2001:6f8:101e:0:20e:cff:fe6d:6adb.1180696310.squirrel at webmail.alpha-tierchen.de>
            Björn_König <bkoenig at alpha-tierchen.de> writes:
: Hello,
: 
: I try to use FreeBSD with an AT91RM9200-based board similar to KB920X. I
: use an existing boot loader (U-Boot running at 0x00000000) to copy the raw
: binary kernel (not ELF) to the beginning of the SDRAM (0x20000000) and
: execute it with the "go" command. But suddenly the execution stops while
: enabling the MMU in src/sys/arm/arm/locore.S:
: 
:   /* Enable MMU */
:   mrc     p15, 0, r0, c1, c0, 0
:   orr     r0, r0, #CPU_CONTROL_MMU_ENABLE
:   mcr     p15, 0, r0, c1, c0, 0
: 
: Code behind these lines won't be executed anymore. Here are some variables
: that I use:
: 
: KERNPHYSADDR=0x20000000
: KERNVIRTADDR=0xc0000000
: PHYSADDR=0x20000000
: STARTUP_PAGETABLE_ADDR=0x20800000
: 
: Does anybody have a hint for me? My knowledge about ARM architecture is
: still superficially (literature already ordered ;-).

Maybe you need to run the trampoline code rather than the normal
code.  I only use kernel.gz.tramp, and that works fine.

Warner


More information about the freebsd-arm mailing list