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>