Skip site navigation (1)Skip section navigation (2)
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>