[coreboot] [commit] r5560 - in trunk/src: . drivers drivers/sil drivers/sil/3114 mainboard/tyan/s2881 mainboard/tyan/s2882
repository service
svn at coreboot.org
Sun May 16 17:31:54 CEST 2010
Author: ruik
Date: Sun May 16 17:31:53 2010
New Revision: 5560
URL: https://tracker.coreboot.org/trac/coreboot/changeset/5560
Log:
Following patch reprograms SIL3114 into PCI IDE native mode compatible class code allowing
legacy software to recognize it as IDE and boot from it. I think
this should be the default for two Tyan boards (k8s aka s2882 and s2881).
Rename the directory to sil prefix to match the Linux kernel naming.
(And I think it was a SiliconSystems wish to be named sil ;)
Signed-off-by: Rudolf Marek <r.marek at assembler.cz>
Acked-by: Stefan Reinauer <stepan at coresystems.de>
Added:
trunk/src/drivers/Kconfig
trunk/src/drivers/sil/
- copied from r5559, trunk/src/drivers/si/
trunk/src/drivers/sil/3114/Makefile.inc
trunk/src/drivers/sil/3114/sil_sata.c
- copied, changed from r5559, trunk/src/drivers/si/3114/si_sata.c
Deleted:
trunk/src/drivers/sil/3114/si_sata.c
Modified:
trunk/src/Kconfig
trunk/src/drivers/Makefile.inc
trunk/src/mainboard/tyan/s2881/Kconfig
trunk/src/mainboard/tyan/s2882/Kconfig
Modified: trunk/src/Kconfig
==============================================================================
--- trunk/src/Kconfig Sun May 16 16:24:41 2010 (r5559)
+++ trunk/src/Kconfig Sun May 16 17:31:53 2010 (r5560)
@@ -100,6 +100,10 @@
endmenu
+menu "Generic Drivers"
+source src/drivers/Kconfig
+endmenu
+
config PCI_BUS_SEGN_BITS
int
default 0
Added: trunk/src/drivers/Kconfig
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ trunk/src/drivers/Kconfig Sun May 16 17:31:53 2010 (r5560)
@@ -0,0 +1,25 @@
+##
+## This file is part of the coreboot project.
+##
+## Copyright (C) 2010 Rudolf Marek <r.marek at assembler.cz>
+##
+## 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; version 2 of the License.
+##
+## 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 DRIVERS_SIL
+ bool "Silicon Image SIL3114"
+ default n
+ help
+ It sets PCI class to IDE compatible native mode, allowing
+ SeaBIOS, FILO etc... to boot from it.
Modified: trunk/src/drivers/Makefile.inc
==============================================================================
--- trunk/src/drivers/Makefile.inc Sun May 16 16:24:41 2010 (r5559)
+++ trunk/src/drivers/Makefile.inc Sun May 16 17:31:53 2010 (r5560)
@@ -1,2 +1,3 @@
subdirs-y += generic/debug
subdirs-y += ati/ragexl
+subdirs-y += sil/3114
Added: trunk/src/drivers/sil/3114/Makefile.inc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ trunk/src/drivers/sil/3114/Makefile.inc Sun May 16 17:31:53 2010 (r5560)
@@ -0,0 +1 @@
+driver-$(CONFIG_DRIVERS_SIL) += sil_sata.o
Copied and modified: trunk/src/drivers/sil/3114/sil_sata.c (from r5559, trunk/src/drivers/si/3114/si_sata.c)
==============================================================================
--- trunk/src/drivers/si/3114/si_sata.c Sun May 16 16:24:41 2010 (r5559, copy source)
+++ trunk/src/drivers/sil/3114/sil_sata.c Sun May 16 17:31:53 2010 (r5560)
@@ -1,10 +1,9 @@
-/* Copyright 2003-2004 Tyan Computer*/
-
-/* Author: Yinghai Lu yhlu at tyan.com
+/* Copyright 2003-2004 Tyan Computer
+ * Yinghai Lu yhlu at tyan.com
*
+ * Copyright (C) 2010 Rudolf Marek <r.marek at assembler.cz>
*/
-
#include <delay.h>
#include <stdlib.h>
#include <string.h>
@@ -16,41 +15,23 @@
#include <device/pci_ids.h>
#include <device/pci_ops.h>
-
static void si_sata_init(struct device *dev)
{
- uint16_t word;
uint32_t dword;
-#if 0
- word = pci_read_config16(dev, 0x4);
- word |= ((1 << 2) |(1<<4)); // Command: 3--> 17
- pci_write_config16(dev, 0x4, word);
-#endif
-
- /* some driver change class code to 0x104, but not change deviceid without reason*/
- /* restore it so we don't need to unplug AC power to restore it*/
-
- word = pci_read_config16(dev, 0x0a);
- if(word!=0x0180) {
- /* enble change device id and class id*/
- dword = pci_read_config32(dev,0x40);
- dword |= (1<<0);
- pci_write_config32(dev, 0x40, dword);
-
- word = 0x0180;
- pci_write_config16(dev, 0x0a, word);
-
- /* disable change device id and class id*/
- dword = pci_read_config32(dev,0x40);
- dword &= ~(1<<0);
- pci_write_config32(dev, 0x40, dword);
-
- printk(BIOS_DEBUG, "Class code restored.\n");
-
- }
-
-
+ /* enable change device id and class id */
+ dword = pci_read_config32(dev,0x40);
+ dword |= (1<<0);
+ pci_write_config32(dev, 0x40, dword);
+ /* Set IDE Class, Native mode, two drives per channel */
+ dword = 0x01018f00;
+ pci_write_config32(dev, 0x08, dword);
+ /* disable change device id and class id*/
+ dword = pci_read_config32(dev,0x40);
+ dword &= ~(1<<0);
+ pci_write_config32(dev, 0x40, dword);
+ printk(BIOS_INFO, "SIL3114 set to IDE compatible mode\n");
}
+
static struct device_operations si_sata_ops = {
.read_resources = pci_dev_read_resources,
.set_resources = pci_dev_set_resources,
@@ -64,4 +45,3 @@
.vendor = 0x1095,
.device = 0x3114,
};
-
Modified: trunk/src/mainboard/tyan/s2881/Kconfig
==============================================================================
--- trunk/src/mainboard/tyan/s2881/Kconfig Sun May 16 16:24:41 2010 (r5559)
+++ trunk/src/mainboard/tyan/s2881/Kconfig Sun May 16 17:31:53 2010 (r5560)
@@ -13,6 +13,7 @@
select HAVE_MP_TABLE
select BOARD_ROMSIZE_KB_512
select SB_HT_CHAIN_UNITID_OFFSET_ONLY
+ select DRIVERS_SIL
config MAINBOARD_DIR
string
Modified: trunk/src/mainboard/tyan/s2882/Kconfig
==============================================================================
--- trunk/src/mainboard/tyan/s2882/Kconfig Sun May 16 16:24:41 2010 (r5559)
+++ trunk/src/mainboard/tyan/s2882/Kconfig Sun May 16 17:31:53 2010 (r5560)
@@ -12,6 +12,7 @@
select HAVE_MP_TABLE
select BOARD_ROMSIZE_KB_512
select SB_HT_CHAIN_UNITID_OFFSET_ONLY
+ select DRIVERS_SIL
config MAINBOARD_DIR
string
More information about the coreboot
mailing list