
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@denx.de =====================================================================