Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Sep 2008 11:06:11 -0700
From:      Marcel Moolenaar <xcllnt@mac.com>
To:        grehan@freebsd.org
Cc:        freebsd-ppc@freebsd.org
Subject:   Re: 8.0-current 200809 snapshot CD boot problem
Message-ID:  <B085B9E6-4478-490F-997E-41DF483BAF49@mac.com>
In-Reply-To: <48DF26F2.1000209@freebsd.org>
References:  <b9c23c9f0809230355y26d463c4s5a60a22293daa05d@mail.gmail.com> <b9c23c9f0809230952n159c3179t90b6a542eaf94a4f@mail.gmail.com> <b9c23c9f0809231028j3d20b1bcgc8f4aaec15fe23d2@mail.gmail.com> <48DD91A4.2060306@freebsd.org> <b9c23c9f0809270348t7c4f1976y3134d2d5aa2ee15@mail.gmail.com> <263AF44F-FC15-4700-B93B-B0DE07A17B40@mac.com> <b9c23c9f0809271354j500d58f2o7c2a039a42d4caa5@mail.gmail.com> <11FEA924-DB76-46E1-BF79-A26206F796C0@mac.com> <48DF26F2.1000209@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On Sep 27, 2008, at 11:40 PM, Peter Grehan wrote:

> Hi Marcel,
>
>> o  I-cache coherency
>
> The culprit could be the code fragment in sys/boot/ofw/libofw/ 
> elf_freebsd.c:__elfN(ofw_loadfile),
>
>        if (!strcmp((*result)->f_type, "elf kernel"))
>                __syncicache((void *) (*result)->f_addr, (*result)- 
> >f_size);
>
> If f_addr isn't the start of the text segment i.e. if the initial  
> page wasn't included, then that is what is blowing up.

It looks like f_addr is the correct (virtual) load
address. I think the problem relates to whether the
starting address falls withing the first page, given
that:
o  We bcopy the first page to avoid reading twice,
o  We need to flush the D-cache before we can sync
    the I-cache.

We do dcbst before we icbi, but I'm wondering if
there isn't a bug there. What if we need to sync
after every dcbst?

-- 
Marcel Moolenaar
xcllnt@mac.com






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B085B9E6-4478-490F-997E-41DF483BAF49>