1*d2912cb1SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only
211c146ccSScott Wood /*
311c146ccSScott Wood * Embedded Planet EP88xC with PlanetCore firmware
411c146ccSScott Wood *
511c146ccSScott Wood * Author: Scott Wood <scottwood@freescale.com>
611c146ccSScott Wood *
711c146ccSScott Wood * Copyright (c) 2007 Freescale Semiconductor, Inc.
811c146ccSScott Wood */
911c146ccSScott Wood
1011c146ccSScott Wood #include "ops.h"
1111c146ccSScott Wood #include "stdio.h"
1211c146ccSScott Wood #include "planetcore.h"
1311c146ccSScott Wood #include "mpc8xx.h"
1411c146ccSScott Wood
1511c146ccSScott Wood static char *table;
1611c146ccSScott Wood static u64 mem_size;
1711c146ccSScott Wood
platform_fixups(void)1811c146ccSScott Wood static void platform_fixups(void)
1911c146ccSScott Wood {
2011c146ccSScott Wood u64 val;
2111c146ccSScott Wood
2211c146ccSScott Wood dt_fixup_memory(0, mem_size);
2311c146ccSScott Wood planetcore_set_mac_addrs(table);
2411c146ccSScott Wood
2511c146ccSScott Wood if (!planetcore_get_decimal(table, PLANETCORE_KEY_CRYSTAL_HZ, &val)) {
2611c146ccSScott Wood printf("No PlanetCore crystal frequency key.\r\n");
2711c146ccSScott Wood return;
2811c146ccSScott Wood }
2911c146ccSScott Wood
3011c146ccSScott Wood mpc885_fixup_clocks(val);
3111c146ccSScott Wood }
3211c146ccSScott Wood
platform_init(unsigned long r3,unsigned long r4,unsigned long r5,unsigned long r6,unsigned long r7)3311c146ccSScott Wood void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
3411c146ccSScott Wood unsigned long r6, unsigned long r7)
3511c146ccSScott Wood {
3611c146ccSScott Wood table = (char *)r3;
3711c146ccSScott Wood planetcore_prepare_table(table);
3811c146ccSScott Wood
3911c146ccSScott Wood if (!planetcore_get_decimal(table, PLANETCORE_KEY_MB_RAM, &mem_size))
4011c146ccSScott Wood return;
4111c146ccSScott Wood
4211c146ccSScott Wood mem_size *= 1024 * 1024;
4311c146ccSScott Wood simple_alloc_init(_end, mem_size - (unsigned long)_end, 32, 64);
4411c146ccSScott Wood
452f0dfeaaSDavid Gibson fdt_init(_dtb_start);
4611c146ccSScott Wood
4711c146ccSScott Wood planetcore_set_stdout_path(table);
4811c146ccSScott Wood
4911c146ccSScott Wood serial_console_init();
5011c146ccSScott Wood platform_ops.fixups = platform_fixups;
5111c146ccSScott Wood }
52