2007-04-17 03:25:55 +04:00
/*
* Old U - boot compatibility for 83 xx
*
* Author : Scott Wood < scottwood @ freescale . com >
*
* Copyright ( c ) 2007 Freescale Semiconductor , Inc .
*
* This program is free software ; you can redistribute it and / or modify it
* under the terms of the GNU General Public License version 2 as published
* by the Free Software Foundation .
*/
# include "ops.h"
# include "stdio.h"
2007-06-13 08:53:00 +04:00
# include "cuboot.h"
2007-04-17 03:25:55 +04:00
# define TARGET_83xx
# include "ppcboot.h"
static bd_t bd ;
static void platform_fixups ( void )
{
void * soc ;
dt_fixup_memory ( bd . bi_memstart , bd . bi_memsize ) ;
2008-01-15 18:33:56 +03:00
dt_fixup_mac_address_by_alias ( " ethernet0 " , bd . bi_enetaddr ) ;
dt_fixup_mac_address_by_alias ( " ethernet1 " , bd . bi_enet1addr ) ;
2007-04-17 03:25:55 +04:00
dt_fixup_cpu_clocks ( bd . bi_intfreq , bd . bi_busfreq / 4 , bd . bi_busfreq ) ;
/* Unfortunately, the specific model number is encoded in the
* soc node name in existing dts files - - once that is fixed ,
* this can do a simple path lookup .
*/
soc = find_node_by_devtype ( NULL , " soc " ) ;
if ( soc ) {
void * serial = NULL ;
setprop ( soc , " bus-frequency " , & bd . bi_busfreq ,
sizeof ( bd . bi_busfreq ) ) ;
while ( ( serial = find_node_by_devtype ( serial , " serial " ) ) ) {
if ( get_parent ( serial ) ! = soc )
continue ;
setprop ( serial , " clock-frequency " , & bd . bi_busfreq ,
sizeof ( bd . bi_busfreq ) ) ;
}
}
}
void platform_init ( unsigned long r3 , unsigned long r4 , unsigned long r5 ,
unsigned long r6 , unsigned long r7 )
{
2007-06-13 08:53:00 +04:00
CUBOOT_INIT ( ) ;
2007-12-10 06:28:39 +03:00
fdt_init ( _dtb_start ) ;
2007-04-17 03:25:55 +04:00
serial_console_init ( ) ;
platform_ops . fixups = platform_fixups ;
}