[U-Boot] reinitialize peripherals
Stefan Roese
sr at denx.de
Wed Aug 27 06:51:42 CEST 2008
On Wednesday 27 August 2008, vb wrote:
> > Do I need to reinitialize Peripheral Bank Configuration Registers
> > (EBC0_B0CR-EBC0_B7CR) from the kernel ? I'm quite sure that we don't, but
> > just want to make sure. Because the problem that i'm seeing strongly
> > suggest that something isn't initializing.
> >
> > Here's the problem i'm getting a kernel "kernel access of bad
> > area" when i erase flash region, surprisingly i can easily erase it from
> > u-boot. which makes me ask the earlier question.
>
> The problem is that the kernel needs to ioremap the areas you are
> trying to access (this includes flash, BTW). How it gets the
> information about the address ranges is the tricky part: it comes from
> the device tree, (unless you are building your kernel from arch/ppc).
> There are a lot of examples in arch/powerpc/boot/dts.
>
> Also, keep in mind that on ppc460 (I am not sure if 440gx is the
> same, but it might be) the addresses of the peripherals driven by CSs
> have nonzero nibble in four MSBs of the 36 bit address, so phys_addr_t
> is 64 bits in size.
Yes. And the upper 4bits are usually non-zero for EBC space on 44x. The
address used in U-Boot is a virtual 32bit address where the lower 32bits
(when possible) match the lower 32bits of the 36bit physical address.
Best regards,
Stefan
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
=====================================================================
More information about the U-Boot
mailing list