2 * Old U-boot compatibility for 83xx
4 * Author: Scott Wood <scottwood@freescale.com>
6 * Copyright (c) 2007 Freescale Semiconductor, Inc.
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License version 2 as published
10 * by the Free Software Foundation.
21 extern char _dtb_start
[], _dtb_end
[];
23 static void platform_fixups(void)
27 dt_fixup_memory(bd
.bi_memstart
, bd
.bi_memsize
);
28 dt_fixup_mac_addresses(bd
.bi_enetaddr
, bd
.bi_enet1addr
);
29 dt_fixup_cpu_clocks(bd
.bi_intfreq
, bd
.bi_busfreq
/ 4, bd
.bi_busfreq
);
31 /* Unfortunately, the specific model number is encoded in the
32 * soc node name in existing dts files -- once that is fixed,
33 * this can do a simple path lookup.
35 soc
= find_node_by_devtype(NULL
, "soc");
39 setprop(soc
, "bus-frequency", &bd
.bi_busfreq
,
40 sizeof(bd
.bi_busfreq
));
42 while ((serial
= find_node_by_devtype(serial
, "serial"))) {
43 if (get_parent(serial
) != soc
)
46 setprop(serial
, "clock-frequency", &bd
.bi_busfreq
,
47 sizeof(bd
.bi_busfreq
));
52 void platform_init(unsigned long r3
, unsigned long r4
, unsigned long r5
,
53 unsigned long r6
, unsigned long r7
)
55 unsigned long end_of_ram
= bd
.bi_memstart
+ bd
.bi_memsize
;
56 unsigned long avail_ram
= end_of_ram
- (unsigned long)_end
;
58 memcpy(&bd
, (bd_t
*)r3
, sizeof(bd
));
59 loader_info
.initrd_addr
= r4
;
60 loader_info
.initrd_size
= r4
? r5
- r4
: 0;
61 loader_info
.cmdline
= (char *)r6
;
62 loader_info
.cmdline_len
= r7
- r6
;
64 simple_alloc_init(_end
, avail_ram
- 1024*1024, 32, 64);
65 ft_init(_dtb_start
, _dtb_end
- _dtb_start
, 32);
66 serial_console_init();
67 platform_ops
.fixups
= platform_fixups
;