Trying to install SATA hard drive in AmigaOne

A forum for AmigaOne XE and MicroA1-C specific issues.
User avatar
daveyw
Posts: 252
Joined: Mon Sep 12, 2011 7:44 pm

Trying to install SATA hard drive in AmigaOne

Post by daveyw »

Hi,

I'm trying to install a SATA drive in my A1, with an aim to making it bootable but for now trying to get it up and running.

Initially, all went well. I physically installed it and booted up. Went into media toolbox, sii3114.ide and the drive showed up fine. I installed an SLB, then created a single 2 GB SFS/02 partition, made it bootable and gave it a boot prioity of 1. (I have two bootable partitions on my PATA HD, the main one is 2 and a back-up is 1).

I rebooted, the new partition came up fine, did a quick format and copied my main Workbench partition across.

I ran SmartCTL on the new drive to verify all was OK, and it was.

All fine so far.

Next I wanted to test booting off it. In UBoot, under IDE Ports/ SATA (3114), I set "Active bus to scanning" to "Both" and Unit 0 to "Hard Disk" and "UDMA 6". (This may've been the big mistake, because my drive was actually on Port 1).

Then I rebooted, and, in UBoot accessed the boot selector and tried to boot from Serial Disk.

The Second Level Booter failed. It reported there was a valid disk, but no SLB on the disk.

I rebooted again. My PATA drive booted up, but my SATA drive has disappeared altogether! The partition has gone, and sii3114.device no longer shows up in media toolbox.

I've put my UBoot settings back to "Active bus to scanning" to "Disabled" and all units to "Automatic" and "Best PIO".

However, no luck. The drive has disappeared.

My kicklayout hasn't changed.

Anyone have any ideas? Have I set a new record for destroying a brand new SATA drive?

Here's my Uboot variables:

Code: Select all

ide_doreset=on
ide_cd_timeout=30
menucmd=menu
bootdelay=5
ethact=3Com 3c920c#0
autostart=yes
bootcmd=menu;run menuboot_cmd
ide=psii
sii0680ide_irq=1111
bootdevice=0:1
boot_command=diskboot
sii0680ide_timeout=30
stdin=ps2kbd
sii3112ide_maxbus=0
a1ide_maxbus=0
baudrate=115200
sii0680ide_maxbus=2
video_activate=agp
serial1_address=3f8
serial2_address=2f8
parallel_mode=2
parallel_address=378
usb0_enable=on
usb1_enable=off
usb_use_header=0
ide_maxbus=0
ide_swap=0
ethaddr=00:09:D2:11:04:12
ipaddr=<unset>
serverip=<unset>
boot1=psii
boot3=
boot_config=Default
boota_timeout=5
boot_method=boota
menuboot_delay=5
os4_commandline=debuglevel=0
pci_irqa=9
pci_irqa_select=level
pci_irqb=10
pci_irqb_select=level
pci_irqc=11
pci_irqc_select=level
pci_irqd=7
pci_irqd_select=level
agp_enable=on
agp_sideband=off
agp_speed=2x
limit_memory=1024
use_memory_limit=no
boot2=psiicdrom
video_num=1
sii3512ide_maxbus=0
sii0680ide_conf=1120
stdout=vga
bootargs=root=/dev/hdaa video=radeonfb:1024x768-8@60 l2cr=0x80000000 hda=noprobe hdb=noprobe hdc=ide-scsi
menuboot_cmd=ide reset; boota; boota; boota
sii0680ide_xfer=FAEB
sii3114ide_conf= 1  
sii3114ide_maxbus=0
sii3114ide_xfer=0000
User avatar
tonyw
AmigaOS Core Developer
AmigaOS Core Developer
Posts: 1479
Joined: Wed Mar 09, 2011 1:36 pm
Location: Sydney, Australia

Re: Trying to install SATA hard drive in AmigaOne

Post by tonyw »

I would imagine that this is at least part of your problem:
sii3114ide_conf= 1
Since it does not have a valid digit for each drive, it is inhibiting mounting of (all of ?) them.

It should be a string of four digits, eg "1200". "1" represents an ATA HD and "2" an ATAPI drive like a CD or DVD. It looks like a bug in the Prefs/U-Boot program.

You can set this variable any one of these ways:
1) From the U-Boot prompt. Use the command "setenv sii3114ide_conf 1200" (or whatever), then "saveenv". Don't go into the menu if you can avoid it, because just running the menu editor in U-Boot will clear all your boot order variables (boot1, boot2, boot3).
2) Using the graphic "U-Boot Prefs". I don't like this app because it is old and does not support 4-port devices properly. It should say something better than "primary" for a 4-port device. it may be that you can't use this program for sii3114.
3) Use the Shell commands "nvgetvar" and "nvsetvar". These are just like the U-Boot commands "printenv" and "setenv" but easier to use.

You don't really *have* to have these variables (the device driver can work it out by itself) but if you do, you will have to work out where your drives are connected and then make up the 4-digit string for the variable. The easiest way to do that is to delete the variable altogether ("nvsetvar sii3114ide_conf") and reboot, then everything should reappear. Examine the list in MTB's window to see what is connected to which port.

One more thing: U-Boot will always load Kickstart modules from the first bootable partition that it finds. If you have a different partition with a higher priority set as your "Boot" partition, that other one will become "SYS:", but you will be running with Kickstart modules loaded from the first one. It's safer to turn off the "Bootable" flag on all partitions except the one that you want to boot from.
cheers
tony
User avatar
daveyw
Posts: 252
Joined: Mon Sep 12, 2011 7:44 pm

