ppc_4xx resubmit: netstal/common define routines used by all boards
PATCH 1/1 ppc_4xx resubmit: netstal/common define routines used by all boards
Added some routines used by all Netstal boards:
- nm_bsp.c: - nm_show_print and
- common_misc_init_r
- set_params_for_sw_install. Bery specific code to handle our SW installation procedure
- fixed_sdram.c: Common routines for HCU4 (and upcoming) MCU25 boards to handle sdram initialization.
- nm.h: Common header
--- board/netstal/common/fixed_sdram.c | 106 +++++++++++++++++++++++++++++ board/netstal/common/nm.h | 40 +++++++++++ board/netstal/common/nm_bsp.c | 128 +++++++++++++++++++++++++++++++----- 3 files changed, 258 insertions(+), 16 deletions(-) create mode 100644 board/netstal/common/fixed_sdram.c create mode 100644 board/netstal/common/nm.h
board/netstal/common/fixed_sdram.c new file +106 -0
@@ -0,0 +1,106 @@ +/* +*(C) Copyright 2005-2008 Netstal Maschinen AG +* Niklaus Giger (Niklaus.Giger at netstal.com) +* +* This source code is free software; you can redistribute it +* and/or modify it in source code form under the terms of the GNU +* General Public License as published by the Free Software +* Foundation; either version 2 of the License, or (at your option) +* any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA +*/ + +#include <common.h> +#include <ppc4xx.h> +#include <asm/processor.h> +#include "nm.h" + +#if defined(DEBUG ) +void show_sdram_registers (void ) +{ +u32 value; + +printf ("SDRAM Controller Registers --\n" ); +mfsdram (mem_mcopt1, value); +printf (" SDRAM0_CFG : 0x%08x\n" , value); +mfsdram (mem_status, value); +printf (" SDRAM0_STATUS: 0x%08x\n" , value); +mfsdram (mem_mb0cf, value); +printf (" SDRAM0_B0CR : 0x%08x\n" , value); +mfsdram (mem_mb1cf, value); +printf (" SDRAM0_B1CR : 0x%08x\n" , value); +mfsdram (mem_sdtr1, value); +printf (" SDRAM0_TR : 0x%08x\n" , value); +mfsdram (mem_rtr, value); +printf (" SDRAM0_RTR : 0x%08x\n" , value); +} +#endif + +long int fixed_hcu4_sdram (unsigned int dram_size) +{ +#ifdef DEBUG +printf (__FUNCTION__); +#endif +/* disable memory controller */ +mtsdram (mem_mcopt1,0x00000000 ); + +udelay (500 ); + +/* Clear SDRAM0_BESR0 (Bus Error Syndrome Register) */ +mtsdram (mem_besra,0xffffffff ); + +/* Clear SDRAM0_BESR1 (Bus Error Syndrome Register) */ +mtsdram (mem_besrb,0xffffffff ); + +/* Clear SDRAM0_ECCCFG (disable ECC) */ +mtsdram (mem_ecccf,0x00000000 ); + +/* Clear SDRAM0_ECCESR (ECC Error Syndrome Register) */ +mtsdram (mem_eccerr,0xffffffff ); + +/* Timing register: CASL=2, PTA=2, CTP=2, LDF=1, RFTA=5, RCD=2 +*/ +mtsdram (mem_sdtr1,0x008a4015 ); + +/* Memory Bank 0 Config == BA=0x00000000, SZ=64M, AM=3, BE=1 +* and refresh timer +*/ +switch (dram_size >>20 ) { +case 32 : +mtsdram (mem_mb0cf,0x00062001 ); +mtsdram (mem_rtr,0x07F00000 ); +break ; +case 64 : +mtsdram (mem_mb0cf,0x00084001 ); +mtsdram (mem_rtr,0x04100000 ); +break ; +case 128 : +mtsdram (mem_mb0cf,0x000A4001 ); +mtsdram (mem_rtr,0x04100000 ); +break ; +default : +printf ("Some error here...\n" ); + } + +/* Power management idle timer set to the default. */ +mtsdram (mem_pmit,0x07c00000 ); + +udelay (500 ); + +/* Enable banks (DCE=1, BPRF=1, ECCDD=1, EMDUL=1) TODO */ +mtsdram (mem_mcopt1,0x90800000 ); + +#ifdef DEBUG +printf ("%s: done\n" , __FUNCTION__); +#endif +return dram_size; +} +
board/netstal/common/nm.h new file +40 -0
@@ -0,0 +1,40 @@ +/* +*(C) Copyright 2005-2007 Netstal Maschinen AG +* Niklaus Giger (Niklaus.Giger at netstal.com) +* +* This source code is free software; you can redistribute it +* and/or modify it in source code form under the terms of the GNU +* General Public License as published by the Free Software +* Foundation; either version 2 of the License, or (at your option) +* any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA +*/ + +extern void hcu_led_set (u32 value); +extern u32 get_serial_number (void ); +extern u32 hcu_get_slot (void ); +extern int board_with_pci (void ); +extern void nm_show_print (int generation,int index,int hw_capabilities); +extern void set_params_for_sw_install (int install_requested,char *board_name ); +extern void common_misc_init_r (void ); + +enum { +/* HW_GENERATION_HCU1 is no longer supported */ +HW_GENERATION_HCU2 =0x10 , +HW_GENERATION_HCU3 =0x10 , +HW_GENERATION_HCU4 =0x20 , +HW_GENERATION_HCU5 =0x30 , +HW_GENERATION_MCU =0x08 , +HW_GENERATION_MCU20 =0x0a , +HW_GENERATION_MCU25 =0x09 , +}; + +
board/netstal/common/nm_bsp.c +112 -16
139 lines not on this page · raw message
Signature · 1 line
1.5.4.rc3
PATCH 1/1 ppc_4xx resubmit: netstal/common define routines used by all boards
Quoted 8 lines · Niklaus Giger
Added some routines used by all Netstal boards:
-nm_bsp.c: -nm_show_printand
-common_misc_init_r
-set_params_for_sw_install. Bery specific code to handle our SW installation procedure
-fixed_sdram.c: Common routines for HCU4 (and upcoming) MCU25 boards to handle sdram initialization.
-nm.h: Common header
Please see below.
Quoted 96 lines
Signed-off-by Niklaus Giger <[email protected]>--- board/netstal/common/fixed_sdram.c | 106 +++++++++++++++++++++++++++++ board/netstal/common/nm.h | 40 +++++++++++ board/netstal/common/nm_bsp.c | 128 +++++++++++++++++++++++++++++++----- 3 files changed, 258 insertions(+), 16 deletions(-) create mode 100644 board/netstal/common/fixed_sdram.c create mode 100644 board/netstal/common/nm.h(quoted diff) +0
-0
b/board/netstal/common/fixed_sdram.cnew file mode 100644 index 0000000..65b297fboard/netstal/common/fixed_sdram.c new file +18
-0@@ -0,0 +1,106 @@ +/* +*(C) Copyright 2005-2008 Netstal Maschinen AG +* Niklaus Giger (Niklaus.Giger at netstal.com) +* +* This source code is free software; you can redistribute it +* and/or modify it in source code form under the terms of the GNU +* General Public License as published by the Free Software +* Foundation; either version 2 of the License, or (at your option) +* any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */
board/netstal/common/fixed_sdram.c new file +61
-0+ +#include <common.h> +#include <ppc4xx.h> +#include <asm/processor.h> +#include "nm.h" + +#if defined(DEBUG ) +void show_sdram_registers (void ) +{ +u32 value; + +printf ("SDRAM Controller Registers --\n" ); +mfsdram (mem_mcopt1, value); +printf (" SDRAM0_CFG : 0x%08x\n" , value); +mfsdram (mem_status, value); +printf (" SDRAM0_STATUS: 0x%08x\n" , value); +mfsdram (mem_mb0cf, value); +printf (" SDRAM0_B0CR : 0x%08x\n" , value); +mfsdram (mem_mb1cf, value); +printf (" SDRAM0_B1CR : 0x%08x\n" , value); +mfsdram (mem_sdtr1, value); +printf (" SDRAM0_TR : 0x%08x\n" , value); +mfsdram (mem_rtr, value); +printf (" SDRAM0_RTR : 0x%08x\n" , value); +} +#endif + +long int fixed_hcu4_sdram (unsigned int dram_size) +{ +#ifdef DEBUG +printf (__FUNCTION__); +#endif +/* disable memory controller */ +mtsdram (mem_mcopt1,0x00000000 ); + +udelay (500 ); + +/* Clear SDRAM0_BESR0 (Bus Error Syndrome Register) */ +mtsdram (mem_besra,0xffffffff ); + +/* Clear SDRAM0_BESR1 (Bus Error Syndrome Register) */ +mtsdram (mem_besrb,0xffffffff ); + +/* Clear SDRAM0_ECCCFG (disable ECC) */ +mtsdram (mem_ecccf,0x00000000 ); + +/* Clear SDRAM0_ECCESR (ECC Error Syndrome Register) */ +mtsdram (mem_eccerr,0xffffffff ); + +/* Timing register: CASL=2, PTA=2, CTP=2, LDF=1, RFTA=5, RCD=2 +*/ +mtsdram (mem_sdtr1,0x008a4015 ); + +/* Memory Bank 0 Config == BA=0x00000000, SZ=64M, AM=3, BE=1 +* and refresh timer +*/ +switch (dram_size >>20 ) { +case 32 : +mtsdram (mem_mb0cf,0x00062001 ); +mtsdram (mem_rtr,0x07F00000 ); +break ;
board/netstal/common/fixed_sdram.c line 90
Quoted 10 lines
board/netstal/common/fixed_sdram.c new file +10
-0+case 64 : +mtsdram (mem_mb0cf,0x00084001 ); +mtsdram (mem_rtr,0x04100000 ); +break ; +case 128 : +mtsdram (mem_mb0cf,0x000A4001 ); +mtsdram (mem_rtr,0x04100000 ); +break ; +default : +printf ("Some error here...\n" );
Heh. This was just an example that you should fill with a reasonable error message. :)
Please fix and resubmit.
Thanks.
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
=====================================================================