Date: Wed, 25 Mar 2009 15:06:49 +0100 From: Guillaume Ballet <gballet@gmail.com> To: freebsd-arm@freebsd.org Subject: locore.S question Message-ID: <fd183dc60903250706y26d8f7eeu1f608ace54c8b813@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hello list, I'm working on a FreeBSD port for the BeagleBoard. I'm starting the kernel with u-boot and wrote my own small loader for this purpose. That loader puts the kernel at 0x81000000 (physical address, since the MMU is disabled at this stage). In locore.S, however, there is the following piece of code that is executed before the MMU is disabled: 112 adr r7, Lunmapped 113 bic r7, r7, #0xff000000 114 orr r7, r7, #PHYSADDR (snip, disabling MMU) 129 mov pc, r7 Since PHYSADDR is set to 0x80000000 (physical start of RAM), then r7 is set to 0x80000000 + offset(Lunmapped) instead of 0x81000000 + offset(Lunmapped). Of course it crashes. Now, bypassing the problem is relatively easy, but still I was wondering why it is 0xff000000 instead of 0xf0000000 on line 113? Thanks, Guillaume
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?fd183dc60903250706y26d8f7eeu1f608ace54c8b813>