Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/sandpoint/stand/altboot add IOMEGA StorCenter fixup...
details: https://anonhg.NetBSD.org/src/rev/adcd1a91b567
branches: trunk
changeset: 761776:adcd1a91b567
user: nisimura <nisimura%NetBSD.org@localhost>
date: Mon Feb 07 12:45:21 2011 +0000
description:
add IOMEGA StorCenter fixup codes. Need more change as the satellite
microcontroller protocol is defined in 8-byte fixed length sequence.
diffstat:
sys/arch/sandpoint/stand/altboot/brdsetup.c | 51 +++++++++++++++++++++++++---
1 files changed, 45 insertions(+), 6 deletions(-)
diffs (91 lines):
diff -r b0e3af4e45d8 -r adcd1a91b567 sys/arch/sandpoint/stand/altboot/brdsetup.c
--- a/sys/arch/sandpoint/stand/altboot/brdsetup.c Mon Feb 07 12:23:05 2011 +0000
+++ b/sys/arch/sandpoint/stand/altboot/brdsetup.c Mon Feb 07 12:45:21 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: brdsetup.c,v 1.1 2011/01/23 01:05:30 nisimura Exp $ */
+/* $NetBSD: brdsetup.c,v 1.2 2011/02/07 12:45:21 nisimura Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -52,6 +52,7 @@
BRD_DECL(kuro);
BRD_DECL(syno);
BRD_DECL(qnap);
+BRD_DECL(iomega);
static struct brdprop brdlist[] = {
{
@@ -92,11 +93,11 @@
NULL, NULL, qnappcifix },
{
"iomega",
- "IOMEGA Storcenter",
+ "IOMEGA StorCenter",
BRD_STORCENTER,
0,
"eumb", 0x4500, 115200,
- NULL, NULL, NULL },
+ NULL, iomegabrdfix, iomegapcifix },
{
"unknown",
"Unknown board",
@@ -693,6 +694,14 @@
}
void
+synoreset()
+{
+
+ send_sat("C");
+ /*NOTRECHED*/
+}
+
+void
qnappcifix(struct brdprop *brd)
{
unsigned ide, nic, usb, val;
@@ -724,11 +733,41 @@
}
void
-synoreset()
+iomegabrdfix(struct brdprop *brd)
{
- send_sat("C");
- /*NOTRECHED*/
+ init_uart(uart2base, 9600, LCR_8BITS | LCR_PNONE);
+}
+
+void
+iomegapcifix(struct brdprop *brd)
+{
+ unsigned ide, nic, usb, val;
+
+ ide = pcimaketag(0, 13, 0);
+ val = pcicfgread(ide, 0x3c) & 0xffffff00;
+ val |= 13;
+ pcicfgwrite(ide, 0x3c, val);
+
+ usb = pcimaketag(0, 14, 0);
+ val = pcicfgread(usb, 0x3c) & 0xffffff00;
+ val |= 14;
+ pcicfgwrite(usb, 0x3c, val);
+
+ usb = pcimaketag(0, 14, 1);
+ val = pcicfgread(usb, 0x3c) & 0xffffff00;
+ val |= 14;
+ pcicfgwrite(usb, 0x3c, val);
+
+ usb = pcimaketag(0, 14, 2);
+ val = pcicfgread(usb, 0x3c) & 0xffffff00;
+ val |= 14;
+ pcicfgwrite(usb, 0x3c, val);
+
+ nic = pcimaketag(0, 15, 0);
+ val = pcicfgread(nic, 0x3c) & 0xffffff00;
+ val |= 15;
+ pcicfgwrite(nic, 0x3c, val);
}
void
Home |
Main Index |
Thread Index |
Old Index