diff options
Diffstat (limited to 'target/linux/mpc83xx/patches-2.6.36/003-boot_rb600.patch')
-rw-r--r-- | target/linux/mpc83xx/patches-2.6.36/003-boot_rb600.patch | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/target/linux/mpc83xx/patches-2.6.36/003-boot_rb600.patch b/target/linux/mpc83xx/patches-2.6.36/003-boot_rb600.patch deleted file mode 100644 index c199bdfd42..0000000000 --- a/target/linux/mpc83xx/patches-2.6.36/003-boot_rb600.patch +++ /dev/null @@ -1,83 +0,0 @@ ---- /dev/null -+++ b/arch/powerpc/boot/rb600.c -@@ -0,0 +1,80 @@ -+/* -+ * The RouterBOARD platform -- for booting RB600(A) RouterBOARDs. -+ * -+ * Author: Michael Guntsche <mike@it-loops.com> -+ * -+ * Copyright (c) 2009 Michael Guntsche -+ * -+ * 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 "types.h" -+#include "io.h" -+#include "stdio.h" -+#include <libfdt.h> -+ -+BSS_STACK(4*1024); -+ -+u64 memsize64; -+const void *fw_dtb; -+ -+static void rb600_fixups(void) -+{ -+ const u32 *reg, *timebase, *clock; -+ int node, size; -+ void *chosen; -+ const char* bootargs; -+ -+ dt_fixup_memory(0, memsize64); -+ -+ /* Set the MAC addresses. */ -+ node = fdt_path_offset(fw_dtb, "/soc8343@e0000000/ethernet@24000"); -+ reg = fdt_getprop(fw_dtb, node, "mac-address", &size); -+ dt_fixup_mac_address_by_alias("ethernet1", (const u8 *)reg); -+ -+ node = fdt_path_offset(fw_dtb, "/soc8343@e0000000/ethernet@25000"); -+ reg = fdt_getprop(fw_dtb, node, "mac-address", &size); -+ dt_fixup_mac_address_by_alias("ethernet0", (const u8 *)reg); -+ -+ /* Find the CPU timebase and clock frequencies. */ -+ node = fdt_node_offset_by_prop_value(fw_dtb, -1, "device_type", "cpu", sizeof("cpu")); -+ timebase = fdt_getprop(fw_dtb, node, "timebase-frequency", &size); -+ clock = fdt_getprop(fw_dtb, node, "clock-frequency", &size); -+ dt_fixup_cpu_clocks(*clock, *timebase, 0); -+ -+ /* Fixup chosen -+ * The bootloader reads the kernelparm segment and adds the content to -+ * bootargs. This is needed to specify root and other boot flags. -+ */ -+ chosen = finddevice("/chosen"); -+ node = fdt_path_offset(fw_dtb, "/chosen"); -+ bootargs = fdt_getprop(fw_dtb, node, "bootargs", &size); -+ setprop_str(chosen, "bootargs", bootargs); -+} -+ -+void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, -+ unsigned long r6, unsigned long r7) -+{ -+ const u32 *reg; -+ int node, size; -+ -+ fw_dtb = (const void *)r3; -+ -+ /* Find the memory range. */ -+ node = fdt_node_offset_by_prop_value(fw_dtb, -1, "device_type", "memory", sizeof("memory")); -+ reg = fdt_getprop(fw_dtb, node, "reg", &size); -+ memsize64 = reg[1]; -+ -+ /* Now we have the memory size; initialize the heap. */ -+ simple_alloc_init(_end, memsize64 - (unsigned long)_end, 32, 64); -+ -+ /* Prepare the device tree and find the console. */ -+ fdt_init(_dtb_start); -+ serial_console_init(); -+ -+ /* Remaining fixups... */ -+ platform_ops.fixups = rb600_fixups; -+} |