Pulled from Xilinx's Linux source code. Also adds CONFIG entries to differentiate between the VIRTEX_4_FX and VIRTEX_II_PRO where appropriate.
Signed-off-by: Grant C. Likely <grant.likely at secretlab.ca> --- arch/ppc/boot/simple/head.S | 7 +++++++ arch/ppc/platforms/4xx/Kconfig | 12 +++++++++++- 2 files changed, 18 insertions(+), 1 deletions(-) 5fc2a191f262984434640c01599a439a7650b6e6 diff --git a/arch/ppc/boot/simple/head.S b/arch/ppc/boot/simple/head.S index 5e4adc2..119b9dc 100644 --- a/arch/ppc/boot/simple/head.S +++ b/arch/ppc/boot/simple/head.S @@ -65,6 +65,13 @@ start_: */ #endif +#if defined(CONFIG_XILINX_VIRTEX_4_FX) + /* PPC errata 213: only for Virtex-4 FX */ + mfccr0 0 + oris 0,0,0x50000000 at h + mtccr0 0 +#endif + mflr r3 /* Save our actual starting address. */ /* The following functions we call must not modify r3 or r4..... diff --git a/arch/ppc/platforms/4xx/Kconfig b/arch/ppc/platforms/4xx/Kconfig index 48def71..174ddbc 100644 --- a/arch/ppc/platforms/4xx/Kconfig +++ b/arch/ppc/platforms/4xx/Kconfig @@ -207,9 +207,19 @@ config 405GPR depends on SYCAMORE default y +config XILINX_VIRTEX_II_PRO + bool + depends on XILINX_ML300 + default y + +config XILINX_VIRTEX_4_FX + bool + depends on XILINX_ML403 + default y + config XILINX_VIRTEX bool - depends on XILINX_ML300 || XILINX_ML403 + depends on XILINX_VIRTEX_II_PRO || XILINX_VIRTEX_4_FX default y config STB03xxx -- 1.0.6-g58e3