All of lore.kernel.org
 help / color / mirror / Atom feed
From: Scott Wood <scottwood@freescale.com>
To: linuxppc-dev@ozlabs.org
Subject: [PATCH 17/17] bootwrapper: cuboot for 83xx
Date: Fri, 16 Mar 2007 12:29:14 -0500	[thread overview]
Message-ID: <20070316172914.GQ29784@ld0162-tx32.am.freescale.net> (raw)
In-Reply-To: <20070316172641.GA29709@ld0162-tx32.am.freescale.net>

This adds cuboot support for MPC83xx platforms.

A device tree used with this must have linux,stdout-path in /chosen and
linux,network-index in any network device nodes that need mac addresses
assigned.

Signed-off-by: Scott Wood <scottwood@freescale.com>
---
 arch/powerpc/boot/Makefile      |    3 +-
 arch/powerpc/boot/cuboot-83xx.c |   75 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 77 insertions(+), 1 deletions(-)
 create mode 100644 arch/powerpc/boot/cuboot-83xx.c

diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index a51fe08..0a01e70 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -43,7 +43,7 @@ $(addprefix $(obj)/,$(zlib) main.o): $(addprefix $(obj)/,$(zliblinuxheader)) \
 src-wlib := string.S crt0.S stdio.c main.c flatdevtree.c flatdevtree_misc.c \
 		ns16550.c serial.c simple_alloc.c div64.S util.S \
 		gunzip_util.c devtree.c $(zlib)
-cuboot-plats :=
+cuboot-plats := 83xx
 src-plat := of.c $(cuboot-plats:%=cuboot-%.c)
 src-boot := $(src-wlib) $(src-plat) empty.c
 
@@ -166,6 +166,7 @@ $(obj)/zImage.initrd.ps3: vmlinux
 $(obj)/uImage: vmlinux $(wrapperbits)
 	$(call cmd,wrap,uboot)
 
+cuboot-plat-$(CONFIG_83xx) += 83xx
 cuboot-plat-y += unknown-platform
 
 $(obj)/cuImage: vmlinux $(wrapperbits)
