Date: Sun, 11 May 2008 04:46:08 +0400 From: Andrey Chernov <ache@nagual.pp.ru> To: sos@freebsd.org, grehan@freebsd.org, current@freebsd.org Subject: atadev->param.model problem or bug with Marvell 88SE6811 chip Message-ID: <20080511004607.GA67182@nagual.pp.ru>
next in thread | raw e-mail | index | archive | help
I have device detection problem with device attached to atapci0: <Marvell ATA controller> port 0xec00-0xec07,0xe880-0xe883,0xe800-0xe807,0xe480-0xe483,0xe400-0xe40f mem 0xfebffc00-0xfebfffff irq 16 at device 0.0 on pci3 (ASUS P5E3 motherboard). It seems that this controller not fills atadev->param.model as current ata-all.c code expects: if (!error && (isprint(atadev->param.model[0]) || isprint(atadev->param.model[1]))) { so whole probe is just skipped! Namely it not pass printable atadev->param.model[0] or atadev->param.model[0] chars. Here is 2 devices (master/slave) param.model hexdump and some debugging info: command ATA_ATAPI_IDENTIFY error 0 model 00:00:20:20:00:00:20:20:00:00:20:20:00:00:20:20:00:00:20:20:00:00:20:20:00:00:00:00:00:00:00:00:00:00:00:00:00:00:2e:31 ^^ ^^ ... command ATA_ATAPI_IDENTIFY error 0 model 00:00:37:31:00:00:34:32:00:00:20:20:00:00:20:20:00:00:20:20:00:00:20:20:00:00:00:00:00:00:00:00:00:00:00:00:00:00:2e:31 ^^ ^^ As you can see, both first bytes are NULs. Those devices works perfectly under M$ Win. I don't familiar with ATA specs. Is there some ideas why it happens, what is the right fix or possible workaround? -- http://ache.pp.ru/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080511004607.GA67182>