[PATCH] powerpc/85xx: use the BRx registers to enable indirect mode on the P1022DS

Kumar Gala galak at kernel.crashing.org
Sat Jul 7 04:09:54 EST 2012


On Jul 5, 2012, at 10:08 AM, Timur Tabi wrote:

> In order to enable the DIU video controller on the P1022DS, the FPGA needs
> to be switched to "indirect mode", where the localbus is disabled and
> the FPGA is accessed via writes to localbus chip select signals CS0 and CS1.
> 
> To obtain the address of CS0 and CS1, the platform driver uses an "indirect
> pixis mode" device tree node.  This node assumes that the localbus 'ranges'
> property is sorted in chip-select order.  That is, reg value 0 maps to
> CS0, reg value 1 maps to CS1, etc.  This is how the 'ranges' property is
> supposed to be arranged.
> 
> Unfortunately, the 'ranges' property is often mis-arranged, and not just on
> the P1022DS.  Linux normally does not care, since it does not program the
> localbus.  But the indirect-mode code on the P1022DS does care.
> 
> The "proper" fix is to have U-Boot fix the 'ranges' property, but this would
> be too cumbersome.  The names and 'reg' properties of all the localbus
> devices would also need to be updated, and determining which localbus device
> maps to which chip select is board-specific.
> 
> Instead, we determine the CS0/CS1 base addresses the same way that U-boot
> does -- by reading the BRx registers directly and mapping them to physical
> addresses.  This code is simpler and more reliable, and it does not require
> a U-boot or device tree change.
> 
> Since the indirect pixis device tree node is no longer needed, the node is
> deleted from the DTS.
> 
> Signed-off-by: Timur Tabi <timur at freescale.com>
> ---
> arch/powerpc/boot/dts/p1022ds.dtsi     |   16 -----
> arch/powerpc/platforms/85xx/p1022_ds.c |  106 ++++++++++++++++++++++++++++----
> 2 files changed, 93 insertions(+), 29 deletions(-)

applied to next

- k


More information about the Linuxppc-dev mailing list