Changelog:
* src/mainboard/artecgroup/dbe61/Config.lb
irqmap changes
* src/mainboard/artecgroup/dbe61/irq_tables.c
tentative changes to irq table (currently not in use)
* src/mainboard/artecgroup/dbe61/mainboard.c
irq assigned manually to NIC
* src/mainboard/artecgroup/dbe61/Options.lb
gcc 4.0 is OK
* targets/artecgroup/dbe61/Config.lb
64K for VSA is OK at moment
Signed-off-by: Indrek Kruusa <[EMAIL PROTECTED]>
Signed-off-by: Andrei Birjukov <[EMAIL PROTECTED]>
diff -r -u -b -B LinuxBIOSv2/src/mainboard/artecgroup/dbe61/Config.lb krabin/LinuxBIOS/src/mainboard/artecgroup/dbe61/Config.lb
--- LinuxBIOSv2/src/mainboard/artecgroup/dbe61/Config.lb 2006-07-28 19:06:16.000000000 +0300
+++ krabin/LinuxBIOS/src/mainboard/artecgroup/dbe61/Config.lb 2006-08-02 16:39:42.000000000 +0300
@@ -124,8 +124,8 @@
config chip.h
chip northbridge/amd/lx
- register "irqmap" = "0xcab9"
- register "setupflash" = "0"
+ register "irqmap" = "0xcba5"
+ register "setupflash" = "1"
device apic_cluster 0 on
chip cpu/amd/model_lx
device apic 0 on end
@@ -138,20 +138,18 @@
register "enable_gpio0_inta" = "1"
register "enable_ide_nand_flash" = "1"
register "enable_uarta" = "1"
- register "audio_irq" = "5"
- register "usbf4_irq" = "10"
- register "usbf5_irq" = "10"
- register "usbf6_irq" = "0"
- register "usbf7_irq" = "0"
+ register "audio_irq" = "11"
+ register "usbf4_irq" = "5"
+ register "usbf5_irq" = "5"
+ register "usbf6_irq" = "5"
+ register "usbf7_irq" = "5"
device pci d.0 on end # Realtek 8139 LAN
device pci f.0 on end # ISA Bridge
device pci f.2 on end # IDE Controller
device pci f.3 on end # Audio
device pci f.4 on end # OHCI
device pci f.5 on end # EHCI
- register "unwanted_vpci[0]" = "0x80007E00" # USB/UDC
- register "unwanted_vpci[1]" = "0x80007F00" # USB/OTG
- register "unwanted_vpci[2]" = "0" # End of list has a zero
+ register "unwanted_vpci[0]" = "0" # End of list has a zero
end
end
end
diff -r -u -b -B LinuxBIOSv2/src/mainboard/artecgroup/dbe61/irq_tables.c krabin/LinuxBIOS/src/mainboard/artecgroup/dbe61/irq_tables.c
--- LinuxBIOSv2/src/mainboard/artecgroup/dbe61/irq_tables.c 2006-07-28 19:06:16.000000000 +0300
+++ krabin/LinuxBIOS/src/mainboard/artecgroup/dbe61/irq_tables.c 2006-08-02 11:01:48.000000000 +0300
@@ -7,24 +7,53 @@
#include <arch/pirq_routing.h>
-const struct irq_routing_table intel_irq_routing_table = {
+#define ID_SLOT_PCI_NET 1 // ThinCan ethernet
+#define ID_SLOT_PCI_RSVD1 2 // reserved entry 1
+#define ID_SLOT_PCI_RSVD3 3 // reserved entry 2
+#define ID_SLOT_PCI_RSVD2 4 // reserved entry 3
+#define ID_EMBED_PCI 0xff // onboard PCI device
+
+// CS5535 PCI INT[A-D] Interrupt Routing lines.
+#define NO_CONNECT 0 // not used
+#define CS_PCI_INTA 1 // PCI INTA
+#define CS_PCI_INTB 2 // PCI INTB
+#define CS_PCI_INTC 3 // PCI INTC
+#define CS_PCI_INTD 4 // PCI INTD
+
+// IRQ bitmap reference line FEDCBA9876543210
+// 0000110000100000b
+#define PCI_IRQ 0xc20 // PCI allowed IRQs here
+
+const struct irq_routing_table intel_irq_routing_table =
+{
PIRQ_SIGNATURE, /* u32 signature */
PIRQ_VERSION, /* u16 version */
- 32+16*2, /* there can be total 2 devices on the bus */
+ 32+16*6, /* there can be total 2 devices on the bus */
0x00, /* Where the interrupt router lies (bus) */
(0x12<<3)|0x0, /* Where the interrupt router lies (dev) */
- 0x800, /* IRQs devoted exclusively to PCI usage */
- 0x1078, /* Vendor */
- 0x2, /* Device */
- 0, /* Crap (miniport) */
+ 0x0800, /* IRQs devoted exclusively to PCI usage */
+ 0x1022, /* Vendor */
+ 0x208f, /* Device */
+ 0x00000000, /* Crap (miniport) */
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* u8 rfu[11] */
0xdf, /* u8 checksum , this hase to set to some value that would give 0 after the sum of all bytes for this structure (including checksum) */
{
/* bus, dev|fn, {link, bitmap}, {link, bitmap}, {link, bitmap}, {link, bitmap}, slot, rfu */
- {0x00,(0x0e<<3)|0x0, {{0x02, 0xdeb8}, {0x03, 0xdeb8}, {0x04, 0xdeb8}, {0x01, 0x0deb8}}, 0x1, 0x0},
- {0x00,(0x0f<<3)|0x0, {{0x03, 0xdeb8}, {0x04, 0xdeb8}, {0x01, 0xdeb8}, {0x02, 0x0deb8}}, 0x2, 0x0},
+ // Geode GX3 Host Bridge and VGA Graphics
+ {0, 0x01<<3, {{CS_PCI_INTA, PCI_IRQ}, {NO_CONNECT, PCI_IRQ}, {NO_CONNECT, PCI_IRQ}, {NO_CONNECT, PCI_IRQ}}, ID_EMBED_PCI, 0x0},
+ // Realtek RTL8100/8139 Network Controller
+ {0, 0x0d<<3, {{CS_PCI_INTB, PCI_IRQ}, {CS_PCI_INTC, PCI_IRQ}, {CS_PCI_INTD, PCI_IRQ}, {CS_PCI_INTA, PCI_IRQ}}, ID_SLOT_PCI_NET, 0x0},
+ // Reserved for future extensions
+ {0, 0x0c<<3, {{CS_PCI_INTA, PCI_IRQ}, {CS_PCI_INTB, PCI_IRQ}, {CS_PCI_INTC, PCI_IRQ}, {CS_PCI_INTD, PCI_IRQ}}, ID_SLOT_PCI_RSVD1, 0x0},
+ // Geode CS5535/CS5536 IO Companion: USB controllers, IDE, Audio.
+ {0, 0x0f<<3, {{CS_PCI_INTA, PCI_IRQ}, {CS_PCI_INTB, PCI_IRQ}, {CS_PCI_INTC, PCI_IRQ}, {CS_PCI_INTD, PCI_IRQ}}, ID_EMBED_PCI, 0x0},
+ // Reserved for future extensions
+ {0, 0x0e<<3, {{CS_PCI_INTC, PCI_IRQ}, {CS_PCI_INTD, PCI_IRQ}, {CS_PCI_INTA, PCI_IRQ}, {CS_PCI_INTB, PCI_IRQ}}, ID_SLOT_PCI_RSVD2, 0x0},
+ // Reserved for future extensions
+ {0, 0x0b<<3, {{CS_PCI_INTD, PCI_IRQ}, {CS_PCI_INTA, PCI_IRQ}, {CS_PCI_INTB, PCI_IRQ}, {CS_PCI_INTC, PCI_IRQ}}, ID_SLOT_PCI_RSVD3, 0x0}
}
};
+
unsigned long write_pirq_routing_table(unsigned long addr)
{
return copy_pirq_routing_table(addr);
diff -r -u -b -B LinuxBIOSv2/src/mainboard/artecgroup/dbe61/mainboard.c krabin/LinuxBIOS/src/mainboard/artecgroup/dbe61/mainboard.c
--- LinuxBIOSv2/src/mainboard/artecgroup/dbe61/mainboard.c 2006-07-28 19:06:16.000000000 +0300
+++ krabin/LinuxBIOS/src/mainboard/artecgroup/dbe61/mainboard.c 2006-08-02 16:39:42.000000000 +0300
@@ -7,31 +7,33 @@
#include "chip.h"
-
-static void init(struct device *dev) {
-/*
+static void init(struct device *dev)
+{
unsigned bus = 0;
- unsigned devfn = PCI_DEVFN(0xf, 4);
- device_t usb = NULL;
- unsigned char usbirq = 0xa;
-*/
+ unsigned devNic = PCI_DEVFN(0xd, 0);
+ unsigned devUsb = PCI_DEVFN(0xf, 4);
+ device_t usb = NULL, nic = NULL;
+ unsigned char irqUsb = 0xa, irqNic = 0xb;
printk_debug("ARTECGROUP DBE61 ENTER %s\n", __FUNCTION__);
-#if 0
- /* 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);
- }
-#endif
+ // FIXME: do we need to initialize USB OHCI this way?
+ printk_debug("%s (%x,%x) set USB PCI interrupt line to %d\n",
+ __FUNCTION__, bus, devUsb, irqUsb);
+
+ // initialize the USB controller
+ usb = dev_find_slot(bus, devUsb);
+ if (!usb) printk_err("Could not find USB\n");
+ else pci_write_config8(usb, PCI_INTERRUPT_LINE, irqUsb);
+
+ printk_debug("%s (%x,%x) set NIC PCI interrupt line to %d\n",
+ __FUNCTION__, bus, devNic, irqNic);
+
+ // initialize the Realtek NIC
+ nic = dev_find_slot(bus, devNic);
+ if (!nic) printk_err("Could not find USB\n");
+ else pci_write_config8(nic, PCI_INTERRUPT_LINE, irqNic);
+
printk_debug("ARTECGROUP DBE61 EXIT %s\n", __FUNCTION__);
}
diff -r -u -b -B LinuxBIOSv2/src/mainboard/artecgroup/dbe61/Options.lb krabin/LinuxBIOS/src/mainboard/artecgroup/dbe61/Options.lb
--- LinuxBIOSv2/src/mainboard/artecgroup/dbe61/Options.lb 2006-07-28 19:06:16.000000000 +0300
+++ krabin/LinuxBIOS/src/mainboard/artecgroup/dbe61/Options.lb 2006-08-02 11:01:48.000000000 +0300
@@ -71,8 +71,9 @@
##
## Build code to export a programmable irq routing table
##
-default HAVE_PIRQ_TABLE=1
-default IRQ_SLOT_COUNT=2
+default HAVE_PIRQ_TABLE=0
+default IRQ_SLOT_COUNT=6
+
#object irq_tables.o
##
@@ -112,8 +113,8 @@
## The default compiler
##
default CROSS_COMPILE=""
-default CC="$(CROSS_COMPILE)gcc-3.4 -m32"
-default HOSTCC="gcc-3.4"
+default CC="$(CROSS_COMPILE)gcc -m32"
+default HOSTCC="gcc"
##
## The Serial Console
diff -r -u -b -B LinuxBIOSv2/targets/artecgroup/dbe61/Config.lb krabin/LinuxBIOS/targets/artecgroup/dbe61/Config.lb
--- LinuxBIOSv2/targets/artecgroup/dbe61/Config.lb 2006-07-28 19:06:16.000000000 +0300
+++ krabin/LinuxBIOS/targets/artecgroup/dbe61/Config.lb 2006-08-01 14:13:45.000000000 +0300
@@ -1,11 +1,11 @@
-# Config file for the olpc rev_a
+# Config file for the ThinCan dbe61
target dbe61
mainboard artecgroup/dbe61
-# leave 128k for vsa
+# leave 64k for vsa
option CONFIG_COMPRESSED_ROM_STREAM=0
-option ROM_SIZE=1024*256-128*1024
+option ROM_SIZE=1024*256-64*1024
option FALLBACK_SIZE=ROM_SIZE
option DEFAULT_CONSOLE_LOGLEVEL = 11
--
linuxbios mailing list
[email protected]
http://www.openbios.org/mailman/listinfo/linuxbios