Date: Mon, 5 May 2008 17:34:34 +0300 From: Alexandr Rybalko <ray@dlink.ua> To: "M. Warner Losh" <imp@bsdimp.com> Cc: tinguely@casselton.net, freebsd-arm@FreeBSD.org Subject: Re: FreeBSD on PXA255 board Message-ID: <20080505173434.dc4e1b36.ray@dlink.ua> In-Reply-To: <20080505.075228.1655384591.imp@bsdimp.com> References: <200804251650.m3PGotrp009557@casselton.net> <200804252019.m3PKJYXv025292@casselton.net> <20080505134045.0cf93a8d.ray@dlink.ua> <20080505.075228.1655384591.imp@bsdimp.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 05 May 2008 07:52:28 -0600 (MDT) "M. Warner Losh" <imp@bsdimp.com> wrote: >> In message: <20080505134045.0cf93a8d.ray@dlink.ua> >> Alexandr Rybalko <ray@dlink.ua> writes: >> : On Fri, 25 Apr 2008 15:19:34 -0500 (CDT) >> : Mark Tinguely <tinguely@casselton.net> wrote: >> : >> : >> >> : >> I was wrong, you are still initializing the UMA, the vm_page >> : >> structure happens next. >> : >> >> : >> the virtual address 0xbfecf000 would be the correct >> : >> ARM_USE_SMALL_ALLOC address for physical address 0xa3fcf000 with >> : >> 64MB of RAM. >> : >> >> : >> --Mark Tinguely. >> : >> >> : >> : Thanks for answers. >> : After viewing large part of sources, I found what 0xbfecf000 is a >> : correct virtual address for physical address 0xa3fcf000 with >> : ARM_USE_SMALL_ALLOC. >> : >> : But I don`t know why kernel freeze one time on bzero for physical >> : address 0xa3fcf000, second time on uma_startup(bfecf000, 00000030) >> : >> : No panic, no error messages, just freeze. >> >> Freezes early in boot are almost always the result of an exception >> being taken before the new exception handlers are copied down to the >> low addresses. For some reason, you are still faulting... >> Thanks Warner. I understand it, but I don`t know why it`s happen in two different locations, sometime in bzero, sometime in uma_startup. I`m try to change 0xd0000000 to 0xc4000000 in pmap_bootstrap (pmap_curmaxkvaddr, 0xc4000000, &kernel_l1pt) call, and replace bzero call to memset((char *)(mapped), 0, end - new_end) After it machine freeze in first iteration of loop: for (i = 0; i < boot_pages; i++) { slab = (uma_slab_t)((u_int8_t *)bootmem + (i * UMA_SLAB_SIZE)); slab->us_data = (u_int8_t *)slab; slab->us_flags = UMA_SLAB_BOOT; LIST_INSERT_HEAD(&uma_boot_pages, slab, us_link); } As result, I see we can do memset on this memory region, but we can`t do simple assignment to the data structures in this region. I`m don`t fully understand it, but maybe problem in not word aligned access to memory? >> Warner >> Thanks to all! WBW Alex RAY
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080505173434.dc4e1b36.ray>