
2 Jul
2008
2 Jul
'08
4:48 p.m.
On Jul 2, 2008, at 9:25 AM, Andrew Klossner wrote:
The MPC8555E and MPC8548E reference manuals are quite specific about the formula required to change the value of CCSRBAR. This patch implements that formula.
Those manuals are not correct in their description of updating CCSRBAR.
The current code meets all the requirements excepting doing a load from some other address location.
So you really want:
temp = in_be32((volatile u32 *)CFG_CCSRBAR_DEFAULT); out_be32((volatile u32 *)CFG_CCSRBAR_DEFAULT, CFG_CCSRBAR_PHYS >> 12);
/* do a dummy load from somewhere else */ temp = in_be32((volatile u32 *)TEXT_BASE);
temp = in_be32((volatile u32 *)CFG_CCSRBAR);
The in_be32/out_be32 cover the sync requirements that are needed.
- k