# PROMISE FastTrak TX4000/20376/20378/S150 TX Series driver

## taskara

For those that don't know, Promise have released a soure driver for their FastTrak TX4000/20376/20378/S150 TX Series chipset here.

This should work on any mainboard with a built-in Promise 20376 / 20378 raid chip (such as Asus P4C800 series.)

You should be able boot using Knoppix, compile the driver, insert the modules, then you should be able to use your raid controller  :Smile: 

When u install gentoo you will have to install the driver too, or you won't be able to boot!  :Wink: 

Not sure how well it works, but if it is on promise's site, it *should* be good  :Smile: 

Let us know how you go, if anyone trys it.

----------

## Rhino

 *taskara wrote:*   

> For those that don't know, Promise have released a soure driver for their FastTrak TX4000/20376/20378/S150 TX Series chipset here.
> 
> This should work on any mainboard with a built-in Promise 20376 / 20378 raid chip (such as Asus P4C800 series.)
> 
> You should be able boot using Knoppix, compile the driver, insert the modules, then you should be able to use your raid controller 
> ...

 

they are not the full source ( just for now i hope), note the ftlib.o file on the tarball ... and they only works on 2.4.x kernels.

----------

## Krigg

yes, but how to compile this sucker into the kernel? I've been trying, but I'll be honest, I'm quite the noob when it comes to compiling drivers from outside the already included driver list in the kernel. 

How do I get the fasttrak source into the kernel so I can compile it???

----------

## taskara

it has been a while, but firstly I'd say - read the readme

basically you extract the tarball, compile and install the driver which inserts the module into the kernel source.

then you can insert the module and scan for the array..

----------

## Krigg

