* [U-Boot] [PATCH v2] [x86] Add a basic implementation for a coreboot board
@ 2011-11-04 21:53 Gabe Black
2011-11-04 22:24 ` Mike Frysinger
2011-11-05 0:12 ` Wolfgang Denk
0 siblings, 2 replies; 6+ messages in thread
From: Gabe Black @ 2011-11-04 21:53 UTC (permalink / raw)
To: u-boot
From: Gabe Black <gabeblack@google.com>
Signed-off-by: Gabe Black <gabeblack@chromium.org>
---
Changes in v2:
Get rid of some dead/unnecessary code in the Makefile and coreboot.c.
board/chromebook-x86/coreboot/Makefile | 53 +++++++++++++++
board/chromebook-x86/coreboot/coreboot.c | 77 ++++++++++++++++++++++
board/chromebook-x86/coreboot/coreboot_pci.c | 30 +++++++++
board/chromebook-x86/coreboot/coreboot_start.S | 29 ++++++++
board/chromebook-x86/coreboot/coreboot_start16.S | 46 +++++++++++++
5 files changed, 235 insertions(+), 0 deletions(-)
create mode 100644 board/chromebook-x86/coreboot/Makefile
create mode 100644 board/chromebook-x86/coreboot/coreboot.c
create mode 100644 board/chromebook-x86/coreboot/coreboot_pci.c
create mode 100644 board/chromebook-x86/coreboot/coreboot_start.S
create mode 100644 board/chromebook-x86/coreboot/coreboot_start16.S
diff --git a/board/chromebook-x86/coreboot/Makefile b/board/chromebook-x86/coreboot/Makefile
new file mode 100644
index 0000000..dbeee50
--- /dev/null
+++ b/board/chromebook-x86/coreboot/Makefile
@@ -0,0 +1,53 @@
+#
+# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+# (C) Copyright 2008
+# Graeme Russ, graeme.russ at gmail.com.
+#
+# (C) Copyright 2006
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# (C) Copyright 2002
+# Daniel Engstr?m, Omicron Ceti AB, daniel at omicron.se.
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB = $(obj)lib$(BOARD).o
+
+COBJS-y += coreboot.o
+COBJS-$(CONFIG_PCI) += coreboot_pci.o
+SOBJS-y += coreboot_start16.o
+SOBJS-y += coreboot_start.o
+
+SRCS := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
+OBJS := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
+
+$(LIB): $(obj).depend $(OBJS) $(SOBJS)
+ $(call cmd_link_o_target, $(OBJS) $(SOBJS))
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/chromebook-x86/coreboot/coreboot.c b/board/chromebook-x86/coreboot/coreboot.c
new file mode 100644
index 0000000..88e4223
--- /dev/null
+++ b/board/chromebook-x86/coreboot/coreboot.c
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+ * (C) Copyright 2008
+ * Graeme Russ, graeme.russ at gmail.com.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <asm/u-boot-x86.h>
+#include <flash.h>
+#include <netdev.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+unsigned long monitor_flash_len = CONFIG_SYS_MONITOR_LEN;
+
+/*
+ * Miscellaneous platform dependent initializations
+ */
+int board_early_init_f(void)
+{
+ return 0;
+}
+
+int board_early_init_r(void)
+{
+ /* CPU Speed to 100MHz */
+ gd->cpu_clk = 100000000;
+
+ /* Crystal is 33.000MHz */
+ gd->bus_clk = 33000000;
+
+ return 0;
+}
+
+void show_boot_progress(int val)
+{
+}
+
+
+int last_stage_init(void)
+{
+ return 0;
+}
+
+#ifndef CONFIG_SYS_NO_FLASH
+ulong board_flash_get_legacy(ulong base, int banknum, flash_info_t *info)
+{
+ return 0;
+}
+#endif
+
+int board_eth_init(bd_t *bis)
+{
+ return pci_eth_init(bis);
+}
+
+void setup_pcat_compatibility()
+{
+}
diff --git a/board/chromebook-x86/coreboot/coreboot_pci.c b/board/chromebook-x86/coreboot/coreboot_pci.c
new file mode 100644
index 0000000..4ef7e5a
--- /dev/null
+++ b/board/chromebook-x86/coreboot/coreboot_pci.c
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+ * (C) Copyright 2008,2009
+ * Graeme Russ, <graeme.russ@gmail.com>
+ *
+ * (C) Copyright 2002
+ * Daniel Engstr?m, Omicron Ceti AB, <daniel@omicron.se>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+void pci_init_board(void)
+{
+}
diff --git a/board/chromebook-x86/coreboot/coreboot_start.S b/board/chromebook-x86/coreboot/coreboot_start.S
new file mode 100644
index 0000000..ef1e1d1
--- /dev/null
+++ b/board/chromebook-x86/coreboot/coreboot_start.S
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+ * (C) Copyright 2008
+ * Graeme Russ, graeme.russ at gmail.com.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/* board early intialization */
+.globl early_board_init
+early_board_init:
+ /* No 32-bit board specific initialisation */
+ jmp early_board_init_ret
diff --git a/board/chromebook-x86/coreboot/coreboot_start16.S b/board/chromebook-x86/coreboot/coreboot_start16.S
new file mode 100644
index 0000000..1bd6294
--- /dev/null
+++ b/board/chromebook-x86/coreboot/coreboot_start16.S
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+ * (C) Copyright 2008
+ * Graeme Russ, graeme.russ at gmail.com.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * 16bit initialization code.
+ * This code have to map the area of the boot flash
+ * that is used by U-boot to its final destination.
+ */
+
+.text
+.section .start16, "ax"
+.code16
+.globl board_init16
+board_init16:
+ jmp board_init16_ret
+
+.section .bios, "ax"
+.code16
+.globl realmode_reset
+.hidden realmode_reset
+.type realmode_reset, @function
+realmode_reset:
+
+1: hlt
+ jmp 1
--
1.7.3.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [U-Boot] [PATCH v2] [x86] Add a basic implementation for a coreboot board
2011-11-04 21:53 [U-Boot] [PATCH v2] [x86] Add a basic implementation for a coreboot board Gabe Black
@ 2011-11-04 22:24 ` Mike Frysinger
2011-11-04 22:33 ` Gabe Black
2011-11-05 0:12 ` Wolfgang Denk
1 sibling, 1 reply; 6+ messages in thread
From: Mike Frysinger @ 2011-11-04 22:24 UTC (permalink / raw)
To: u-boot
i'm not terribly familiar with what it takes to make an x86 board, but i don't
see anything jumping out of this patch.
i would note however that you should merge the boards.cfg update into this
patch. merging one or the other doesn't make much sense, and there's no
reason to keep them split.
> +void setup_pcat_compatibility()
should be "(void)"
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20111104/8327e21c/attachment.pgp
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH v2] [x86] Add a basic implementation for a coreboot board
2011-11-04 22:24 ` Mike Frysinger
@ 2011-11-04 22:33 ` Gabe Black
2011-11-04 22:39 ` Mike Frysinger
2011-11-05 1:59 ` Graeme Russ
0 siblings, 2 replies; 6+ messages in thread
From: Gabe Black @ 2011-11-04 22:33 UTC (permalink / raw)
To: u-boot
The early startup code is in arch/x86/cpu/start.S or start16.S depending on
the state of the CPU when u-boot is entered, and this code is called back
into at various points during startup. You can see that those callbacks
stubbed out where there's a label and then a jump back immediately after
it, for instance here:
+board_init16:
+ jmp board_init16_ret
I have no problem merging the commits, but I'll wait for Graeme to weigh in
since it's a little easier to merge them than to unmerge them.
Gabe
On Fri, Nov 4, 2011 at 3:24 PM, Mike Frysinger <vapier@gentoo.org> wrote:
> i'm not terribly familiar with what it takes to make an x86 board, but i
> don't
> see anything jumping out of this patch.
>
> i would note however that you should merge the boards.cfg update into this
> patch. merging one or the other doesn't make much sense, and there's no
> reason to keep them split.
>
> > +void setup_pcat_compatibility()
>
> should be "(void)"
> -mike
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH v2] [x86] Add a basic implementation for a coreboot board
2011-11-04 22:33 ` Gabe Black
@ 2011-11-04 22:39 ` Mike Frysinger
2011-11-05 1:59 ` Graeme Russ
1 sibling, 0 replies; 6+ messages in thread
From: Mike Frysinger @ 2011-11-04 22:39 UTC (permalink / raw)
To: u-boot
On Friday 04 November 2011 18:33:16 Gabe Black wrote:
> The early startup code is in arch/x86/cpu/start.S or start16.S depending on
> the state of the CPU when u-boot is entered, and this code is called back
> into at various points during startup. You can see that those callbacks
> stubbed out where there's a label and then a jump back immediately after
> it, for instance here:
when i said "jumping out", i meant "nothing jumps out at me as being wrong" ;)
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20111104/4c89d7ed/attachment.pgp
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH v2] [x86] Add a basic implementation for a coreboot board
2011-11-04 22:33 ` Gabe Black
2011-11-04 22:39 ` Mike Frysinger
@ 2011-11-05 1:59 ` Graeme Russ
1 sibling, 0 replies; 6+ messages in thread
From: Graeme Russ @ 2011-11-05 1:59 UTC (permalink / raw)
To: u-boot
Hi Gabe,
On 05/11/11 09:33, Gabe Black wrote:
> The early startup code is in arch/x86/cpu/start.S or start16.S depending on
> the state of the CPU when u-boot is entered, and this code is called back
> into at various points during startup. You can see that those callbacks
> stubbed out where there's a label and then a jump back immediately after
> it, for instance here:
>
> +board_init16:
> + jmp board_init16_ret
>
> I have no problem merging the commits, but I'll wait for Graeme to weigh in
> since it's a little easier to merge them than to unmerge them.
Well I guess that is my cue ;)
I agree that this should be a single commit. I have a few other comments...
I'm just about to send through another patchset (today) which will probably
impact on your patches - In particular I am adding more config granularity
to deal with the horrible mess that is board_init_r(). Now that the merge
window is closed, I will create a 'next' branch which you can work from.
Since coreboot is doing all the low level initialisation, I don't see the
need for any of the 16-bit start code (start_16.S). Let's look at
CONFIG_SKIP_LOWLEVEL_INIT. I don't know how to _not_ compile a source file
based on a define using the COBJS-$(CONFIG_<blah>) style.
Also, we may be performing a completely unnecessary relocation - I think we
should be able to start at board_init_r(), but there may be some
board_init_f() functions that we may still need to call. This seems a very
close parallel to IPL/SPL - Have a look at what they do
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH v2] [x86] Add a basic implementation for a coreboot board
2011-11-04 21:53 [U-Boot] [PATCH v2] [x86] Add a basic implementation for a coreboot board Gabe Black
2011-11-04 22:24 ` Mike Frysinger
@ 2011-11-05 0:12 ` Wolfgang Denk
1 sibling, 0 replies; 6+ messages in thread
From: Wolfgang Denk @ 2011-11-05 0:12 UTC (permalink / raw)
To: u-boot
Dear Gabe Black,
In message <1320443602-2677-1-git-send-email-gabeblack@chromium.org> you wrote:
> --===============1488196431==
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
>
> From: Gabe Black <gabeblack@google.com>
>
> Signed-off-by: Gabe Black <gabeblack@chromium.org>
> ---
> Changes in v2:
> Get rid of some dead/unnecessary code in the Makefile and coreboot.c.
v2 ?????
...
> +int board_early_init_f(void)
> +{
> + return 0;
> +}
Drop empty functions.
> + /* CPU Speed to 100MHz */
> + gd->cpu_clk = 100000000;
> +
> + /* Crystal is 33.000MHz */
> + gd->bus_clk = 33000000;
You should use #defines for these.
> +void show_boot_progress(int val)
> +{
> +}
> +
> +
> +int last_stage_init(void)
> +{
> + return 0;
> +}
> +
> +#ifndef CONFIG_SYS_NO_FLASH
> +ulong board_flash_get_legacy(ulong base, int banknum, flash_info_t *info)
> +{
> + return 0;
> +}
> +#endif
Drop empty functions.
> +void setup_pcat_compatibility()
> +{
> +}
Drop empty functions.
> +void pci_init_board(void)
> +{
> +}
Drop empty functions.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
They say, well, meybe it _is_ smelly, maybe it _is_ overcrowded, may-
be it _is_ a bit like Hell would be if they shut the fires off and
stabled a herd of incontinent cows there for a year, but you must
admit that it is full of sheer, vibrant, dynamic _life_.
- Terry Pratchett, _Moving Pictures_
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-11-05 1:59 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-04 21:53 [U-Boot] [PATCH v2] [x86] Add a basic implementation for a coreboot board Gabe Black
2011-11-04 22:24 ` Mike Frysinger
2011-11-04 22:33 ` Gabe Black
2011-11-04 22:39 ` Mike Frysinger
2011-11-05 1:59 ` Graeme Russ
2011-11-05 0:12 ` Wolfgang Denk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox