Patrick Georgi (patrick(a)georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/212
-gerrit
commit 7dfe5496ff3d9acf8283a64bca1bc982f3ccd7ce
Author: Patrick Georgi <patrick.georgi(a)secunet.com>
Date: Fri Sep 2 09:57:01 2011 +0200
Provide mechanism to local additions to the build
site-local/ is an optional directory for local additions to the build.
If site-local/Makefile.inc exists it will be parsed and used.
Use it to define VGA option roms, splash screens, extra rules to the
tree...
Change-Id: I0c6ee43ffa40e6c3f193db081ab551ab75bc7478
Signed-off-by: Patrick Georgi <patrick.georgi(a)secunet.com>
---
Makefile.inc | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/Makefile.inc b/Makefile.inc
index 167ab5b..4c87bd2 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -45,6 +45,8 @@ subdirs-y += src/mainboard/$(MAINBOARDDIR)
subdirs-$(CONFIG_ARCH_X86) += src/pc80
+subdirs-y += site-local
+
#######################################################################
# Add source classes and their build options
classes-y := ramstage romstage driver smm
Patrick Georgi (patrick(a)georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/210
-gerrit
commit e62854c3fad7f47dee91a2119f46bece5a7f6cb4
Author: Mathias Krause <mathias.krause(a)secunet.com>
Date: Wed Mar 9 11:37:16 2011 +0100
superiotool: Don't compile with -Werror
Older libpci version have headers using 'long long' which isn't allowed
in ANSI C. Since we cannot control the libpci version installed in the
system nor in generall have complete control over system headers, simply
skip using -Werror in our makefile.
Change-Id: Ibc1e57bef033bf4971f4108d078222dcf168d5e3
Signed-off-by: Mathias Krause <mathias.krause(a)secunet.com>
---
util/superiotool/Makefile | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/util/superiotool/Makefile b/util/superiotool/Makefile
index 38a4127..6f3cfa3 100644
--- a/util/superiotool/Makefile
+++ b/util/superiotool/Makefile
@@ -29,7 +29,7 @@ PREFIX = /usr/local
SVNDEF := -D'SUPERIOTOOL_VERSION="$(shell svnversion -cn . \
| sed -e "s/.*://" -e "s/\([0-9]*\).*/\1/")"'
-CFLAGS += -O2 -Wall -Werror -Wstrict-prototypes -Wundef -Wstrict-aliasing \
+CFLAGS += -O2 -Wall -Wstrict-prototypes -Wundef -Wstrict-aliasing \
-Werror-implicit-function-declaration -ansi -pedantic $(SVNDEF)
LDFLAGS += -lz
Patrick Georgi (patrick(a)georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/209
-gerrit
commit c1c064a15d20f3591784ab91d80f8d7789cb3096
Author: Mathias Krause <mathias.krause(a)secunet.com>
Date: Wed Mar 9 11:30:55 2011 +0100
inteltool: Fixed building of position independent executables
When building a position independent executable (PIE) EBX is used
internally by the compiler to generate position independent address
references so it cannot be used in the clobber list. Use the already
existing code for the Darwin plattform for that case, too -- it'll
preserve the EBX value.
Change-Id: Ief6d4872b8cd990856a0e8227a88bb228782aced
Signed-off-by: Mathias Krause <mathias.krause(a)secunet.com>
---
util/inteltool/cpu.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/util/inteltool/cpu.c b/util/inteltool/cpu.c
index e79380a..9037d5d 100644
--- a/util/inteltool/cpu.c
+++ b/util/inteltool/cpu.c
@@ -32,7 +32,7 @@ unsigned int cpuid(unsigned int op)
{
uint32_t ret;
-#if defined(__DARWIN__) && !defined(__LP64__)
+#if defined(__PIC__) || defined(__DARWIN__) && !defined(__LP64__)
asm volatile (
"pushl %%ebx\n"
"cpuid\n"
QingPei Wang (wangqingpei(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/204
-gerrit
commit 5d309cb75821600495e77769b225b89476de8493
Author: QingPei Wang <wangqingpei(a)gmail.com>
Date: Tue Sep 13 13:35:43 2011 +0800
Add IT8721F support
only the serial port is tested, keyboard/mouse are gonna
to be tested later, it may also need some more patches
to make it work completely.
Change-Id: Ie9464d01c5d5760ebc800b3cd15a4ab2bad2e09f
Signed-off-by: QingPei Wang <wangqingpei(a)gmail.com>
---
src/superio/ite/Kconfig | 2 +
src/superio/ite/Makefile.inc | 1 +
src/superio/ite/it8721f/Makefile.inc | 22 ++++++++
src/superio/ite/it8721f/chip.h | 34 ++++++++++++
src/superio/ite/it8721f/early_serial.c | 93 ++++++++++++++++++++++++++++++++
src/superio/ite/it8721f/it8721f.h | 41 ++++++++++++++
src/superio/ite/it8721f/superio.c | 78 ++++++++++++++++++++++++++
7 files changed, 271 insertions(+), 0 deletions(-)
diff --git a/src/superio/ite/Kconfig b/src/superio/ite/Kconfig
index cb0c571..d045bf4 100644
--- a/src/superio/ite/Kconfig
+++ b/src/superio/ite/Kconfig
@@ -36,3 +36,5 @@ config SUPERIO_ITE_IT8716F_OVERRIDE_FANCTL
default n
config SUPERIO_ITE_IT8718F
bool
+config SUPERIO_ITE_IT8721F
+ bool
diff --git a/src/superio/ite/Makefile.inc b/src/superio/ite/Makefile.inc
index 21f7707..1e734fe 100644
--- a/src/superio/ite/Makefile.inc
+++ b/src/superio/ite/Makefile.inc
@@ -24,3 +24,4 @@ subdirs-y += it8705f
subdirs-y += it8712f
subdirs-y += it8716f
subdirs-y += it8718f
+subdirs-y += it8721f
diff --git a/src/superio/ite/it8721f/Makefile.inc b/src/superio/ite/it8721f/Makefile.inc
new file mode 100644
index 0000000..3908237
--- /dev/null
+++ b/src/superio/ite/it8721f/Makefile.inc
@@ -0,0 +1,22 @@
+##
+## This file is part of the coreboot project.
+##
+## Copyright (C) 2011 QingPei Wang <wangqingpei(a)gmail.com>
+##
+## 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+##
+
+ramstage-$(CONFIG_SUPERIO_ITE_IT8721F) += superio.c
+
diff --git a/src/superio/ite/it8721f/chip.h b/src/superio/ite/it8721f/chip.h
new file mode 100644
index 0000000..3717d19
--- /dev/null
+++ b/src/superio/ite/it8721f/chip.h
@@ -0,0 +1,34 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2011 QingPei Wang <wangqingpei(a)gmail.com>
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef SUPERIO_ITE_IT8721F_CHIP_H
+#define SUPERIO_ITE_IT8721F_CHIP_H
+
+#include <device/device.h>
+#include <pc80/keyboard.h>
+#include <uart8250.h>
+
+extern struct chip_operations superio_ite_it8721f_ops;
+
+struct superio_ite_it8721f_config {
+ struct pc_keyboard keyboard;
+};
+
+#endif
diff --git a/src/superio/ite/it8721f/early_serial.c b/src/superio/ite/it8721f/early_serial.c
new file mode 100644
index 0000000..cf17d0e
--- /dev/null
+++ b/src/superio/ite/it8721f/early_serial.c
@@ -0,0 +1,93 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2006 Uwe Hermann <uwe(a)hermann-uwe.de>
+ * Copyright (C) 2011 QingPei Wang <wangqingpei(a)gmail.com>
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <arch/romcc_io.h>
+#include "it8721f.h"
+
+/* The base address is 0x2e or 0x4e, depending on config bytes. */
+#define SIO_BASE 0x2e
+#define SIO_INDEX SIO_BASE
+#define SIO_DATA (SIO_BASE + 1)
+
+/* Global configuration registers. */
+#define IT8721F_CONFIG_REG_CC 0x02 /* Configure Control (write-only). */
+#define IT8721F_CONFIG_REG_LDN 0x07 /* Logical Device Number. */
+#define IT8721F_CONFIG_REG_CLOCKSEL 0x23 /* Clock Selection. */
+#define IT8721F_CONFIG_REG_SWSUSP 0x24 /* Software Suspend, Flash I/F. */
+
+static void it8721f_sio_write(u8 ldn, u8 index, u8 value)
+{
+ outb(IT8721F_CONFIG_REG_LDN, SIO_BASE);
+ outb(ldn, SIO_DATA);
+ outb(index, SIO_BASE);
+ outb(value, SIO_DATA);
+}
+
+static void it8721f_enter_conf(void)
+{
+ u16 port = 0x2e; /* TODO: Don't hardcode! */
+
+ outb(0x87, port);
+ outb(0x01, port);
+ outb(0x55, port);
+ outb((port == 0x4e) ? 0xaa : 0x55, port);
+}
+
+static void it8721f_exit_conf(void)
+{
+ it8721f_sio_write(0x00, IT8721F_CONFIG_REG_CC, 0x02);
+}
+
+/* Select 24MHz CLKIN (48MHz default). */
+void it8721f_24mhz_clkin(void)
+{
+ it8721f_enter_conf();
+ it8721f_sio_write(0x00, IT8721F_CONFIG_REG_CLOCKSEL, 0x1);
+ it8721f_exit_conf();
+}
+
+
+/* Enable the serial port(s). */
+void it8721f_enable_serial(device_t dev, u16 iobase)
+{
+ /* (1) Enter the configuration state (MB PnP mode). */
+ it8721f_enter_conf();
+
+ /* (2) Modify the data of configuration registers. */
+
+ /*
+ * Select the chip to configure (if there's more than one).
+ * Set bit 7 to select JP3=1, clear bit 7 to select JP3=0.
+ * If this register is not written, both chips are configured.
+ */
+
+ /* it8718f_sio_write(0x00, IT8718F_CONFIG_REG_CONFIGSEL, 0x00); */
+
+ /* Enable serial port(s). */
+ it8721f_sio_write(IT8721F_SP1, 0x30, 0x1); /* Serial port 1 */
+ it8721f_sio_write(IT8721F_SP2, 0x30, 0x1); /* Serial port 2 */
+
+ /* Clear software suspend mode (clear bit 0). TODO: Needed? */
+ /* it8718f_sio_write(0x00, IT8718F_CONFIG_REG_SWSUSP, 0x00); */
+
+ /* (3) Exit the configuration state (MB PnP mode). */
+ it8721f_exit_conf();
+}
diff --git a/src/superio/ite/it8721f/it8721f.h b/src/superio/ite/it8721f/it8721f.h
new file mode 100644
index 0000000..2242a2e
--- /dev/null
+++ b/src/superio/ite/it8721f/it8721f.h
@@ -0,0 +1,41 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2006 Uwe Hermann <uwe(a)hermann-uwe.de>
+ * Copyright (C) 2011 QingPei Wang <wangqingpei(a)gmail.com>
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef SUPERIO_ITE_IT8721F_IT8721F_H
+#define SUPERIO_ITE_IT8721F_IT8721F_H
+
+#define IT8721F_FDC 0x00 /* Floppy */
+#define IT8721F_SP1 0x01 /* Com1 */
+#define IT8721F_SP2 0x02 /* Com2 */
+#define IT8721F_PP 0x03 /* Parallel port */
+#define IT8721F_EC 0x04 /* Environment controller */
+#define IT8721F_KBCK 0x05 /* PS/2 keyboard */
+#define IT8721F_KBCM 0x06 /* PS/2 mouse */
+#define IT8721F_GPIO 0x07 /* GPIO */
+#define IT8721F_IR 0x0a /* Consumer IR */
+
+#if defined(__PRE_RAM__) && !defined(__ROMCC__)
+void it8721f_24mhz_clkin(void);
+void it8721f_disable_reboot(void);
+void it8721f_enable_serial(device_t dev, u16 iobase);
+#endif
+
+#endif
diff --git a/src/superio/ite/it8721f/superio.c b/src/superio/ite/it8721f/superio.c
new file mode 100644
index 0000000..846afef
--- /dev/null
+++ b/src/superio/ite/it8721f/superio.c
@@ -0,0 +1,78 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2006 Uwe Hermann <uwe(a)hermann-uwe.de>
+ * Copyright (C) 2011 QingPei Wang <wangqingpei(a)gmail.com>
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <device/device.h>
+#include <device/pnp.h>
+#include <uart8250.h>
+#include <pc80/keyboard.h>
+#include <stdlib.h>
+#include "chip.h"
+#include "it8721f.h"
+
+static void init(device_t dev)
+{
+ struct superio_ite_it8721f_config *conf = dev->chip_info;
+
+ if (!dev->enabled)
+ return;
+
+ switch (dev->path.pnp.device) {
+ case IT8721F_FDC: /* TODO. */
+ break;
+ case IT8721F_PP: /* TODO. */
+ break;
+ case IT8721F_EC: /* TODO. */
+ break;
+ case IT8721F_KBCK:
+ pc_keyboard_init(&conf->keyboard);
+ break;
+ case IT8721F_KBCM: /* TODO. */
+ break;
+ case IT8721F_IR: /* TODO. */
+ break;
+ }
+}
+
+static struct device_operations ops = {
+ .read_resources = pnp_read_resources,
+ .set_resources = pnp_set_resources,
+ .enable_resources = pnp_enable_resources,
+ .enable = pnp_enable,
+ .init = init,
+};
+
+/* TODO: FDC, PP, EC, KBCM, IR. */
+static struct pnp_info pnp_dev_info[] = {
+ { &ops, IT8721F_SP1, PNP_IO0 | PNP_IRQ0, {0x07f8, 0}, },
+ { &ops, IT8721F_SP2, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0 | PNP_DRQ1, {0x07f8, 0}, },
+ { &ops, IT8721F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0, {0x07f8, 0}, {0x07f8, 4}, },
+};
+
+static void enable_dev(struct device *dev)
+{
+ pnp_enable_devices(dev, &pnp_ops,
+ ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
+}
+
+struct chip_operations superio_ite_it8721f_ops = {
+ CHIP_NAME("ITE IT8721F Super I/O")
+ .enable_dev = enable_dev,
+};
Am Mo 12 Sep 2011 17:48:07 CEST schrieb Jianmin Pan:
> I am used to use vim.
> So, anybody have good suggestions?
Install ctags, run "ctags -R src" in the toplevel directory, which
creates the "tags" file.
Then in vi, use ":ta identifier" to look up the declaration of
identifier, ctrl-] to look up the current word
(see http://ctags.sourceforge.net/ctags.html#HOW%20TO%20USE%20WITH%20VI)
Patrick
If you want to browse around a bit, there is an LXR cross reference of
coreboot available here:
http://lxr.linux.no/coreboot
Tom
On Mon, Sep 12, 2011 at 8:48 AM, Jianmin Pan <dspjm1(a)gmail.com> wrote:
> I am a newbie to coreboot, I am wondering is there an easy approach to
> understand the functions.
> For instance, when I am reading fallback_boot.c, it's very difficult for me
> to understand such functions as inb(), outb(),RTC_PORT().
> The method I am using now is to grep the function name and find out which
> file it is in. Then read it. However, I still feel inconvenient.
> I am used to use vim.
> So, anybody have good suggestions?
>
> --
> coreboot mailing list: coreboot(a)coreboot.org
> http://www.coreboot.org/mailman/listinfo/coreboot
>