2005-04-17 02:20:36 +04:00
/*
2008-12-21 11:26:15 +03:00
* Common code used by all Alchemy develboards .
2005-04-17 02:20:36 +04:00
*
2008-12-21 11:26:15 +03:00
* Extracted from files which had this to say :
2005-04-17 02:20:36 +04:00
*
2008-12-21 11:26:15 +03:00
* Copyright 2000 , 2008 MontaVista Software Inc .
2008-04-30 23:28:17 +04:00
* Author : MontaVista Software , Inc . < source @ mvista . com >
2005-04-17 02:20:36 +04:00
*
* This program is free software ; you can redistribute it and / or modify it
* 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 SOFTWARE IS PROVIDED ` ` AS IS ' ' AND ANY EXPRESS OR IMPLIED
* WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED . IN
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT , INDIRECT ,
* INCIDENTAL , SPECIAL , EXEMPLARY , OR CONSEQUENTIAL DAMAGES ( INCLUDING , BUT
* NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES ; LOSS OF
* USE , DATA , OR PROFITS ; OR BUSINESS INTERRUPTION ) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT
* ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
*
* 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 . ,
* 675 Mass Ave , Cambridge , MA 0213 9 , USA .
*/
2008-04-23 22:43:55 +04:00
2005-04-17 02:20:36 +04:00
# include <linux/init.h>
# include <linux/kernel.h>
2007-10-15 14:11:24 +04:00
# include <asm/bootinfo.h>
2008-12-21 11:26:15 +03:00
# include <asm/mach-au1x00/au1000.h>
2007-10-15 14:11:24 +04:00
# include <prom.h>
2005-04-17 02:20:36 +04:00
2008-12-21 11:26:15 +03:00
# if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_DB1000) || \
defined ( CONFIG_MIPS_PB1100 ) | | defined ( CONFIG_MIPS_DB1100 ) | | \
defined ( CONFIG_MIPS_PB1500 ) | | defined ( CONFIG_MIPS_DB1500 ) | | \
defined ( CONFIG_MIPS_BOSPORUS ) | | defined ( CONFIG_MIPS_MIRAGE )
# define ALCHEMY_BOARD_DEFAULT_MEMSIZE 0x04000000
# else /* Au1550/Au1200-based develboards */
# define ALCHEMY_BOARD_DEFAULT_MEMSIZE 0x08000000
# endif
2005-04-17 02:20:36 +04:00
void __init prom_init ( void )
{
unsigned char * memsize_str ;
unsigned long memsize ;
2008-04-30 23:28:17 +04:00
prom_argc = ( int ) fw_arg0 ;
prom_argv = ( char * * ) fw_arg1 ;
prom_envp = ( char * * ) fw_arg2 ;
2005-04-17 02:20:36 +04:00
prom_init_cmdline ( ) ;
memsize_str = prom_getenv ( " memsize " ) ;
2008-04-30 23:28:17 +04:00
if ( ! memsize_str )
2008-12-21 11:26:15 +03:00
memsize = ALCHEMY_BOARD_DEFAULT_MEMSIZE ;
2008-04-30 23:28:17 +04:00
else
2008-11-25 16:12:32 +03:00
strict_strtoul ( memsize_str , 0 , & memsize ) ;
2005-04-17 02:20:36 +04:00
add_memory_region ( 0 , memsize , BOOT_MEM_RAM ) ;
}