No arch specific invalidate_icache_all available!

Eddy Petrișor eddy.petrisor at gmail.com
Fri Mar 9 23:05:33 UTC 2018


2018-03-09 20:56 GMT+02:00 Steve Wills <swills at freebsd.org>:
> Hi,

Hi,

>
> Trying to boot r330240 on my Raspberry Pi B, I'm getting:
>
> Booting [/boot/kernel/kernel]...
> /boot/dtb/bcm2835-rpi-b-rev2.dtb size=0x3366
> Loaded DTB from file 'bcm2835-rpi-b-rev2.dtb'.
> Kernel entry at 0x1200100...
> No arch specific invalidate_icache_all available!
> Kernel args: (null)
>
> Then it goes back to U-Boot. Any ideas on what's wrong here?

Without claiming to know the FreeBSD code in any reasonable way, but
using my experiance with low level stuff, it seems the memory
management system expects a platform specific implementation of the"
invalidate all instruction caches" functionality.
Typically this is needed in situations where you might expect the
cached results you might have loaded are possibly out of sync relative
to the main memory contents.

In some cases, it is just a good defensive programming (e.g.
invalidating caches during the initalization sequence would be done
just to make sure there is no funny business going on and the code
from the main memory will be executed.

At this stage, during initilization, the invalidation might not be
necessary and the message in question could generated because there is
some  intial inventory of necessary serivices and APIs and thati
failed.


I expect someone with more intimate knowledge of this exact section of
the FreeBSD code could provide more info, because, frankly, you made
me curious.

-- 
Eddy Petrișor


More information about the freebsd-arm mailing list