summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonald G. Minnich <rminnich@gmail.com>2006-06-08 14:19:49 +0000
committerRonald G. Minnich <rminnich@gmail.com>2006-06-08 14:19:49 +0000
commit890ee09a3224f1cfc832f7c8f03e6c2f076aeb20 (patch)
treea4ca05970f66b3c9470bfdb92d0c5ffc174500e6
parent192b7bc44570f7b4268141f81ffca7a6b5f6fe21 (diff)
downloadcoreboot-890ee09a3224f1cfc832f7c8f03e6c2f076aeb20.tar.xz
further development of OLPC. Set vsm size to 35k. add PCI IRQ for USB.
Set linuxbios size to 28k. Drop debug level to 8. git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2315 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--src/cpu/amd/model_gx2/vsmsetup.c2
-rw-r--r--src/mainboard/olpc/rev_a/mainboard.c33
-rw-r--r--targets/olpc/rev_a/Config.lb10
3 files changed, 38 insertions, 7 deletions
diff --git a/src/cpu/amd/model_gx2/vsmsetup.c b/src/cpu/amd/model_gx2/vsmsetup.c
index 4b35ad570f..cd734f6fdb 100644
--- a/src/cpu/amd/model_gx2/vsmsetup.c
+++ b/src/cpu/amd/model_gx2/vsmsetup.c
@@ -353,7 +353,7 @@ void do_vsmbios(void)
//rom = 0xfff80000;
//rom = 0xfffc0000;
/* the VSA starts at the base of rom - 64 */
- rom = ((unsigned long) 0) - (ROM_SIZE + 64*1024);
+ rom = ((unsigned long) 0) - (ROM_SIZE + 35*1024);
buf = (unsigned char *) 0x60000;
unrv2b((uint8_t *)rom, buf);
diff --git a/src/mainboard/olpc/rev_a/mainboard.c b/src/mainboard/olpc/rev_a/mainboard.c
index 0d5170d871..b4e7eba93f 100644
--- a/src/mainboard/olpc/rev_a/mainboard.c
+++ b/src/mainboard/olpc/rev_a/mainboard.c
@@ -6,7 +6,38 @@
#include <arch/io.h>
#include "chip.h"
+
+
+static void init(struct device *dev) {
+ unsigned bus = 0;
+ unsigned devfn = PCI_DEVFN(0xf, 4);
+ device_t usb = NULL;
+ unsigned char usbirq = 0xa;
+
+ printk_debug("OLPC REVA ENTER %s\n", __FUNCTION__);
+
+ /* I can't think of any reason NOT to just set this. If it turns out we want this to be
+ * conditional we can make it a config variable later.
+ */
+
+ printk_debug("%s (%x,%x)SET USB PCI interrupt line to %d\n",
+ __FUNCTION__, bus, devfn, usbirq);
+ usb = dev_find_slot(bus, devfn);
+ if (! usb){
+ printk_err("Could not find USB\n");
+ } else {
+ pci_write_config8(usb, PCI_INTERRUPT_LINE, usbirq);
+ }
+ printk_debug("OLPC REVA EXIT %s\n", __FUNCTION__);
+}
+
+static void enable_dev(struct device *dev)
+{
+ dev->ops->init = init;
+}
+
struct chip_operations mainboard_olpc_rev_a_ops = {
CHIP_NAME("olpc rev_a mainboard ")
-};
+ .enable_dev = enable_dev,
+};
diff --git a/targets/olpc/rev_a/Config.lb b/targets/olpc/rev_a/Config.lb
index aaa8aeb6b4..541e9bf1eb 100644
--- a/targets/olpc/rev_a/Config.lb
+++ b/targets/olpc/rev_a/Config.lb
@@ -4,15 +4,15 @@ target rev_a
mainboard olpc/rev_a
# leave 64k for vsa
-option CONFIG_COMPRESSED_ROM_STREAM=1
-option ROM_SIZE=1024*512-64*1024
+#option CONFIG_COMPRESSED_ROM_STREAM=1
+option ROM_SIZE=1024*512-35*1024
option FALLBACK_SIZE=ROM_SIZE
-option DEFAULT_CONSOLE_LOGLEVEL = 11
-option MAXIMUM_CONSOLE_LOGLEVEL = 11
+option DEFAULT_CONSOLE_LOGLEVEL = 8
+option MAXIMUM_CONSOLE_LOGLEVEL = 8
romimage "fallback"
option USE_FALLBACK_IMAGE=1
- option ROM_IMAGE_SIZE=0x8000
+ option ROM_IMAGE_SIZE=28*1024
option LINUXBIOS_EXTRA_VERSION=".0Fallback"
payload /tmp/olpcpayload.elf
end