Marc Jones (marc.jones(a)se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7875
-gerrit
commit ccd19a88c0bebbf0af2e4defbf941451ae314e8b
Author: Vadim Bendebury <vbendeb(a)chromium.org>
Date: Wed Apr 23 14:26:01 2014 -0700
ipq8064/storm: UART enable and various fixes
The original patch from chromium was a bit of a mishmash.
Between that, rebasing and using the coreboot.org UART infrastructure,
the patch has changed a bit from the original. It seems reasonable to
keep these changes together.
- build in the ipq UART and turn on bootblock console
- sets LPAE and ROM header address
- adds cpd.c to storm
The original commit:
ipq8064: make UART driver work in bootblock
This patch it the last one in the chain adapting the ipq9064 UART
driver for use in coreboot. A new config option
(CONSOLE_SERIAL_IPQ806X) is being introduced to control inclusion of
the driver.
The previously introduced uart_wrapper.c is now included in the build
to provide the console driver structure used by ramstage.
Necessary configuration options are added to allow use of UART in the
bootblock.
BUG=chrome-os-partner:27784
TEST=with this change the coreboot image on AP148 prints a banner on
start up:
coreboot-4.0 Wed Apr 23 16:24:51 PDT 2014 starting...
Original-Change-Id: I129ee30ba17a5061b30cfee56c135df31eba98b5
Original-Signed-off-by: Vadim Bendebury <vbendeb(a)chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/196663
(cherry picked from commit 42ca8994361327c24e7a611505b21534dd231f30)
Signed-off-by: Marc Jones <marc.jones(a)se-eng.com>
Change-Id: I1175e74ed639cdc27a1a677fba65de2dd2b13a91
---
src/mainboard/google/storm/Kconfig | 1 +
src/mainboard/google/storm/Makefile.inc | 3 +++
src/soc/qualcomm/ipq806x/Kconfig | 11 +++++++----
src/soc/qualcomm/ipq806x/Makefile.inc | 3 +++
4 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/mainboard/google/storm/Kconfig b/src/mainboard/google/storm/Kconfig
index 59c0bb6..a2bf740 100644
--- a/src/mainboard/google/storm/Kconfig
+++ b/src/mainboard/google/storm/Kconfig
@@ -23,6 +23,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
select SOC_QC_IPQ806X
select BOARD_ROMSIZE_KB_4096
+ select MAINBOARD_HAS_BOOTBLOCK_INIT
config MAINBOARD_DIR
string
diff --git a/src/mainboard/google/storm/Makefile.inc b/src/mainboard/google/storm/Makefile.inc
index e0f5501..17f9676 100644
--- a/src/mainboard/google/storm/Makefile.inc
+++ b/src/mainboard/google/storm/Makefile.inc
@@ -17,6 +17,9 @@
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
##
+bootblock-y += cdp.c
+
romstage-y += romstage.c
ramstage-y += mainboard.c
+ramstage-y += cdp.c
diff --git a/src/soc/qualcomm/ipq806x/Kconfig b/src/soc/qualcomm/ipq806x/Kconfig
index 0fb780c..92ef3a1 100644
--- a/src/soc/qualcomm/ipq806x/Kconfig
+++ b/src/soc/qualcomm/ipq806x/Kconfig
@@ -1,9 +1,12 @@
config SOC_QC_IPQ806X
+ bool
+ default n
select ARCH_BOOTBLOCK_ARMV4
select ARCH_ROMSTAGE_ARMV7
select ARCH_RAMSTAGE_ARMV7
- bool
- default n
+ select ARM_LPAE
+ select BOOTBLOCK_CONSOLE
+ select HAVE_UART_SPECIAL
if SOC_QC_IPQ806X
@@ -13,11 +16,11 @@ config BOOTBLOCK_ROM_OFFSET
config CBFS_HEADER_ROM_OFFSET
hex "offset of master CBFS header in ROM"
- default 0x221000
+ default 0x224000
config CBFS_ROM_OFFSET
hex "offset of CBFS data in ROM"
- default 0x221080
+ default 0x224080
config MBN_ENCAPSULATION
depends on USE_BLOBS
diff --git a/src/soc/qualcomm/ipq806x/Makefile.inc b/src/soc/qualcomm/ipq806x/Makefile.inc
index dfbbf3d..639b9d9 100644
--- a/src/soc/qualcomm/ipq806x/Makefile.inc
+++ b/src/soc/qualcomm/ipq806x/Makefile.inc
@@ -22,16 +22,19 @@ bootblock-y += cbfs.c
bootblock-y += clock.c
bootblock-y += gpio.c
bootblock-y += timer.c
+bootblock-$(CONFIG_DRIVERS_UART) += uart.c
romstage-y += cbfs.c
romstage-y += clock.c
romstage-y += gpio.c
romstage-y += timer.c
+romstage-$(CONFIG_DRIVERS_UART) += uart.c
ramstage-y += cbfs.c
ramstage-y += clock.c
ramstage-y += gpio.c
ramstage-y += timer.c
+ramstage-$(CONFIG_DRIVERS_UART) += uart.c
ifeq ($(CONFIG_USE_BLOBS),y)
Marc Jones (marc.jones(a)se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7937
-gerrit
commit 885786cb1092b31404bcfdb52944436ffc8da32c
Author: Vadim Bendebury <vbendeb(a)chromium.org>
Date: Tue May 13 15:43:58 2014 -0700
Print segment clean up information only when required.
Eliminate duplicated printout and if needed, print only changed
information.
BUG=none
TEST=verified that the 'New segment dstaddr...' message is not
duplicated anymore
Original-Change-Id: Ia13593394fccbb225f2bd9ab2b9228bac29d50fb
Original-Signed-off-by: Vadim Bendebury <vbendeb(a)chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/199672
Original-Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
(cherry picked from commit aadf018821ebfa63d6ac9d2429ae1fb483dd6cb3)
Signed-off-by: Marc Jones <marc.jones(a)se-eng.com>
Change-Id: I7544bddc4026191395cfe3b8ac66256ec223391e
---
src/lib/selfboot.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/lib/selfboot.c b/src/lib/selfboot.c
index 8e9e0de..de059b0 100644
--- a/src/lib/selfboot.c
+++ b/src/lib/selfboot.c
@@ -252,9 +252,10 @@ static int build_self_segment_list(
/* Clean up the values */
if (new->s_filesz > new->s_memsz) {
new->s_filesz = new->s_memsz;
+ printk(BIOS_DEBUG,
+ " cleaned up filesize 0x%lx\n",
+ new->s_filesz);
}
- printk(BIOS_DEBUG, " (cleaned up) New segment addr 0x%lx size 0x%lx offset 0x%lx filesize 0x%lx\n",
- new->s_dstaddr, new->s_memsz, new->s_srcaddr, new->s_filesz);
break;
case PAYLOAD_SEGMENT_BSS:
the following patch was just integrated into master:
commit d6fb32b461314414e2afc6b91b771a70fb4689c5
Author: Rajmohan Mani <rajmohan.mani(a)intel.com>
Date: Fri May 30 13:06:01 2014 -0700
libpayload: usb: xhci: Fix TD size if it overflows 5 bits
xHCI Spec says TD Size (5 bits) field shall be forced to 31,
if the number of packets to be scheduled is greater than 31.
BUG=chrome-os-partner:27837
BRANCH=rambi,nyan
TEST=Manual: Ensure recovery boot with USB 2.0 media on Squawks
works fine without any babble errors.
Original-Change-Id: Iff14000e2a0ca1b28c49d0da921dbb2a350a1bbd
Original-Signed-off-by: Rajmohan Mani <rajmohan.mani(a)intel.com>
Original-Originally-Reviewed-on: https://chromium-review.googlesource.com/202297
Original-Reviewed-on: https://chromium-review.googlesource.com/202330
Original-Reviewed-by: Shawn Nematbakhsh <shawnn(a)chromium.org>
Original-Commit-Queue: Julius Werner <jwerner(a)chromium.org>
Tested-by: Julius Werner <jwerner(a)chromium.org>
(cherry picked from commit ae58b99370df3a86bf15d84b97db858a968b1dbd)
Signed-off-by: Marc Jones <marc.jones(a)se-eng.com>
Change-Id: I9668b947f676c109fad9297e5efde91bf7f796fd
Reviewed-on: http://review.coreboot.org/7913
Tested-by: build bot (Jenkins)
Reviewed-by: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
See http://review.coreboot.org/7913 for details.
-gerrit
Mono Moosbart (mono(a)posteo.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7990
-gerrit
commit 532c5947fd4ca2a343ac0c55c97deaaa5c3b3295
Author: Mono <mono(a)posteo.de>
Date: Wed Dec 31 01:52:27 2014 +0100
i82801gx: remove wrong code from pci bridge init.
This code uses missleading register name PCI_MIN_GNT defined in
pci_def.h with 0x3e. However this device has no register with
this name. Moreover, this device's register at offset 0x3e has
the name BCTRL defined in i82801gx.h. Right above this removed
code, in line 41-44, bits 0 and 1 at offset 0x3e (BCTRL) are
cleared disabling Parity Error Response and SERR#. The removed
code then enables SERR# and ISA.
Other sounthbridges maybe use the same wrong code (lynxpoint, bd82x6x).
Change-Id: I61270441a56067e4255c75d39428258dc39ffaef
Signed-off-by: Axel Holewa <mono(a)posteo.de>
---
src/southbridge/intel/i82801gx/pci.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/src/southbridge/intel/i82801gx/pci.c b/src/southbridge/intel/i82801gx/pci.c
index 0f372e7..90d9107 100644
--- a/src/southbridge/intel/i82801gx/pci.c
+++ b/src/southbridge/intel/i82801gx/pci.c
@@ -49,9 +49,6 @@ static void pci_init(struct device *dev)
reg8 |= (0x04 << 3);
pci_write_config8(dev, SMLT, reg8);
- /* Will this improve throughput of bus masters? */
- pci_write_config8(dev, PCI_MIN_GNT, 0x06);
-
/* Clear errors in status registers */
reg16 = pci_read_config16(dev, PSTS);
//reg16 |= 0xf900;
Mono Moosbart (mono(a)posteo.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7990
-gerrit
commit 01f813f92ea93c288909e54fb607c6bc41ca5c11
Author: Mono <mono(a)posteo.de>
Date: Wed Dec 31 01:52:27 2014 +0100
i82801gx: remove wrong code from pci bridge init.
This code uses missleading register name PCI_MIN_GNT defined in pci_def.h
with 0x3e. However this device has no register with this name. Moreover,
this device's register at offset 0x3e has the name BCTRL defined in
i82801gx.h. Two lines above this removed line, bits 0 and 1 at offset 0x3e
(BCTRL) are cleared disabling Parity Error Response and SERR#. The removed
code then enables SERR# and ISA.
Other sounthbridges maybe use the same wrong code (lynxpoint, bd82x6x).
Change-Id: I61270441a56067e4255c75d39428258dc39ffaef
Signed-off-by: Axel Holewa <mono(a)posteo.de>
---
src/southbridge/intel/i82801gx/pci.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/src/southbridge/intel/i82801gx/pci.c b/src/southbridge/intel/i82801gx/pci.c
index 0f372e7..90d9107 100644
--- a/src/southbridge/intel/i82801gx/pci.c
+++ b/src/southbridge/intel/i82801gx/pci.c
@@ -49,9 +49,6 @@ static void pci_init(struct device *dev)
reg8 |= (0x04 << 3);
pci_write_config8(dev, SMLT, reg8);
- /* Will this improve throughput of bus masters? */
- pci_write_config8(dev, PCI_MIN_GNT, 0x06);
-
/* Clear errors in status registers */
reg16 = pci_read_config16(dev, PSTS);
//reg16 |= 0xf900;
Mono Moosbart (mono(a)posteo.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7923
-gerrit
commit 8cc8adfd6bd26f3f0ab323e17c977b562cc8177a
Author: Mono <mono(a)posteo.de>
Date: Thu Dec 25 08:11:54 2014 +0100
macbook21: Add CST entries
Due to the CST entries the machine uses less power running
GNU/Linux-libre [0]. This can be seen by monitoring CPU temperature
and time left the machine can run on battery. CPU temperature
measurements have been done with lm_sensors [1], battery querying
with acpi [2]. Tests have been done before applying this patch and
after. In both cases the battery was fully loaded and the machine
powered up on battery, without AC. In both tests the machine was
idleing for more than 1 hour.
Without this patch battery was predicted to last 01:52:30 hours,
CPU temperature first measurement showed 38 degrees. After 15 min
idle, temperature has reached its maximum value in this test of
61 and 62 degrees (Core 0 and 1). Fan speed begins to increase
shortly after 15 min. From its minimal value 1800 rpm it reaches
3100 rpm after 40 min. CPU temperature did not increase any further.
After 60 min idle, the battery was predicted to still last 57 min.
With this patch battery was predicted to last 02:22:40 hours. That
is plus 30 min. CPU temperature begins at 35 degrees. After 15 min
temperature has reached 45 degrees; after 30 min it has reached
the maximal temperature during this test of about 50 degrees.
That is 10 degrees improvement. The fan stayed at minimal speed.
After 60 min idle, the batter was predicted to still last 01:22:48
hours.
[0] http://linux-libre.fsfla.org/
[1] http://www.lm-sensors.org/
[2] http://sourceforge.net/projects/acpiclient/
Change-Id: I6b2173df1dc09300329b61b51b79f4b9f4a8fb13
Signed-off-by: Axel Holewa <mono(a)posteo.de>
---
src/mainboard/apple/macbook21/mainboard.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/mainboard/apple/macbook21/mainboard.c b/src/mainboard/apple/macbook21/mainboard.c
index 99527c1..7d8ffd9 100644
--- a/src/mainboard/apple/macbook21/mainboard.c
+++ b/src/mainboard/apple/macbook21/mainboard.c
@@ -36,9 +36,15 @@
#include <drivers/intel/gma/int15.h>
#define PANEL INT15_5F35_CL_DISPLAY_DEFAULT
+static acpi_cstate_t cst_entries[] = {
+ { 1, 1, 1000, { 0x7f, 1, 2, { 0 }, 0, 0 } },
+ { 2, 1, 500, { 0x7f, 1, 2, { 0 }, 0x10, 0 } },
+};
+
int get_cst_entries(acpi_cstate_t **entries)
{
- return 0;
+ *entries = cst_entries;
+ return ARRAY_SIZE(cst_entries);
}
static void mainboard_init(device_t dev)
Mono Moosbart (mono(a)posteo.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7923
-gerrit
commit ec3bf181f1ec33e7eeaeee0d9834bf04aef0c376
Author: Mono <mono(a)posteo.de>
Date: Thu Dec 25 08:11:54 2014 +0100
macbook21: Add CST entries
Due to the CST entries the machine uses less power. This can be
seen by monitoring CPU temperature and time left the machine can
run on battery. CPU temperature measurements have been done with
"lm_sensors", battery querying with "acpi". Tests have been done
before applying this patch and after. In both cases the battery
was fully loaded and the machine powered up on battery, without
AC. In both tests the machine was idleing for more than 1 hour.
Without this patch battery was predicted to last 01:52:30 hours,
CPU temperature first measurement showed 38 degrees. After 15 min
idle, temperature has reached its maximum value in this test of
61 and 62 degrees (Core 0 and 1). Fan speed begins to increase
shortly after 15 min. From its minimal value 1800 rpm it reaches
3100 rpm after 40 min. CPU temperature did not increase any further.
After 60 min idle, the battery was predicted to still last 57 min.
With this patch battery was predicted to last 02:22:40 hours. That
is plus 30 min. CPU temperature begins at 35 degrees. After 15 min
temperature has reached 45 degrees; after 30 min it has reached
the maximal temperature during this test of about 50 degrees.
That is 10 degrees improvement. The fan stayed at minimal speed.
After 60 min idle, the batter was predicted to still last 01:22:48
hours.
Change-Id: I6b2173df1dc09300329b61b51b79f4b9f4a8fb13
Signed-off-by: Axel Holewa <mono(a)posteo.de>
---
src/mainboard/apple/macbook21/mainboard.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/mainboard/apple/macbook21/mainboard.c b/src/mainboard/apple/macbook21/mainboard.c
index 99527c1..7d8ffd9 100644
--- a/src/mainboard/apple/macbook21/mainboard.c
+++ b/src/mainboard/apple/macbook21/mainboard.c
@@ -36,9 +36,15 @@
#include <drivers/intel/gma/int15.h>
#define PANEL INT15_5F35_CL_DISPLAY_DEFAULT
+static acpi_cstate_t cst_entries[] = {
+ { 1, 1, 1000, { 0x7f, 1, 2, { 0 }, 0, 0 } },
+ { 2, 1, 500, { 0x7f, 1, 2, { 0 }, 0x10, 0 } },
+};
+
int get_cst_entries(acpi_cstate_t **entries)
{
- return 0;
+ *entries = cst_entries;
+ return ARRAY_SIZE(cst_entries);
}
static void mainboard_init(device_t dev)
Mono Moosbart (mono(a)posteo.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7990
-gerrit
commit 044114872c8293d02f66375f4529faa8b69e6763
Author: Mono <mono(a)posteo.de>
Date: Wed Dec 31 01:52:27 2014 +0100
i82801gx: remove wrong code from pci bridge init.
This code uses missleading register name PCI_MIN_GNT defined in pci_def.h with 0x3e. However this device has no register with this name. Moreover, this device's register at offset 0x3e has the name BCTRL defined in i82801gx.h. Two lines above this removed line, bits 0 and 1 at offset 0x3e (BCTRL) are cleared disabling Parity Error Response and SERR#. The removed code then enables SERR# and ISA.
Other sounthbridges maybe use the same wrong code (lynxpoint, bd82x6x).
Change-Id: I61270441a56067e4255c75d39428258dc39ffaef
Signed-off-by: Axel Holewa <mono(a)posteo.de>
---
src/southbridge/intel/i82801gx/pci.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/src/southbridge/intel/i82801gx/pci.c b/src/southbridge/intel/i82801gx/pci.c
index 0f372e7..90d9107 100644
--- a/src/southbridge/intel/i82801gx/pci.c
+++ b/src/southbridge/intel/i82801gx/pci.c
@@ -49,9 +49,6 @@ static void pci_init(struct device *dev)
reg8 |= (0x04 << 3);
pci_write_config8(dev, SMLT, reg8);
- /* Will this improve throughput of bus masters? */
- pci_write_config8(dev, PCI_MIN_GNT, 0x06);
-
/* Clear errors in status registers */
reg16 = pci_read_config16(dev, PSTS);
//reg16 |= 0xf900;