[LinuxBIOS] r2623 - in trunk/LinuxBIOSv2: src/mainboard/tyan/s1846 src/southbridge/intel/i82371eb targets/tyan/s1846

svn at openbios.org svn at openbios.org
Thu May 3 10:50:37 CEST 2007


Author: uwe
Date: 2007-05-03 10:50:37 +0200 (Thu, 03 May 2007)
New Revision: 2623

Added:
   trunk/LinuxBIOSv2/src/southbridge/intel/i82371eb/Config.lb
   trunk/LinuxBIOSv2/src/southbridge/intel/i82371eb/i82371eb.c
   trunk/LinuxBIOSv2/src/southbridge/intel/i82371eb/i82371eb.h
Modified:
   trunk/LinuxBIOSv2/src/mainboard/tyan/s1846/Config.lb
   trunk/LinuxBIOSv2/src/mainboard/tyan/s1846/auto.c
   trunk/LinuxBIOSv2/src/southbridge/intel/i82371eb/i82371eb_smbus.c
   trunk/LinuxBIOSv2/targets/tyan/s1846/Config.lb
Log:
Correct the RAM checking code to _not_ check the range from 640 KB - 1 MB,
as that is not RAM but used for other stuff.

First try at PCI init added to src/mainboard/tyan/s1846/Config.lb.

Use a real payload (FILO) per default now.

Note: this cannot boot a payload, yet, but it gets a lot further now.

Signed-off-by: Uwe Hermann <uwe at hermann-uwe.de>
Acked-by: Stefan Reinauer <stepan at coresystems.de>



Modified: trunk/LinuxBIOSv2/src/mainboard/tyan/s1846/Config.lb
===================================================================
--- trunk/LinuxBIOSv2/src/mainboard/tyan/s1846/Config.lb	2007-04-30 23:27:27 UTC (rev 2622)
+++ trunk/LinuxBIOSv2/src/mainboard/tyan/s1846/Config.lb	2007-05-03 08:50:37 UTC (rev 2623)
@@ -126,10 +126,37 @@
 config chip.h
 
 # TODO.
-chip northbridge/intel/i440bx
-   device pci_domain 0 on 
-   end
-   chip cpu/intel/slot_2
-   end
+chip northbridge/intel/i440bx # Northbridge
+	device pci_domain 0 on 
+		device pci 0.0 on end # Host bridge
+		device pci 1.0 off end # PCI bridge  TODO: AGP bridge?
+		# device pci 7.0 on end # ISA bridge
+		chip southbridge/intel/i82371eb # Southbridge
+			device pci 7.0 on # ISA bridge ???
+				chip superio/nsc/pc87309 # Super I/O
+					device pnp 2e.0 on end # Floppy
+					device pnp 2e.1 on end # Parallel port
+					device pnp 2e.2 on end # Com2
+					device pnp 2e.3 on # Com1
+						io 0x60 = 0x3f8
+						irq 0x70 = 4
+					end
+					device pnp 2e.4 on end # Power mgmt.
+					device pnp 2e.5 on end # Mouse
+					device pnp 2e.6 on # Keyboard
+						io 0x60 = 0x60
+						io 0x62 = 0x64
+						irq 0x70 = 1
+						irq 0x72 = 12 # ???
+					end
+				end
+				device pci 7.1 on end # IDE
+				device pci 7.2 on end # USB
+				device pci 7.3 on end # ACPI
+			end
+		end
+	end
+	chip cpu/intel/slot_2
+	end
 end
 

Modified: trunk/LinuxBIOSv2/src/mainboard/tyan/s1846/auto.c
===================================================================
--- trunk/LinuxBIOSv2/src/mainboard/tyan/s1846/auto.c	2007-04-30 23:27:27 UTC (rev 2622)
+++ trunk/LinuxBIOSv2/src/mainboard/tyan/s1846/auto.c	2007-05-03 08:50:37 UTC (rev 2623)
@@ -49,6 +49,19 @@
 #include "northbridge/intel/i440bx/debug.c"
 #include "sdram/generic_sdram.c"
 
