Damien Zammit (damien(a)zamaudio.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3532
-gerrit
commit 9127fe99158a4db51eaab6cb6d68e786a51bfe98
Author: Damien Zammit <damien(a)zamaudio.com>
Date: Wed Jun 26 06:25:39 2013 +1000
NOTFORMERGE: Preliminary support for new superio IT8728F.
Cloned from IT8718F and verified against the datasheet
for the new model.
So far untested on hardware, not sure how to obtain valid IRQ settings.
Change-Id: I82e23e2fe5f9651c4b7b5195b4ccee6d2d852fbe
Signed-off-by: Damien Zammit <damien(a)zamaudio.com>
---
src/superio/ite/Kconfig | 2 +
src/superio/ite/Makefile.inc | 1 +
src/superio/ite/it8728f/Makefile.inc | 22 +++++++
src/superio/ite/it8728f/chip.h | 33 +++++++++++
src/superio/ite/it8728f/early_serial.c | 105 +++++++++++++++++++++++++++++++++
src/superio/ite/it8728f/it8728.h | 40 +++++++++++++
src/superio/ite/it8728f/superio.c | 77 ++++++++++++++++++++++++
7 files changed, 280 insertions(+)
diff --git a/src/superio/ite/Kconfig b/src/superio/ite/Kconfig
index e1970e8..0cf112f 100644
--- a/src/superio/ite/Kconfig
+++ b/src/superio/ite/Kconfig
@@ -38,5 +38,7 @@ config SUPERIO_ITE_IT8718F
bool
config SUPERIO_ITE_IT8721F
bool
+config SUPERIO_ITE_IT8728F
+ bool
config SUPERIO_ITE_IT8772F
bool
diff --git a/src/superio/ite/Makefile.inc b/src/superio/ite/Makefile.inc
index ce595b8..8610eea 100644
--- a/src/superio/ite/Makefile.inc
+++ b/src/superio/ite/Makefile.inc
@@ -25,4 +25,5 @@ subdirs-y += it8712f
subdirs-y += it8716f
subdirs-y += it8718f
subdirs-y += it8721f
+subdirs-y += it8728f
subdirs-y += it8772f
diff --git a/src/superio/ite/it8728f/Makefile.inc b/src/superio/ite/it8728f/Makefile.inc
new file mode 100644
index 0000000..0989eee
--- /dev/null
+++ b/src/superio/ite/it8728f/Makefile.inc
@@ -0,0 +1,22 @@
+##
+## This file is part of the coreboot project.
+##
+## Copyright (C) 2006 Uwe Hermann <uwe(a)hermann-uwe.de>
+##
+## 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_IT8728F) += superio.c
+
diff --git a/src/superio/ite/it8728f/chip.h b/src/superio/ite/it8728f/chip.h
new file mode 100644
index 0000000..8013531
--- /dev/null
+++ b/src/superio/ite/it8728f/chip.h
@@ -0,0 +1,33 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2006 Uwe Hermann <uwe(a)hermann-uwe.de>
+ *
+ * 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_IT8728F_CHIP_H
+#define SUPERIO_ITE_IT8728F_CHIP_H
+
+#include <device/device.h>
+#include <pc80/keyboard.h>
+#include <uart8250.h>
+
+struct superio_ite_it8728f_config {
+
+ struct pc_keyboard keyboard;
+};
+
+#endif
diff --git a/src/superio/ite/it8728f/early_serial.c b/src/superio/ite/it8728f/early_serial.c
new file mode 100644
index 0000000..43c431a
--- /dev/null
+++ b/src/superio/ite/it8728f/early_serial.c
@@ -0,0 +1,105 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2006 Uwe Hermann <uwe(a)hermann-uwe.de>
+ *
+ * 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/io.h>
+#include "it8728f.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 IT8728F_CONFIG_REG_CC 0x02 /* Configure Control (write-only). */
+#define IT8728F_CONFIG_REG_LDN 0x07 /* Logical Device Number. */
+#define IT8728F_CONFIG_REG_CHIPVERS 0x22 /* Chip version */
+#define IT8728F_CONFIG_REG_CLOCKSEL 0x23 /* Clock Selection. */
+#define IT8728F_CONFIG_REG_SWSUSP 0x24 /* Software Suspend, Flash I/F. 'Special register' */
+
+static void it8728f_sio_write(u8 ldn, u8 index, u8 value)
+{
+ outb(IT8728F_CONFIG_REG_LDN, SIO_BASE);
+ outb(ldn, SIO_DATA);
+ outb(index, SIO_BASE);
+ outb(value, SIO_DATA);
+}
+
+static void it8728f_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 it8728f_exit_conf(void)
+{
+ it8728f_sio_write(0x00, IT8728F_CONFIG_REG_CC, 0x02);
+}
+
+/* Select 24MHz CLKIN (48MHz default). */
+void it8728f_24mhz_clkin(void)
+{
+ it8728f_enter_conf();
+ it8728f_sio_write(0x00, IT8728F_CONFIG_REG_CLOCKSEL, 0x1);
+ it8728f_exit_conf();
+}
+
+/*
+ * GIGABYTE uses a special Super I/O register to protect its Dual BIOS
+ * mechanism. It lives in the GPIO LDN. However, register 0xEF is not
+ * mentioned in the IT8728F datasheet so just hardcode it to 0x7E for now.
+ * (This is what the IT8718F does too).
+ */
+void it8728f_disable_reboot(void)
+{
+ it8728f_enter_conf();
+ it8728f_sio_write(IT8728F_GPIO, 0xEF, 0x7E);
+ it8728f_exit_conf();
+}
+
+/* Enable the serial port(s). */
+void it8728f_enable_serial(device_t dev, u16 iobase)
+{
+ /* (1) Enter the configuration state (MB PnP mode). */
+ it8728f_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). */
+ it8728f_sio_write(IT8728F_SP1, 0x30, 0x1); /* Serial port 1 */
+ it8728f_sio_write(IT8728F_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). */
+ it8728f_exit_conf();
+}
diff --git a/src/superio/ite/it8728f/it8728.h b/src/superio/ite/it8728f/it8728.h
new file mode 100644
index 0000000..c669a8c
--- /dev/null
+++ b/src/superio/ite/it8728f/it8728.h
@@ -0,0 +1,40 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2006 Uwe Hermann <uwe(a)hermann-uwe.de>
+ *
+ * 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_IT8728F_IT8728F_H
+#define SUPERIO_ITE_IT8728F_IT8728F_H
+
+#define IT8728F_FDC 0x00 /* Floppy */
+#define IT8728F_SP1 0x01 /* Com1 */
+#define IT8728F_SP2 0x02 /* Com2 */
+#define IT8728F_PP 0x03 /* Parallel port */
+#define IT8728F_EC 0x04 /* Environment controller */
+#define IT8728F_KBCK 0x05 /* PS/2 keyboard */
+#define IT8728F_KBCM 0x06 /* PS/2 mouse */
+#define IT8728F_GPIO 0x07 /* GPIO */
+#define IT8728F_IR 0x0a /* Consumer IR */
+
+#if defined(__PRE_RAM__)
+void it8728f_24mhz_clkin(void);
+void it8728f_disable_reboot(void);
+void it8728f_enable_serial(device_t dev, u16 iobase);
+#endif
+
+#endif
diff --git a/src/superio/ite/it8728f/superio.c b/src/superio/ite/it8728f/superio.c
new file mode 100644
index 0000000..116e78a
--- /dev/null
+++ b/src/superio/ite/it8728f/superio.c
@@ -0,0 +1,77 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2006 Uwe Hermann <uwe(a)hermann-uwe.de>
+ *
+ * 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 "it8728f.h"
+
+static void init(device_t dev)
+{
+ struct superio_ite_it8728f_config *conf = dev->chip_info;
+
+ if (!dev->enabled)
+ return;
+
+ switch (dev->path.pnp.device) {
+ case IT8728F_FDC: /* TODO. */
+ break;
+ case IT8728F_PP: /* TODO. */
+ break;
+ case IT8728F_EC: /* TODO. */
+ break;
+ case IT8728F_KBCK:
+ pc_keyboard_init(&conf->keyboard);
+ break;
+ case IT8728F_KBCM: /* TODO. */
+ break;
+ case IT8728F_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, IT8728F_SP1, PNP_IO0 | PNP_IRQ0, {0x03f8, 0}, },
+//??? { &ops, IT8728F_SP2, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0 | PNP_DRQ1, {0x02f8, 0}, },
+//??? { &ops, IT8728F_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_it8718f_ops = {
+ CHIP_NAME("ITE IT8728F Super I/O")
+ .enable_dev = enable_dev,
+};
Patrick Georgi (patrick(a)georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3531
-gerrit
commit 77c6187ac6f8053e15c2065035437eea587fb67a
Author: Patrick Georgi <patrick.georgi(a)secunet.com>
Date: Tue Jun 25 11:14:03 2013 +0200
ktqm77: redesign cmos.layout slightly
BIOS write protects 8 bytes of CMOS, which nvramtool can't cope with.
This makes initial installation harder, so just mark those as reserved
to work around the issue.
Change-Id: I210861dff8572e226a0f250556a3b811671ea8f2
Signed-off-by: Patrick Georgi <patrick.georgi(a)secunet.com>
---
src/mainboard/kontron/ktqm77/cmos.layout | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/mainboard/kontron/ktqm77/cmos.layout b/src/mainboard/kontron/ktqm77/cmos.layout
index 295ecd3..a110956 100644
--- a/src/mainboard/kontron/ktqm77/cmos.layout
+++ b/src/mainboard/kontron/ktqm77/cmos.layout
@@ -88,7 +88,8 @@ entries
#411 5 r 0 unused
# coreboot config options: bootloader
-416 424 s 0 boot_devices
+448 64 r 0 write_protected_by_bios
+512 328 s 0 boot_devices
840 8 h 0 boot_default
848 1 e 9 cmos_defaults_loaded
#849 7 r 0 unused
Bruce Griffith (Bruce.Griffith(a)se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3528
-gerrit
commit 760f4b27802bf29d34c50f93320711c9c82132c9
Author: Bruce Griffith <Bruce.Griffith(a)se-eng.com>
Date: Fri Jun 14 16:12:12 2013 -0600
SeaBIOS: Use coreboot video BIOS settings to set seabios settings
SeaBIOS needs to know what coreboot did with option ROMs to
figure out what remains to be loaded and configured. With
existing Kconfig and Makefile code, the load path is assumed
even though there are coreboot settings that change the
processing.
Change the SeaBIOS payload Makefile.inc file to set
OPTIONROMS_DEPLOYED to match the VBIOS setting in coreboot.
This requires a corresponding change in the arch Makefile.inc
to pass the OPTIONROMS_DEPLOYED setting to SeaBIOS make.
One limitation of this implementation is that SeaBIOS make
assumes that coreboot either set up all option ROMs, or none
of them. So if SeaBIOS is used, then PCI_ROM_RUN and VGA_ROM_RUN
should both be set or both be unset in coreboot. This change
does not check for the condition where only one of the two is set.
Change-Id: I13a0b608869b0f980dfb369ffbfbac11b953fe13
Signed-off-by: Bruce Griffith <Bruce.Griffith(a)se-eng.com>
---
payloads/external/SeaBIOS/Makefile.inc | 5 +++++
src/arch/x86/Makefile.inc | 2 ++
2 files changed, 7 insertions(+)
diff --git a/payloads/external/SeaBIOS/Makefile.inc b/payloads/external/SeaBIOS/Makefile.inc
index 022e012..a057d4c 100644
--- a/payloads/external/SeaBIOS/Makefile.inc
+++ b/payloads/external/SeaBIOS/Makefile.inc
@@ -25,6 +25,11 @@ config: checkout
echo "CONFIG_COREBOOT=y" >> $(OUT)/seabios/.config
echo "CONFIG_DEBUG_SERIAL=y" >> $(OUT)/seabios/.config
echo "CONFIG_DEBUG_SERIAL_PORT=0x3f8" >> $(OUT)/seabios/.config
+ifneq (,$(filter y,$(CONFIG_PCI_ROM_RUN) $(CONFIG_VGA_ROM_RUN)))
+ echo "CONFIG_OPTIONROMS_DEPLOYED=y" >> $(OUT)/seabios/.config
+else
+ echo "# CONFIG_OPTIONROMS_DEPLOYED is not set" >> $(OUT)/seabios/.config
+endif
echo "CONFIG_COREBOOT_FLASH=y" >> $(OUT)/seabios/.config
echo "CONFIG_LZMA=y" >> $(OUT)/seabios/.config
echo "CONFIG_FLASH_FLOPPY=y" >> $(OUT)/seabios/.config
diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc
index 7f1b7b2..28b0ae9 100644
--- a/src/arch/x86/Makefile.inc
+++ b/src/arch/x86/Makefile.inc
@@ -408,6 +408,8 @@ seabios:
OBJCOPY="$(OBJCOPY)" STRIP="$(STRIP)" \
CONFIG_SEABIOS_MASTER=$(CONFIG_SEABIOS_MASTER) \
CONFIG_SEABIOS_STABLE=$(CONFIG_SEABIOS_STABLE) \
+ CONFIG_VGA_ROM_RUN=$(CONFIG_VGA_ROM_RUN) \
+ CONFIG_PCI_ROM_RUN=$(CONFIG_PCI_ROM_RUN) \
OUT=$(abspath $(obj)) IASL="$(IASL)"
filo:
the following patch was just integrated into master:
commit 99fd30e486146d6ad83cec5a56be8268cf0a645a
Author: Nico Huber <nico.huber(a)secunet.com>
Date: Wed Jun 19 15:57:34 2013 +0200
sandybridge: Make inclusion of me.bin optional
Current build configuration always wants to include an Intel Management
Engine firmware (me.bin) on Sandy Bridge systems. However, we can have
a working coreboot without it, as long as the factory delivered ME
firmware is kept untouched in the flash ROM. So let the user decide if
a ME firmware will be included in the build.
Change-Id: I9a1cc29d4940ba22355eb9e653606e436f07e04c
Signed-off-by: Nico Huber <nico.huber(a)secunet.com>
Reviewed-on: http://review.coreboot.org/3522
Reviewed-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick(a)georgi-clan.de>
See http://review.coreboot.org/3522 for details.
-gerrit