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)
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