+static void enable_mainboard_devices(void)
+{
+	device_t dev;
+
+	dev = pci_locate_device(PCI_ID(0x8086, 0x7110), 0);
+
+	if (dev == PCI_DEV_INVALID) {
+		die("Southbridge not found!\n");
+	} else {
+		print_debug("Southbridge found!\n");
+	}
+}
+
 static void main(unsigned long bist)
 {
 	static const struct mem_controller memctrl[] = {
@@ -75,12 +88,27 @@
 	/* Halt if there was a built in self test failure. */
 	report_bist_failure(bist);
 
+	enable_mainboard_devices();
+
 	enable_smbus();
 
 	dump_spd_registers(&memctrl[0]);
 
 	sdram_initialize(sizeof(memctrl) / sizeof(memctrl[0]), memctrl);
 
-	/* Check 64 MB of RAM. */
-	ram_check(0x00000000, 0x04000000);
+	/* Check whether RAM is working.
+	 *
+	 * Do _not_ check the area from 640 KB - 1 MB, as that's not really
+	 * RAM, but rather reserved for various other things:
+	 *
+	 *  - 640 KB ­ 768 KB: Video Buffer Area
+	 *  - 768 KB ­ 896 KB: Expansion Area
+	 *  - 896 KB ­ 960 KB: Extended System BIOS Area
+	 *  - 960 KB ­ 1 MB:   Memory (BIOS Area) - System BIOS Area
+	 *
+	 * Trying to check these areas will fail.
+	 */
+	/* TODO: This is currently hardcoded to check 64 MB. */
+	ram_check(0x00000000, 0x0009ffff);	/* 0 - 640 KB */
+	ram_check(0x00100000, 0x007c0000);	/* 1 MB - 64 MB */
 }

Added: trunk/LinuxBIOSv2/src/southbridge/intel/i82371eb/Config.lb
===================================================================
--- trunk/LinuxBIOSv2/src/southbridge/intel/i82371eb/Config.lb	                        (rev 0)
+++ trunk/LinuxBIOSv2/src/southbridge/intel/i82371eb/Config.lb	2007-05-03 08:50:37 UTC (rev 2623)
@@ -0,0 +1,25 @@
+##
+## This file is part of the LinuxBIOS project.
+##
+## Copyright (C) 2007 Uwe Hermann <uwe at 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
+##
+
+config chip.h
+
+driver i82371eb.o
+driver i82371eb_smbus.o
+

Added: trunk/LinuxBIOSv2/src/southbridge/intel/i82371eb/i82371eb.c
===================================================================
--- trunk/LinuxBIOSv2/src/southbridge/intel/i82371eb/i82371eb.c	                        (rev 0)
+++ trunk/LinuxBIOSv2/src/southbridge/intel/i82371eb/i82371eb.c	2007-05-03 08:50:37 UTC (rev 2623)
@@ -0,0 +1,32 @@
+/*
+ * This file is part of the LinuxBIOS project.
+ *
+ * Copyright (C) 2007 Uwe Hermann <uwe at 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 "i82371eb.h"
+
+void i82371eb_enable(device_t dev)
+{
+	/* TODO. */
+}
+
+struct chip_operations southbridge_intel_i82371eb_ops = {
+	CHIP_NAME("Intel 82371EB Southbridge")
+	.enable_dev = i82371eb_enable,
+};

Added: trunk/LinuxBIOSv2/src/southbridge/intel/i82371eb/i82371eb.h
===================================================================
--- trunk/LinuxBIOSv2/src/southbridge/intel/i82371eb/i82371eb.h	                        (rev 0)
+++ trunk/LinuxBIOSv2/src/southbridge/intel/i82371eb/i82371eb.h	2007-05-03 08:50:37 UTC (rev 2623)
@@ -0,0 +1,32 @@
+/*
+ * This file is part of the LinuxBIOS project.
+ *
+ * Copyright (C) 2007 Uwe Hermann <uwe at 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 I82371EB_H
+#define I82371EB_H
+
+#ifndef __ROMCC__
+
+#include "chip.h"
+
+void i82371eb_enable(device_t dev);
+
+#endif
+
+#endif				/* I82371EB_H */

Modified: trunk/LinuxBIOSv2/src/southbridge/intel/i82371eb/i82371eb_smbus.c
===================================================================
--- trunk/LinuxBIOSv2/src/southbridge/intel/i82371eb/i82371eb_smbus.c	2007-04-30 23:27:27 UTC (rev 2622)
+++ trunk/LinuxBIOSv2/src/southbridge/intel/i82371eb/i82371eb_smbus.c	2007-05-03 08:50:37 UTC (rev 2623)
@@ -39,5 +39,5 @@
 static struct pci_driver smbus_driver __pci_driver = {
 	.ops = &smbus_ops,
 	.vendor = PCI_VENDOR_ID_INTEL,
-	.device = PCI_DEVICE_INTEL_440BX_SMB,
+	.device = 0x7111, // FIXME?
 };

Modified: trunk/LinuxBIOSv2/targets/tyan/s1846/Config.lb
===================================================================
--- trunk/LinuxBIOSv2/targets/tyan/s1846/Config.lb	2007-04-30 23:27:27 UTC (rev 2622)
+++ trunk/LinuxBIOSv2/targets/tyan/s1846/Config.lb	2007-05-03 08:50:37 UTC (rev 2623)
@@ -25,14 +25,19 @@
 
 romimage "normal"
 	option USE_FALLBACK_IMAGE = 0
+	option ROM_IMAGE_SIZE=0x0e000
 	option LINUXBIOS_EXTRA_VERSION = ".0Normal"
-	payload /etc/hosts # TODO
+	payload /tmp/filo.elf
+	# payload /tmp/memtest
 end
 
 romimage "fallback"
 	option USE_FALLBACK_IMAGE = 1
+	option ROM_IMAGE_SIZE=0x0e000
 	option LINUXBIOS_EXTRA_VERSION = ".0Fallback"
-	payload /etc/hosts # TODO
+	payload /tmp/filo.elf
+	# payload /tmp/memtest
 end
 
 buildrom ./linuxbios.rom ROM_SIZE "normal" "fallback"
+# buildrom ./linuxbios.rom ROM_SIZE "fallback"





More information about the coreboot mailing list