diff --git a/arch/powerpc/boot/cuboot-83xx.c b/arch/powerpc/boot/cuboot-83xx.c
new file mode 100644
index 0000000..b68d438
--- /dev/null
+++ b/arch/powerpc/boot/cuboot-83xx.c
@@ -0,0 +1,75 @@
+/*
+ * Old U-boot compatibility for 83xx
+ *
+ * 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"
+
+#define TARGET_83xx
+#include "ppcboot.h"
+
+static bd_t bd;
+static void *heap_end;
+extern char _end[];
+extern char _dtb_start[], _dtb_end[];
+
+static void *vmlinux_alloc(unsigned long size)
+{
+	unsigned long start = (unsigned long)heap_end;
+	unsigned long end_of_ram = bd.bi_memstart + bd.bi_memsize;
+	start = (start + 3) & ~3;
+
+	if (start + size > end_of_ram) {
+		printf("Can't allocate memory for kernel image!\n\r");
+		printf("%lu bytes requested, %lu bytes available\n\r",
+		       size, end_of_ram - start);
+		exit();
+	}
+
+	return (void *)start;
+}
+
+void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
+                   unsigned long r6, unsigned long r7)
+{
+	u8 *mac_addrs[2] = { bd.bi_enetaddr, bd.bi_enet1addr };
+	void *soc;
+
+	memcpy(&bd, (bd_t *)r3, sizeof(bd));
+	loader_info.initrd_addr = r4;
+	loader_info.initrd_size = r4 ? r5 : 0;
+
+	heap_end = simple_alloc_init(_end, 512 * 1024, 32, 64);
+	ft_init(_dtb_start, _dtb_end - _dtb_start, 32);
+	serial_console_init();
+	platform_ops.vmlinux_alloc = vmlinux_alloc;
+
+	dt_set_memory(bd.bi_memstart, bd.bi_memsize, 1);
+	set_cmdline((const char *)r6);
+	dt_set_mac_addresses(mac_addrs, 2);
+	dt_set_cpu_clocks(bd.bi_intfreq, bd.bi_busfreq, bd.bi_busfreq / 4);
+
+	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));
+		}
+	}
+}
-- 
1.5.0.3

      parent reply	other threads:[~2007-03-16 17:29 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-16 17:26 [PATCH 00/17] bootwrapper/cuImage patches Scott Wood
2007-03-16 17:27 ` [PATCH 01/17] bootwrapper: Make ft_create_node() pay attention to the parent parameter Scott Wood
2007-03-17  1:23   ` David Gibson
2007-03-16 17:27 ` [PATCH 02/17] bootwrapper: Add dt_ops methods Scott Wood
2007-03-17  1:24   ` David Gibson
2007-03-16 17:27 ` [PATCH 03/17] bootwrapper: Add xlate_reg(), and use it to find serial registers Scott Wood
2007-03-20  3:50   ` David Gibson
2007-03-20 16:34     ` Scott Wood
2007-03-21  3:12       ` David Gibson
2007-03-21 13:49     ` Segher Boessenkool
2007-03-21 16:01       ` Scott Wood
2007-03-21 19:11         ` Segher Boessenkool
2007-03-16 17:27 ` [PATCH 04/17] bootwrapper: Make compression of the kernel image optional Scott Wood
2007-03-17  1:25   ` David Gibson
2007-03-21 15:03   ` Patch: " Milton Miller
2007-03-16 17:28 ` [PATCH 05/17] bootwrapper: misc device tree fixes Scott Wood
2007-03-21  1:51   ` David Gibson
2007-03-22 16:22     ` Scott Wood
2007-03-23  3:26       ` David Gibson
2007-03-21 13:22   ` Segher Boessenkool
2007-03-16 17:28 ` [PATCH 06/17] Document the linux,network-index property Scott Wood
2007-03-17  1:26   ` David Gibson
2007-03-21 13:30   ` Segher Boessenkool
2007-03-21 14:48     ` Yoder Stuart-B08248
2007-03-21 18:57       ` Segher Boessenkool
2007-03-22  0:29         ` David Gibson
2007-03-22 11:11           ` Segher Boessenkool
2007-03-23  3:19             ` David Gibson
2007-03-23 11:36               ` Segher Boessenkool
2007-03-23 23:59                 ` David Gibson
2007-03-24  0:23                   ` Segher Boessenkool
2007-03-23 15:00         ` Scott Wood
2007-03-23 16:42           ` Segher Boessenkool
2007-03-16 17:28 ` [PATCH 07/17] bootwrapper: Add dt_set_memory(), to fill in the /memory node Scott Wood
2007-03-17  1:26   ` David Gibson
2007-03-21 13:32     ` Segher Boessenkool
2007-03-21 23:42       ` David Gibson
2007-03-22 11:02         ` Segher Boessenkool
2007-03-23  3:24           ` David Gibson
2007-03-23  6:49             ` Stefan Roese
2007-03-23  7:40               ` David Gibson
2007-03-23 12:34             ` Segher Boessenkool
2007-03-16 17:28 ` [PATCH 08/17] bootwrapper: Make setprop accept a const buffer Scott Wood
2007-03-17  1:27   ` David Gibson
2007-03-16 17:28 ` [PATCH 09/17] bootwrapper: Add dt_set_cpu_clocks() Scott Wood
2007-03-17  1:28   ` David Gibson
2007-03-16 17:28 ` [PATCH 10/17] bootwrapper: Add dt_set_mac_addresses() Scott Wood
2007-03-17  1:31   ` David Gibson
2007-03-18  0:22     ` Timur Tabi
2007-03-18 11:56       ` David Gibson
2007-03-19 15:09         ` Timur Tabi
2007-03-20  3:59           ` David Gibson
2007-03-20 14:00             ` Timur Tabi
2007-03-21  2:54               ` David Gibson
2007-03-21 15:01                 ` Timur Tabi
2007-03-21 15:25                   ` Jerry Van Baren
2007-03-21 15:55                     ` Timur Tabi
2007-03-22  0:06                   ` David Gibson
2007-03-22 15:13                     ` Timur Tabi
2007-03-22 15:15                     ` Jon Loeliger
2007-03-23  3:22                       ` David Gibson
2007-03-23 14:38                         ` Timur Tabi
2007-03-23 16:37                           ` Segher Boessenkool
2007-03-23 16:42                             ` Timur Tabi
2007-03-23 16:51                               ` Segher Boessenkool
2007-03-23 16:54                                 ` Timur Tabi
2007-03-23 23:17                             ` David Gibson
2007-03-20 18:17           ` Jon Loeliger
2007-03-21 13:45           ` Segher Boessenkool
2007-03-21 15:15             ` Timur Tabi
2007-03-21 19:07               ` Segher Boessenkool
2007-03-21 19:10                 ` Timur Tabi
2007-03-21 19:34                   ` Segher Boessenkool
2007-03-21 19:39                     ` Timur Tabi
2007-03-21 19:48                       ` Segher Boessenkool
2007-03-21 20:03                         ` Timur Tabi
2007-03-21 20:22                           ` Olof Johansson
2007-03-21 21:58                             ` Segher Boessenkool
2007-03-21 21:54                           ` Segher Boessenkool
2007-03-21 20:34                         ` Doug Maxey
2007-03-21 22:01                           ` Segher Boessenkool
2007-03-21 13:38         ` Segher Boessenkool
2007-03-21 15:09           ` Timur Tabi
2007-03-16 17:28 ` [PATCH 11/17] bootwrapper: Make set_cmdline non-static, and accept a const buffer Scott Wood
2007-03-17  1:36   ` David Gibson
2007-03-16 17:29 ` [PATCH 12/17] bootwrapper: Make set_cmdline() create /chosen if it doesn't exist Scott Wood
2007-03-21 13:32   ` Segher Boessenkool
2007-03-16 17:29 ` [PATCH 13/17] bootwrapper: Add ppcboot.h Scott Wood
2007-03-16 17:29 ` [PATCH 14/17] bootwrapper: Add support for cuboot platforms Scott Wood
2007-03-16 17:29 ` [PATCH 15/17] bootwrapper: Add cmd_wrap_dt Scott Wood
2007-03-16 17:29 ` [PATCH 16/17] bootwrapper: Add a cuImage target Scott Wood
2007-03-16 17:29 ` Scott Wood [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070316172914.GQ29784@ld0162-tx32.am.freescale.net \
    --to=scottwood@freescale.com \
    --cc=linuxppc-dev@ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.