the readme from Promise was unclear to me. It was written for people who are completely familiar with compiling, so it leaves a bunch of very important info out. At least for me (who has never compiled a stand alone driver or program from outside of the kernel before.

I'm just looking for a step by step for this type of action.....ahhh I know, many of you can't be bothered with a noob like me, sorry 'bout botherin ya....  :Razz: 

JR

----------

## taskara

to tell you the truth I've never compiled and used it..

btw there is a new version here

the readme seems pretty straight forward  *Quote:*   

> /***********************************************************************
> 
> *   PROMISE FastTrak TX4000/376/378/S150 TX Series Linux Driver README *
> 
> *								       *
> ...

 

1) - you already have GCC (obviously) so you can skip this step

2) - you should be able to skip this - because when you built your kernel you should have already put these things in

3) - pretty straight forward 

```
 nano -w /path/to/code/Makefile
```

4) - familiarise yourself with it - but you won't need to change anything because the readme says  *Quote:*   

> (default parameter is INDEP586)

  - which is what we want because we are not building for SUSE or Redhat or Mandrake, so exit nano.

5) - do what it says 

```
make clean all
```

that will build the driver for you.

6) - do what it says - load scsi_mod.o first (which is "SCSI Support" under the kernel) 

```
insmod scsi_mod
```

 of course this means you must have compiled it into your kernel - if you compiled it in as a module the above should work. If you compiled it in directly you won't need to insert any modules (because there aren't any  :Wink: )

then 

```
insmod ft3xx.o
```

7) - copy ft3xx.o to /lib/modules/2.4.x/kernel/drivers/scsi/ - where 2.4.x is the actual kernel version (for me is /lib/modules/2.4.22/kernel/drivers/scsi/ - but just use your TAB key to get the the right place).

```
cp ft3xx.o /lib/modules/2.4.22/kernel/drivers/scsi/
```

8 ) - once again do what it says - to get the RAID array status, run 

```
cat /proc/scsi/ft3xx/x
```

 Similarly to the kernel number, x is a SCSI host number (try using TAB again).

9) - it should have been successful, but if not then take note of which section failed. remember it only works with 2.4 kernels (and I would say probably only vanilla kernels), and only works with certain promise cards - not neccessarily all.

because we are using gentoo, add scsi_mod and ft3xx to modules.autoload

```
echo scsi_mod >> /etc/modules.autoload.d/kernel-2.4

echo ft3xx >> /etc/modules.autoload.d/kernel-2.4
```

if it worked above, then when you reboot it will load the proper modules and your raid array should be visible again.

but like I said - I don't have a promise card to try it on anymore.. so I'm just going off the readme.. good luck!

----------

## handsomepete

fwiw, mine (376) works no problem with the kernel driver in 2.6... no need to use the driver from the Promise site.  Might want to see if what you're using is supported by that new driver...

----------

## taskara

 *handsomepete wrote:*   

> fwiw, mine (376) works no problem with the kernel driver in 2.6... no need to use the driver from the Promise site.  Might want to see if what you're using is supported by that new driver...

 

this driver is for the raid function of a promise controller.

Your 2.6 kernel will support the card, definately - but I don't think it will support the raid function of the card.

----------

## sneakyme66

i recently installed gentoo w/ the 2.6 kernel on my new comp and i'm having trouble seeing a harddrive connected to the promise controller on my motherboard. It's the asus k8v motherboard, and it has the 20378 raid controller. In the bios I have the raid function disabled and I'm running it as a normal IDE/SATA controller. Ideas??

----------

## taskara

did you compile support for the promise controller in your 2.6 kernel? and NOT as a module?

----------

## sneakyme66

yes, I compiled in both Promise ATA drivers that showed up in the 2.6 kernel

----------

## taskara

oh, lol.. did you look at /dev/sda ?

and can u post dmesg?

----------

## sneakyme66

here's dmesg, and /dev/sda doesn't seem to exist. I'm fresh out of ideas :-/

morrowr root # dmesg

Bootdata ok (command line is root=/dev/hdb5)

Linux version 2.6.0-sneakys (root@morrowr) (gcc version 3.3.2 20031022 (Gentoo Linux 3.3.2-r2, propolice)) #8 SMP Thu Jan 1 19:00:11 EST 2004

BIOS-provided physical RAM map:

 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)

 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)

 BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)

 BIOS-e820: 0000000000100000 - 000000001ff30000 (usable)

 BIOS-e820: 000000001ff30000 - 000000001ff40000 (ACPI data)

 BIOS-e820: 000000001ff40000 - 000000001fff0000 (ACPI NVS)

 BIOS-e820: 000000001fff0000 - 0000000020000000 (reserved)

 BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved)

Scanning NUMA topology in Northbridge 24

Node 0 MemBase 0000000000000000 Limit 000000001ff30000

Using node hash shift of 24

Bootmem setup node 0 0000000000000000-000000001ff30000

found SMP MP-table at 000ff780

hm, page 000ff000 reserved twice.

hm, page 00100000 reserved twice.

hm, page 000e0000 reserved twice.

hm, page 000e1000 reserved twice.

setting up node 0 0-1ff30

On node 0 totalpages: 130864

  DMA zone: 4096 pages, LIFO batch:1

  Normal zone: 126768 pages, LIFO batch:16

  HighMem zone: 0 pages, LIFO batch:1

Intel MultiProcessor Specification v1.4

    Virtual Wire compatibility mode.

OEM ID: ASUSTeK  <6>Product ID: K8V000000000 <6>APIC at: 0xFEE00000

Processor #0 15:4 APIC version 16

I/O APIC #2 Version 3 at 0xFEC00000.

Processors: 1

Checking aperture...

CPU 0: aperture @ d0000000 size 64 MB

Building zonelist for node : 0

Kernel command line: root=/dev/hdb5 console=tty0

Initializing CPU#0

PID hash table entries: 16 (order 4: 256 bytes)

time.c: Using 1.193182 MHz PIT timer.

time.c: Detected 2010.143 MHz processor.

Console: colour VGA+ 80x25

Memory: 507392k/523456k available (2958k kernel code, 0k reserved, 1058k data, 176k init)

Calibrating delay loop... 3940.35 BogoMIPS

Dentry cache hash table entries: 65536 (order: 7, 524288 bytes)

Inode-cache hash table entries: 32768 (order: 6, 262144 bytes)

Mount-cache hash table entries: 256 (order: 0, 4096 bytes)

CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)

CPU: L2 Cache: 512K (64 bytes/line)

POSIX conformance testing by UNIFIX

CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)

CPU: L2 Cache: 512K (64 bytes/line)

CPU0: AMD Athlon(tm) 64 Processor 3000+ stepping 08

per-CPU timeslice cutoff: 512.02 usecs.

task migration cache decay timeout: 1 msecs.

watchdog: setting K7_PERFCTR0 to ffe15470

Only one processor found.

ENABLING IO-APIC IRQs

Using IO-APIC 2

...changing IO-APIC physical APIC ID to 2 ... ok.

init IO_APIC IRQs

 IO-APIC (apicid-pin) 2-0, 2-19, 2-23 not connected.

..TIMER: vector=0x31 pin1=2 pin2=0

number of MP IRQ sources: 25.

number of IO-APIC #2 registers: 24.

testing the IO APIC.......................

IO APIC #2......

.... register #00: 02000000

.......    : physical APIC id: 02

.... register #01: 00178003

.......     : max redirection entries: 0017

.......     : PRQ implemented: 1

.......     : IO APIC version: 0003

.... IRQ redirection table:

 NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:

 00 000 00  1    0    0   0   0    0    0    00

 01 001 01  0    0    0   0   0    1    1    39

 02 001 01  0    0    0   0   0    1    1    31

 03 001 01  0    0    0   0   0    1    1    41

 04 001 01  0    0    0   0   0    1    1    49

 05 001 01  0    0    0   0   0    1    1    51

 06 001 01  0    0    0   0   0    1    1    59

 07 001 01  0    0    0   0   0    1    1    61

 08 001 01  0    0    0   0   0    1    1    69

 09 001 01  0    0    0   0   0    1    1    71

 0a 001 01  0    0    0   0   0    1    1    79

 0b 001 01  0    0    0   0   0    1    1    81

 0c 001 01  0    0    0   0   0    1    1    89

 0d 001 01  0    0    0   0   0    1    1    91

 0e 001 01  0    0    0   0   0    1    1    99

 0f 001 01  0    0    0   0   0    1    1    A1

 10 001 01  1    1    0   1   0    1    1    A9

 11 001 01  1    1    0   1   0    1    1    B1

 12 001 01  1    1    0   1   0    1    1    B9

 13 000 00  1    0    0   0   0    0    0    00

 14 001 01  1    1    0   1   0    1    1    C1

 15 001 01  1    1    0   1   0    1    1    C9

 16 001 01  1    1    0   1   0    1    1    D1

 17 000 00  1    0    0   0   0    0    0    00

IRQ to pin mappings:

IRQ0 -> 0:2

IRQ1 -> 0:1

IRQ3 -> 0:3

IRQ4 -> 0:4

IRQ5 -> 0:5

IRQ6 -> 0:6

IRQ7 -> 0:7

IRQ8 -> 0:8

IRQ9 -> 0:9

IRQ10 -> 0:10

IRQ11 -> 0:11

IRQ12 -> 0:12

IRQ13 -> 0:13

IRQ14 -> 0:14

IRQ15 -> 0:15

IRQ16 -> 0:16

IRQ17 -> 0:17

IRQ18 -> 0:18

IRQ20 -> 0:20

IRQ21 -> 0:21

IRQ22 -> 0:22

.................................... done.

Using local APIC timer interrupts.

Detected 12.563 MHz APIC timer.

time.c: Using PIT/TSC based timekeeping.

Starting migration thread for cpu 0

CPUS done 8

NET: Registered protocol family 16

PCI: Using configuration type 1

mtrr: v2.0 (20020519)

SCSI subsystem initialized

drivers/usb/core/usb.c: registered new driver usbfs

drivers/usb/core/usb.c: registered new driver hub

PCI: Probing PCI hardware

PCI: Probing PCI hardware (bus 00)

PCI: Using IRQ router default [1106/3227] at 0000:00:11.0

PCI->APIC IRQ transform: (B0,I7,P0) -> 16

PCI->APIC IRQ transform: (B0,I8,P0) -> 18

PCI->APIC IRQ transform: (B0,I10,P0) -> 17

PCI->APIC IRQ transform: (B0,I15,P1) -> 20

PCI->APIC IRQ transform: (B0,I15,P0) -> 20

PCI->APIC IRQ transform: (B0,I16,P0) -> 21

PCI->APIC IRQ transform: (B0,I16,P0) -> 21

PCI->APIC IRQ transform: (B0,I16,P1) -> 21

PCI->APIC IRQ transform: (B0,I16,P1) -> 21

PCI->APIC IRQ transform: (B0,I16,P2) -> 21

PCI->APIC IRQ transform: (B0,I17,P2) -> 22

PCI->APIC IRQ transform: (B1,I0,P0) -> 16

agpgart: Detected AGP bridge 0

agpgart: Maximum main memory to use for agp memory: 439M

agpgart: AGP aperture is 64M @ 0xd0000000

PCI-DMA: Disabling IOMMU.

powernow-k8: version 1.00.08 - September 26, 2003

powernow-k8: Found AMD Athlon 64 / Opteron processor supporting p-state transitions

powernow-k8: BIOS error: PSB table is not v1.4

Total HugeTLB memory allocated, 0

IA32 emulation $Id: sys_ia32.c,v 1.32 2002/03/24 13:02:28 ak Exp $

ikconfig 0.7 with /proc/config*

devfs: v1.22 (20021013) Richard Gooch (rgooch@atnf.csiro.au)

devfs: boot_options: 0x1

Installing knfsd (copyright (C) 1996 okir@monad.swb.de).

NTFS driver 2.1.5 [Flags: R/W DEBUG].

udf: registering filesystem

PCI: Via IRQ fixup for 0000:00:10.0, from 11 to 5

PCI: Via IRQ fixup for 0000:00:10.1, from 11 to 5

PCI: Via IRQ fixup for 0000:00:10.2, from 10 to 5

PCI: Via IRQ fixup for 0000:00:10.3, from 10 to 5

pty: 256 Unix98 ptys configured

Real Time Clock Driver v1.12

Linux agpgart interface v0.100 (c) Dave Jones

Hangcheck: starting hangcheck timer 0.5.0 (tick is 180 seconds, margin is 60 seconds).

Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing disabled

ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

parport0: PC-style at 0x378 [PCSPP(,...)]

Using anticipatory io scheduler

Floppy drive(s): fd0 is 1.44M

FDC 0 is a post-1991 82077

RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize

loop: loaded (max 8 devices)

sk98lin: Network Device Driver v6.18

(C)Copyright 1999-2003 Marvell(R).

eth%d: 3Com Gigabit LOM (3C940)

      PrefPort:A  RlmtMode:Check Link State

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

VP_IDE: IDE controller at PCI slot 0000:00:0f.1

VP_IDE: chipset revision 6

VP_IDE: not 100% native mode: will probe irqs later

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

VP_IDE: VIA vt8237 (rev 00) IDE UDMA133 controller on pci0000:00:0f.1

    ide0: BM-DMA at 0xfc00-0xfc07, BIOS settings: hda:DMA, hdb:DMA

    ide1: BM-DMA at 0xfc08-0xfc0f, BIOS settings: hdc:DMA, hdd:DMA

hda: Maxtor 6Y120P0, ATA DISK drive

hdb: WDC WD1200JB-75CRA0, ATA DISK drive

ide0 at 0x1f0-0x1f7,0x3f6 on irq 14

hdc: LITE-ON DVDRW LDW-411S, ATAPI CD/DVD-ROM drive

hdd: 48X12, ATAPI CD/DVD-ROM drive

ide1 at 0x170-0x177,0x376 on irq 15

hda: max request size: 128KiB

hda: 240121728 sectors (122942 MB) w/7936KiB Cache, CHS=65535/16/63, UDMA(133)

 /dev/ide/host0/bus0/target0/lun0: p1 < p5 > p2 p3

hdb: max request size: 128KiB

hdb: Host Protected Area detected.

        current capacity is 234375000 sectors (120000 MB)

        native  capacity is 234375120 sectors (120000 MB)

hdb: 234375000 sectors (120000 MB) w/8192KiB Cache, CHS=65535/16/63, UDMA(100)

 /dev/ide/host0/bus0/target1/lun0: p1 p2 p3 p4 < p5 >

hdc: ATAPI 40X DVD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)

Uniform CD-ROM driver Revision: 3.12

hdd: ATAPI 48X CD-ROM CD-R/RW drive, 2048kB Cache, DMA

ide-floppy driver 0.99.newide

Fusion MPT base driver 2.05.00.03

Copyright (c) 1999-2002 LSI Logic Corporation

mptbase: 0 MPT adapters found, 0 installed.

Fusion MPT SCSI Host driver 2.05.00.03

ohci1394: $Rev$ Ben Collins <bcollins@debian.org>

ohci1394: fw-host0: OHCI-1394 1.0 (PCI): IRQ=[16]  MMIO=[cfa00000-cfa007ff]  Max Packet=[2048]

ehci_hcd 0000:00:10.4: EHCI Host Controller

ehci_hcd 0000:00:10.4: irq 21, pci mem ffffff0000031000

ehci_hcd 0000:00:10.4: new USB bus registered, assigned bus number 1

ehci_hcd 0000:00:10.4: USB 2.0 enabled, EHCI 1.00, driver 2003-Jun-13

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 8 ports detected

ohci_hcd: 2003 Oct 13 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)

ohci_hcd: block sizes: ed 80 td 96

drivers/usb/host/uhci-hcd.c: USB Universal Host Controller Interface driver v2.1uhci_hcd 0000:00:10.0: UHCI Host Controller

uhci_hcd 0000:00:10.0: irq 21, io base 000000000000b400

uhci_hcd 0000:00:10.0: new USB bus registered, assigned bus number 2

hub 2-0:1.0: USB hub found

hub 2-0:1.0: 2 ports detected

uhci_hcd 0000:00:10.1: UHCI Host Controller

uhci_hcd 0000:00:10.1: irq 21, io base 000000000000b800

uhci_hcd 0000:00:10.1: new USB bus registered, assigned bus number 3

hub 3-0:1.0: USB hub found

hub 3-0:1.0: 2 ports detected

uhci_hcd 0000:00:10.2: UHCI Host Controller

uhci_hcd 0000:00:10.2: irq 21, io base 000000000000c000

uhci_hcd 0000:00:10.2: new USB bus registered, assigned bus number 4

hub 4-0:1.0: USB hub found

hub 4-0:1.0: 2 ports detected

uhci_hcd 0000:00:10.3: UHCI Host Controller

ieee1394: Host added: ID:BUS[0-00:1023]  GUID[00e0180000346cca]

uhci_hcd 0000:00:10.3: irq 21, io base 000000000000c400

uhci_hcd 0000:00:10.3: new USB bus registered, assigned bus number 5

hub 5-0:1.0: USB hub found

hub 5-0:1.0: 2 ports detected

drivers/usb/core/usb.c: registered new driver audio

drivers/usb/class/audio.c: v1.0.0:USB Audio Class driver

drivers/usb/core/usb.c: registered new driver usblp

drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver

Initializing USB Mass Storage driver...

drivers/usb/core/usb.c: registered new driver usb-storage

USB Mass Storage support registered.

drivers/usb/core/usb.c: registered new driver hiddev

drivers/usb/core/usb.c: registered new driver hid

drivers/usb/input/hid-core.c: v2.0:USB HID core driver

drivers/usb/core/usb.c: registered new driver tiglusb

drivers/usb/misc/tiglusb.c: TI-GRAPH LINK USB (aka SilverLink) driver, version 1.06

mice: PS/2 mouse device common for all mice

input: ImExPS/2 Logitech Explorer Mouse on isa0060/serio1

serio: i8042 AUX port at 0x60,0x64 irq 12

input: AT Translated Set 2 keyboard on isa0060/serio0

serio: i8042 KBD port at 0x60,0x64 irq 1

oprofile: using NMI interrupt.

NET: Registered protocol family 2

IP: routing cache hash table of 2048 buckets, 32Kbytes

TCP: Hash tables configured (established 16384 bind 16384)

NET: Registered protocol family 1

NET: Registered protocol family 17

EXT3-fs: INFO: recovery required on readonly filesystem.

EXT3-fs: write access will be enabled during recovery.

kjournald starting.  Commit interval 5 seconds

EXT3-fs: recovery complete.

EXT3-fs: mounted filesystem with ordered data mode.

VFS: Mounted root (ext3 filesystem) readonly.

Mounted devfs on /dev

Freeing unused kernel memory: 176k freed

Adding 996020k swap on /dev/hdb3.  Priority:-1 extents:1

EXT3 FS on hdb5, internal journal

nvidia: module license 'NVIDIA' taints kernel.

0: nvidia: loading NVIDIA Linux x86_64 nvidia.o Kernel Module  1.0-4499  Wed Sep 17 17:03:05 PDT 2003

NTFS volume version 3.1.

NTFS volume version 3.1.

NTFS volume version 3.1.

PCI: Setting latency timer of device 0000:00:11.5 to 64

codec_read: codec 0 is not valid [0xfe0000]

codec_read: codec 0 is not valid [0xfe0000]

codec_read: codec 0 is not valid [0xfe0000]

codec_read: codec 0 is not valid [0xfe0000]

ip_tables: (C) 2000-2002 Netfilter core team

ip_conntrack version 2.1 (2044 buckets, 16352 max) - 448 bytes per conntrack

eth0: network connection up using port A

    speed:           100

    autonegotiation: yes

    duplex mode:     full

    flowctrl:        symmetric

    irq moderation:  disabled

    scatter-gather:  enabled

agpgart: Found an AGP 3.5 compliant device at 0000:00:00.0.

agpgart: Device is in legacy mode, falling back to 2.x

agpgart: Putting AGP V2 device at 0000:00:00.0 into 4x mode

agpgart: Putting AGP V2 device at 0000:01:00.0 into 4x mode

----------

## taskara

hmm...

u mounted /boot before you copied over your new bzImage?

does the kernel promise driver actually support your 20378?

what does 

```
cat /proc/pci |grep promise
```

 reveal?

----------

## sneakyme66

Yes I mounted my boot partition before copying over the new BzImage

To be honest in the 2.6.0 kernel the Promise support is all for PDC202xx and I don't think this will work with my onboard 203 controller.

morrowr root # cat /proc/pci |grep promise

cat: /proc/pci: No such file or directory

morrowr root #

Why would I check the /proc/pci area if it is on my motherboard?

----------

## taskara

ahh well there you are

kernel supports 202xx and you have 203xx.. so it won't work

and yes, /proc/pci, because even though it may be a "chip on the mainboard" it is still accessed through the pci bus.

ie: here is my onboard network "chip"

```
server root # cat /proc/pci |grep 3Com

    Ethernet controller: 3Com Corporation 3c905C-TX/TX-M [Tornado] (rev 120).

```

----------

## taskara

hang on.. sata promise should be under scsi in 2.6 kernel, NOT ata.

scsi low-level drivers

sata

promise sata support

----------

## sneakyme66

ok here we go, this is all halfway confusing to me because the actual controller is a SATA and IDE raid controller but in bios it can be enabled as a simple ide/sata controller. I found the scsi drivers for promise where you stated and enabled them and recompiled, I just booted and still cannot seem to find the harddrive connected to the 3rd IDE port on the motherboard. 

Here's an updated dmesg, it seems that it has now recognized the existence of the extra SATA and IDE ports on the mobo.

morrowr root # dmesg

Bootdata ok (command line is root=/dev/hdb5)

Linux version 2.6.0-sneakys (root@morrowr) (gcc version 3.3.2 20031022 (Gentoo Linux 3.3.2-r2, propolice)) #9 SMP Sat Jan 3 23:09:27 EST 2004

BIOS-provided physical RAM map:

 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)

 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)

 BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)

 BIOS-e820: 0000000000100000 - 000000001ff30000 (usable)

 BIOS-e820: 000000001ff30000 - 000000001ff40000 (ACPI data)

 BIOS-e820: 000000001ff40000 - 000000001fff0000 (ACPI NVS)

 BIOS-e820: 000000001fff0000 - 0000000020000000 (reserved)

 BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved)

Scanning NUMA topology in Northbridge 24

Node 0 MemBase 0000000000000000 Limit 000000001ff30000

Using node hash shift of 24

Bootmem setup node 0 0000000000000000-000000001ff30000

found SMP MP-table at 000ff780

hm, page 000ff000 reserved twice.

hm, page 00100000 reserved twice.

hm, page 000e0000 reserved twice.

hm, page 000e1000 reserved twice.

setting up node 0 0-1ff30

On node 0 totalpages: 130864

  DMA zone: 4096 pages, LIFO batch:1

  Normal zone: 126768 pages, LIFO batch:16

  HighMem zone: 0 pages, LIFO batch:1

Intel MultiProcessor Specification v1.4

    Virtual Wire compatibility mode.

OEM ID: ASUSTeK  <6>Product ID: K8V000000000 <6>APIC at: 0xFEE00000

Processor #0 15:4 APIC version 16

I/O APIC #2 Version 3 at 0xFEC00000.

Processors: 1

Checking aperture...

CPU 0: aperture @ d0000000 size 64 MB

Building zonelist for node : 0

Kernel command line: root=/dev/hdb5 console=tty0

Initializing CPU#0

PID hash table entries: 16 (order 4: 256 bytes)

time.c: Using 1.193182 MHz PIT timer.

time.c: Detected 2010.143 MHz processor.

Console: colour VGA+ 80x25

Memory: 507352k/523456k available (2988k kernel code, 0k reserved, 1067k data, 176k init)

Calibrating delay loop... 3940.35 BogoMIPS

Dentry cache hash table entries: 65536 (order: 7, 524288 bytes)

Inode-cache hash table entries: 32768 (order: 6, 262144 bytes)

Mount-cache hash table entries: 256 (order: 0, 4096 bytes)

CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)

CPU: L2 Cache: 512K (64 bytes/line)

POSIX conformance testing by UNIFIX

CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)

CPU: L2 Cache: 512K (64 bytes/line)

CPU0: AMD Athlon(tm) 64 Processor 3000+ stepping 08

per-CPU timeslice cutoff: 512.02 usecs.

task migration cache decay timeout: 1 msecs.

watchdog: setting K7_PERFCTR0 to ffe15470

Only one processor found.

ENABLING IO-APIC IRQs

Using IO-APIC 2

...changing IO-APIC physical APIC ID to 2 ... ok.

init IO_APIC IRQs

 IO-APIC (apicid-pin) 2-0, 2-19, 2-23 not connected.

..TIMER: vector=0x31 pin1=2 pin2=0

number of MP IRQ sources: 25.

number of IO-APIC #2 registers: 24.

testing the IO APIC.......................

IO APIC #2......

.... register #00: 02000000

.......    : physical APIC id: 02

.... register #01: 00178003

.......     : max redirection entries: 0017

.......     : PRQ implemented: 1

.......     : IO APIC version: 0003

.... IRQ redirection table:

 NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:

 00 000 00  1    0    0   0   0    0    0    00

 01 001 01  0    0    0   0   0    1    1    39

 02 001 01  0    0    0   0   0    1    1    31

 03 001 01  0    0    0   0   0    1    1    41

 04 001 01  0    0    0   0   0    1    1    49

 05 001 01  0    0    0   0   0    1    1    51

 06 001 01  0    0    0   0   0    1    1    59

 07 001 01  0    0    0   0   0    1    1    61

 08 001 01  0    0    0   0   0    1    1    69

 09 001 01  0    0    0   0   0    1    1    71

 0a 001 01  0    0    0   0   0    1    1    79

 0b 001 01  0    0    0   0   0    1    1    81

 0c 001 01  0    0    0   0   0    1    1    89

 0d 001 01  0    0    0   0   0    1    1    91

 0e 001 01  0    0    0   0   0    1    1    99

 0f 001 01  0    0    0   0   0    1    1    A1

 10 001 01  1    1    0   1   0    1    1    A9

 11 001 01  1    1    0   1   0    1    1    B1

 12 001 01  1    1    0   1   0    1    1    B9

 13 000 00  1    0    0   0   0    0    0    00

 14 001 01  1    1    0   1   0    1    1    C1

 15 001 01  1    1    0   1   0    1    1    C9

 16 001 01  1    1    0   1   0    1    1    D1

 17 000 00  1    0    0   0   0    0    0    00

IRQ to pin mappings:

IRQ0 -> 0:2

IRQ1 -> 0:1

IRQ3 -> 0:3

IRQ4 -> 0:4

IRQ5 -> 0:5

IRQ6 -> 0:6

IRQ7 -> 0:7

IRQ8 -> 0:8

IRQ9 -> 0:9

IRQ10 -> 0:10

IRQ11 -> 0:11

IRQ12 -> 0:12

IRQ13 -> 0:13

IRQ14 -> 0:14

IRQ15 -> 0:15

IRQ16 -> 0:16

IRQ17 -> 0:17

IRQ18 -> 0:18

IRQ20 -> 0:20

IRQ21 -> 0:21

IRQ22 -> 0:22

.................................... done.

Using local APIC timer interrupts.

Detected 12.563 MHz APIC timer.

time.c: Using PIT/TSC based timekeeping.

Starting migration thread for cpu 0

CPUS done 8

NET: Registered protocol family 16

PCI: Using configuration type 1

mtrr: v2.0 (20020519)

SCSI subsystem initialized

drivers/usb/core/usb.c: registered new driver usbfs

drivers/usb/core/usb.c: registered new driver hub

PCI: Probing PCI hardware

PCI: Probing PCI hardware (bus 00)

PCI: Using IRQ router default [1106/3227] at 0000:00:11.0

PCI->APIC IRQ transform: (B0,I7,P0) -> 16

PCI->APIC IRQ transform: (B0,I8,P0) -> 18

PCI->APIC IRQ transform: (B0,I10,P0) -> 17

PCI->APIC IRQ transform: (B0,I15,P1) -> 20

PCI->APIC IRQ transform: (B0,I15,P0) -> 20

PCI->APIC IRQ transform: (B0,I16,P0) -> 21

PCI->APIC IRQ transform: (B0,I16,P0) -> 21

PCI->APIC IRQ transform: (B0,I16,P1) -> 21

PCI->APIC IRQ transform: (B0,I16,P1) -> 21

PCI->APIC IRQ transform: (B0,I16,P2) -> 21

PCI->APIC IRQ transform: (B0,I17,P2) -> 22

PCI->APIC IRQ transform: (B1,I0,P0) -> 16

agpgart: Detected AGP bridge 0

agpgart: Maximum main memory to use for agp memory: 439M

agpgart: AGP aperture is 64M @ 0xd0000000

PCI-DMA: Disabling IOMMU.

powernow-k8: version 1.00.08 - September 26, 2003

powernow-k8: Found AMD Athlon 64 / Opteron processor supporting p-state transitions

powernow-k8: BIOS error: PSB table is not v1.4

Total HugeTLB memory allocated, 0

IA32 emulation $Id: sys_ia32.c,v 1.32 2002/03/24 13:02:28 ak Exp $

ikconfig 0.7 with /proc/config*

devfs: v1.22 (20021013) Richard Gooch (rgooch@atnf.csiro.au)

devfs: boot_options: 0x1

Installing knfsd (copyright (C) 1996 okir@monad.swb.de).

NTFS driver 2.1.5 [Flags: R/W DEBUG].

udf: registering filesystem

PCI: Via IRQ fixup for 0000:00:10.0, from 11 to 5

PCI: Via IRQ fixup for 0000:00:10.1, from 11 to 5

PCI: Via IRQ fixup for 0000:00:10.2, from 10 to 5

PCI: Via IRQ fixup for 0000:00:10.3, from 10 to 5

pty: 256 Unix98 ptys configured

Real Time Clock Driver v1.12

Linux agpgart interface v0.100 (c) Dave Jones

Hangcheck: starting hangcheck timer 0.5.0 (tick is 180 seconds, margin is 60 seconds).

Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing disabled

ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

parport0: PC-style at 0x378 [PCSPP(,...)]

Using anticipatory io scheduler

Floppy drive(s): fd0 is 1.44M

FDC 0 is a post-1991 82077

RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize

loop: loaded (max 8 devices)

sk98lin: Network Device Driver v6.18

(C)Copyright 1999-2003 Marvell(R).

eth%d: 3Com Gigabit LOM (3C940)

      PrefPort:A  RlmtMode:Check Link State

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

VP_IDE: IDE controller at PCI slot 0000:00:0f.1

VP_IDE: chipset revision 6

VP_IDE: not 100% native mode: will probe irqs later

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

VP_IDE: VIA vt8237 (rev 00) IDE UDMA133 controller on pci0000:00:0f.1

    ide0: BM-DMA at 0xfc00-0xfc07, BIOS settings: hda:DMA, hdb:DMA

    ide1: BM-DMA at 0xfc08-0xfc0f, BIOS settings: hdc:DMA, hdd:DMA

hda: Maxtor 6Y120P0, ATA DISK drive

hdb: WDC WD1200JB-75CRA0, ATA DISK drive

ide0 at 0x1f0-0x1f7,0x3f6 on irq 14

hdc: LITE-ON DVDRW LDW-411S, ATAPI CD/DVD-ROM drive

hdd: 48X12, ATAPI CD/DVD-ROM drive

ide1 at 0x170-0x177,0x376 on irq 15

hda: max request size: 128KiB

hda: 240121728 sectors (122942 MB) w/7936KiB Cache, CHS=65535/16/63, UDMA(133)

 /dev/ide/host0/bus0/target0/lun0: p1 < p5 > p2 p3

hdb: max request size: 128KiB

hdb: Host Protected Area detected.

        current capacity is 234375000 sectors (120000 MB)

        native  capacity is 234375120 sectors (120000 MB)

hdb: 234375000 sectors (120000 MB) w/8192KiB Cache, CHS=65535/16/63, UDMA(100)

 /dev/ide/host0/bus0/target1/lun0: p1 p2 p3 p4 < p5 >

hdc: ATAPI 40X DVD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)

Uniform CD-ROM driver Revision: 3.12

hdd: ATAPI 48X CD-ROM CD-R/RW drive, 2048kB Cache, DMA

ide-floppy driver 0.99.newide

libata version 0.81 loaded.

sata_promise version 0.87

ata1: SATA max UDMA/133 cmd 0xFFFFFF000002F200 ctl 0xFFFFFF000002F238 bmdma 0x0 irq 18

ata2: SATA max UDMA/133 cmd 0xFFFFFF000002F280 ctl 0xFFFFFF000002F2B8 bmdma 0x0 irq 18

ata1: no device found (phy stat 00000000)

ata1: thread exiting

scsi0 : sata_promise

ata2: no device found (phy stat 00000000)

ata2: thread exiting

scsi1 : sata_promise

Fusion MPT base driver 2.05.00.03

Copyright (c) 1999-2002 LSI Logic Corporation

mptbase: 0 MPT adapters found, 0 installed.

Fusion MPT SCSI Host driver 2.05.00.03

ohci1394: $Rev$ Ben Collins <bcollins@debian.org>

ohci1394: fw-host0: OHCI-1394 1.0 (PCI): IRQ=[16]  MMIO=[cfa00000-cfa007ff]  Max Packet=[2048]

ehci_hcd 0000:00:10.4: EHCI Host Controller

ehci_hcd 0000:00:10.4: irq 21, pci mem ffffff0000033000

ehci_hcd 0000:00:10.4: new USB bus registered, assigned bus number 1

ehci_hcd 0000:00:10.4: USB 2.0 enabled, EHCI 1.00, driver 2003-Jun-13

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 8 ports detected

ohci_hcd: 2003 Oct 13 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)

ohci_hcd: block sizes: ed 80 td 96

drivers/usb/host/uhci-hcd.c: USB Universal Host Controller Interface driver v2.1uhci_hcd 0000:00:10.0: UHCI Host Controller

uhci_hcd 0000:00:10.0: irq 21, io base 000000000000b400

uhci_hcd 0000:00:10.0: new USB bus registered, assigned bus number 2

hub 2-0:1.0: USB hub found

hub 2-0:1.0: 2 ports detected

uhci_hcd 0000:00:10.1: UHCI Host Controller

uhci_hcd 0000:00:10.1: irq 21, io base 000000000000b800

uhci_hcd 0000:00:10.1: new USB bus registered, assigned bus number 3

hub 3-0:1.0: USB hub found

hub 3-0:1.0: 2 ports detected

uhci_hcd 0000:00:10.2: UHCI Host Controller

uhci_hcd 0000:00:10.2: irq 21, io base 000000000000c000

uhci_hcd 0000:00:10.2: new USB bus registered, assigned bus number 4

hub 4-0:1.0: USB hub found

hub 4-0:1.0: 2 ports detected

uhci_hcd 0000:00:10.3: UHCI Host Controller

ieee1394: Host added: ID:BUS[0-00:1023]  GUID[00e0180000346cca]

uhci_hcd 0000:00:10.3: irq 21, io base 000000000000c400

uhci_hcd 0000:00:10.3: new USB bus registered, assigned bus number 5

hub 5-0:1.0: USB hub found

hub 5-0:1.0: 2 ports detected

drivers/usb/core/usb.c: registered new driver audio

drivers/usb/class/audio.c: v1.0.0:USB Audio Class driver

drivers/usb/core/usb.c: registered new driver usblp

drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver

Initializing USB Mass Storage driver...

drivers/usb/core/usb.c: registered new driver usb-storage

USB Mass Storage support registered.

drivers/usb/core/usb.c: registered new driver hiddev

drivers/usb/core/usb.c: registered new driver hid

drivers/usb/input/hid-core.c: v2.0:USB HID core driver

drivers/usb/core/usb.c: registered new driver tiglusb

drivers/usb/misc/tiglusb.c: TI-GRAPH LINK USB (aka SilverLink) driver, version 1.06

mice: PS/2 mouse device common for all mice

input: ImExPS/2 Logitech Explorer Mouse on isa0060/serio1

serio: i8042 AUX port at 0x60,0x64 irq 12

input: AT Translated Set 2 keyboard on isa0060/serio0

serio: i8042 KBD port at 0x60,0x64 irq 1

oprofile: using NMI interrupt.

NET: Registered protocol family 2

IP: routing cache hash table of 2048 buckets, 32Kbytes

TCP: Hash tables configured (established 16384 bind 16384)

NET: Registered protocol family 1

NET: Registered protocol family 17

kjournald starting.  Commit interval 5 seconds

EXT3-fs: mounted filesystem with ordered data mode.

VFS: Mounted root (ext3 filesystem) readonly.

Mounted devfs on /dev

Freeing unused kernel memory: 176k freed

Adding 996020k swap on /dev/hdb3.  Priority:-1 extents:1

EXT3 FS on hdb5, internal journal

nvidia: module license 'NVIDIA' taints kernel.

0: nvidia: loading NVIDIA Linux x86_64 nvidia.o Kernel Module  1.0-4499  Wed Sep 17 17:03:05 PDT 2003

NTFS volume version 3.1.

NTFS volume version 3.1.

NTFS volume version 3.1.

PCI: Setting latency timer of device 0000:00:11.5 to 64

codec_read: codec 0 is not valid [0xfe0000]

codec_read: codec 0 is not valid [0xfe0000]

codec_read: codec 0 is not valid [0xfe0000]

codec_read: codec 0 is not valid [0xfe0000]

ip_tables: (C) 2000-2002 Netfilter core team

ip_conntrack version 2.1 (2044 buckets, 16352 max) - 448 bytes per conntrack

eth0: network connection up using port A

    speed:           100

    autonegotiation: yes

    duplex mode:     full

    flowctrl:        symmetric

    irq moderation:  disabled

    scatter-gather:  enabled

cdrom: open failed.

cdrom: open failed.

agpgart: Found an AGP 3.5 compliant device at 0000:00:00.0.

agpgart: Device is in legacy mode, falling back to 2.x

agpgart: Putting AGP V2 device at 0000:00:00.0 into 4x mode

agpgart: Putting AGP V2 device at 0000:01:00.0 into 4x mode[/quote]

----------

## taskara

hmm... looks like it can't see any hdd's connected to it.

the hdd is definately detected by the promise bios when you boot up?

----------

## sneakyme66

Yes, it is seen by the motherboad detection when i boot and also in Windows XP (dualboot).  I had to install a special driver in Windows, but I can definitely read the drive perfectly well.

----------

## taskara

hmm.. then all I can say is that I guess the 2.6 driver does not fully support the 20378 yet.

and unfortunately the promise driver (that this thread is about) only works in 2.4 and is only for fasttrak...

perhaps try posting in a new thread, see if anyone else has been able to get it to work..

soz  :Confused: 

----------

## sneakyme66

thanks anyway man

----------

## richba5tard

Does no-one have problems using the 2.6 kernel driver for the promise 376 sata (non raid) function?

My onboard promise 376 (chaintech nf2) sometimes works, but usually doesn't. It always dedects my sata disk nicely upon loading the kernel, but whenever I try to fdisk or mount the drive, the system *totaly* locks up. Hard reboot is the only solution. Maybe other people don't get this error because they are using non-native SATA disks (every sata drive exept seagate 7200.7 and maybe raptor 10k)? The Seagate 7200.7 is a native sata disk, which means it supports command tag queing and other nifty sata features, while other sata drives (like maxtor, samsung, hitachi, ...) are basicly a pata drive with a sata interface. Maybe the kernel driver locks up because a bad implementation of those extended sata features?

The odd part is sometimes does work, but very rarely. I hope a future update will fix this, because in the meanwhile I've got two useless SATA disks and I don't want to go back to wndows.

Does anyone know when Promise will release a driver that can compile against the 2.6 kernel?

Those who have the promise 376 working and use it as a boot disk, were you able to use grub? Grub doesn't dedect the scsi disks, but lilo does.

----------

## gthb

I'm experiencing total system freeze as well, but my system does manage to mount the disk, and manages to stay up for a random amount of time, typically a few hours or less. It seems like the hang occurs only during heavy disk activity (I'm doing lots of emerges), otherwise it stays up. The machine got through a gentoo-2004.0 install (without X) in a couple of tries.

I'm running an md (linux software raid) volume across two identical partitions on two SATA drives (10k raptors), under kernel gentoo-dev-sources-2.6.1, on an MSI K7N2 Delta-ILSR motherboard (nForce2 chipset, Promise 20376). No sound driver is compiled into the kernel, and no funky graphics card driver (not running X yet), so those potential culprits are out and I'm suspecting the sata_promise driver ... but am still trying to diagnose this.

Hardware failure seems unlikely; I've installed Win XP on another partition on one of the two SATA disks, and jostled it around a bit, without getting a hang.

Don't know anything about Promise's software releases -- I'm more interested in (and optimistic about) the fully-open-source driver getting stable (assuming the problem is there), and I'm sure those with amd64 and other architectures will agree :)

----------

## gthb

Seems like somebody already filed this in the kernel bug database:

http://bugme.osdl.org/show_bug.cgi?id=1888

----------

## richba5tard

 *gthb wrote:*   

> Seems like somebody already filed this in the kernel bug database:
> 
> http://bugme.osdl.org/show_bug.cgi?id=1888

 

The bug report describes the problem with a silicon image 3112 chip, not Promise 20376 chop.

It's annoying to have such fine hardware but not being able to use it. : /

----------

## guitard00d

 *taskara wrote:*   

> if it worked above, then when you reboot it will load the proper modules and your raid array should be visible again.
> 
> but like I said - I don't have a promise card to try it on anymore.. so I'm just going off the readme.. good luck!

 

I've been messing with this for quite a while today and even though in theory it should work, in reality it doesn't. The reason it doesn't work is because the ft3xx.o driver isn't compiled into the kernel, so there is no way for the system to mount any of the partitions on the RAID array. So long as the driver has to be loaded via insmod, you're screwed because /dev/sda doesn't exist until the driver is loaded.

I'm not a kernel compiling expert, so I don't know if it's possible to compile this driver into the kernel. Is that possible in any way?

----------

## gthb

I got around my hang a few days ago (sorry I forgot to post my workaround here!) ... it turned out that the promise controller was innocent of it (mostly); apparently it was an IRQ timing issue with my nforce2 motherboard chipset, and is solved (in case your chipset is nforce2 too) by applying the two diffs published there:

http://lkml.org/lkml/2003/12/21/7

to your kernel sources, and setting the boot parameter as mentioned in that post. After that, my system is running completely stable.

The closed-source driver cannot be compiled into a kernel, no. The way to use it would be to install an initrd (initial ramdisk), which is mounted at boot time and contains your module, enabling the kernel to mount the root partition. I'm not too knowledgeable about initrd setup (never done it), and would definitely recommend forgetting about ft3xx.o and instead using a 2.6 kernel, with the sata_promise driver compiled in; it is simpler to set up (that's good especially if you're new to kernel stuff) and avoids tainting your kernel with closed-source code whose future maintenance is not certain.

    - Gulli

----------

## taskara

 *gthb wrote:*   

> I got around my hang a few days ago (sorry I forgot to post my workaround here!) ... it turned out that the promise controller was innocent of it (mostly); apparently it was an IRQ timing issue with my nforce2 motherboard chipset, and is solved (in case your chipset is nforce2 too) by applying the two diffs published there:
> 
> http://lkml.org/lkml/2003/12/21/7
> 
> to your kernel sources, and setting the boot parameter as mentioned in that post. After that, my system is running completely stable.
> ...

 

yes, but 2.6 has no support for promise "hardware" raid, which is what this driver is for..

----------

## guitard00d

 *taskara wrote:*   

>  *gthb wrote:*   The closed-source driver cannot be compiled into a kernel, no. The way to use it would be to install an initrd (initial ramdisk), which is mounted at boot time and contains your module, enabling the kernel to mount the root partition. I'm not too knowledgeable about initrd setup (never done it), and would definitely recommend forgetting about ft3xx.o and instead using a 2.6 kernel, with the sata_promise driver compiled in; it is simpler to set up (that's good especially if you're new to kernel stuff) and avoids tainting your kernel with closed-source code whose future maintenance is not certain.
> 
>     - Gulli 
> 
> yes, but 2.6 has no support for promise "hardware" raid, which is what this driver is for..

 

These Promise cards are just a waste of time, I'm just going to buy a 3ware card. I talked to the people at 3ware and they said that the Linux 2.4 kernels will see their SATA RAID cards just fine. Looks like Promise just isn't ready for the non-Windows world, which is probably a blessing. The last time I ever dealt with Promise was back when I had a 486 and one of their VLB IDE controllers. Same bunch of headaches back then, looks like nothing ever changes with them.

----------

## taskara

I agree 3Ware is the way to go.

you can get an opensource driver from them too for the newer products.

not sure if it works automatically with livecds..  :Confused: 

----------