Re: Trying to install SATA hard drive in AmigaOne

Post by daveyw »

Thanks Tony, I set all 4 channels on the 3114 bus to "Hard drive" and my drive popped up. Then I disabled all the other channels. Does indeed look like a bug in UBoot prefs, I just assumed that "Automatic" doesn't work, but it looks like unless it's changed to another value, it doesn't actually write that digit to sii3114ide_conf=

However, from what I'm reading it looks like booting off a SATA 3114 isn't going to work. Found a 3112 on ebay (they're getting hard to find) for only $9, so I've ordered that. Fingers crossed.

I also found a dual 3112 & NEC USB PCI card, although it's a little more pricey ($60). I guess it would just be too good to be true it that worked... :mrgreen:
User avatar
daveyw
Posts: 252
Joined: Mon Sep 12, 2011 7:44 pm

Re: Trying to install SATA hard drive in AmigaOne

Post by daveyw »

I've now installed the 3112 card. However, with with the drive attached it doesn't appear in Workbench.

sii3112.device.kmod is enable in Kicklayout.

These are my uboot varaibles:

sii3112ide_maxbus=2
sii3112ide_conf=11
sii3112ide_irq=11
sii3112ide_xfer=AA

Ranger reports this:

Image

Does this mean the card is faulty or incompatible?
joerg
Posts: 371
Joined: Sat Mar 01, 2014 5:42 am

Re: Trying to install SATA hard drive in AmigaOne

Post by joerg »

daveyw wrote:Does this mean the card is faulty or incompatible?
It's either a sii3012 (does exists, but I don't know what it is exactly, siliconimage doesn't provide any information at all about their hardware any more without a NDA), a broken sii3112 (header type undefined, status parity error, no resource ranges) returning the wrong device ID, or even a broken sii3012.
User avatar
daveyw
Posts: 252
Joined: Mon Sep 12, 2011 7:44 pm

Re: Trying to install SATA hard drive in AmigaOne

Post by daveyw »

Thanks joerg. The chip is definitely labelled 3112.

I'll try and contact the seller for a refund.
User avatar
daveyw
Posts: 252
Joined: Mon Sep 12, 2011 7:44 pm

Re: Trying to install SATA hard drive in AmigaOne

Post by daveyw »

Well, I've tried a second 3112 card. This is actually an Addonics combo card USB & SATA: http://www.addonics.com/products/ad5u2sa.php

It is visible to uboot. However, upon boot-up, I found the drive very sluggish in I/O operations; it's much slower than an 0680. It reminds me alot of using Windows, the pointer feels like it drags across the screen when you move the mouse.

I'm assuming this is because it is a combo card? And it's using the PCI bridge?

Image

Image Image
User avatar
tonyw
AmigaOS Core Developer
AmigaOS Core Developer
Posts: 1479
Joined: Wed Mar 09, 2011 1:36 pm
Location: Sydney, Australia

Re: Trying to install SATA hard drive in AmigaOne

Post by tonyw »

I don't know what the sii3112ide_irq is meant to do: does it work without it? Leave it out if you can, it might be preventing use of interrupts.
The sii3112ide_xfer is not needed. it is merely a shortcut for the driver so that it does not have to interrogate the drive to get its maximum speed rating. You may be preventing it from operating at its best speed by giving it "AA". Leave it out altogether, let the driver talk to the drive to get the right value.

If you really want to speed up booting (and that's all that will be sped up), you can try successively higher values of "AA", up to "GG". Watch the debug output when booting, if it says "xxx not supported by drive, reducing to yyy", then back off one letter. I find that all my CD/DVD drives can only run at "F", while HDs are OK at "G".
cheers
tony
User avatar
daveyw
Posts: 252
Joined: Mon Sep 12, 2011 7:44 pm

Re: Trying to install SATA hard drive in AmigaOne

Post by daveyw »

Thanks Tony.

According to my information, sii3112ide_irq sets whether or not 3112ide.device will use interrupts, and it should be 11 for both on. I tried deleting it, but no effect.

I also tried deleting sii3112ide_xfer, but this appears to default to Best PIO, and it ran even slower.

I also tried shifting the card to a different slot, but no luck, it's still painfully slow.

I really hope this is just a consequence of the PCI - PCI bridge, and when I finally get a working 3112 card it won't be this slow.

Sigh, hopefully third time will be a charm...
User avatar
nbache
Beta Tester
Beta Tester
Posts: 1714
Joined: Mon Dec 20, 2010 7:25 pm
Location: Copenhagen, Denmark
Contact:

Re: Trying to install SATA hard drive in AmigaOne

Post by nbache »

daveyw wrote:I also tried deleting sii3112ide_xfer, but this appears to default to Best PIO, and it ran even slower.
I believe on an A1the lack of an *_xfer variable does this (makes the driver default to PIO) since the A1 is regarded as a platform without stable UDMA support. From the docs:

Code: Select all

  Default : if you don't set this envvar, sii3112ide will use the best UDMA mode
            supported by the drive. This is only true for hardware platforms
            with stable UDMA support otherwise the default is best PIO mode.
So on an A1 (or classic?), the *_xfer variable is still needed if you want DMA modes.

Best regards,

Niels
Post Reply