Hi all,
I recently porting the SATA with imx6(quad-core). But I always can't get the right volume information.
I'm ensure that my sata had been set in kernel init period. Here is the kernel message:
==================================================================================
[ 1677.724423] ata1: hard resetting link
[ 1678.685972] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 1678.692856] ata1.00: ATA-8: SSE032GPTC0-S81, S8FM04.3, max UDMA/100
[ 1678.699665] ata1.00: 62533296 sectors, multi 16: LBA48 NCQ (depth 31/32)
[ 1678.707025] ata1.00: configured for UDMA/100
[ 1678.711476] ata1: EH complete
[ 1680.226612] scsi 0:0:0:0: Direct-Access ATA SSE032GPTC0-S81 S8FM PQ: 0 ANSI: 5
[ 1680.238112] sd 0:0:0:0: [sda] 62533296 512-byte logical blocks: (32.0 GB/29.8 GiB)
[ 1680.247428] sd 0:0:0:0: [sda] Write Protect is off
[ 1680.252503] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 1680.257932] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1680.269009] sda: sda1
E/DirectVolume( 2341): [DirectVol[ 1680.272993] sd 0:0:0:0: [sda] Attached SCSI disk
==================================================================================
It is similar to the documents what I reference named i.MX_6_Linux_Reference_Manual.pdf.
But I'm not sure whether sata initialize is correctly or not. I just see only one node show in /dev/block/vold/8:1
I take the USB disk to compare with SATA. USB disk always show two node in /dev/block/vold/8:16 and 8:17
And vold daemon will get the /dev/block/vold/8:16 to check devtype. After check devtype it will get 8:17 to mount USB partition.
But SATA doesn't have another node to let vold determine devtype. So my android always not get correct message from kernel.
May I have any suggestions, If there anyone knows it, please tell me how to make like USB disk in /dev/block/vold to show correct node.
Hi Rudolph,
From log, your SATA disk should work normally, you can test it like this : copy files from SATA to SD, or save a movie file on SATA and play it .
try it , please !
Regards,
Weidong
Thanks Weidong. I found why android frameworks can not get correct information from vold daemon.
After I format SATA to FAT filesystem. It won't create two node in /dev/block/vold(8:1) so that volume daemon can not determine devtype.
But after I format SATA to FAT32/ext4 filesystem. It will create two node in /dev/block/vold (8:0/8:1). Then volume daemon can detect devtype and mount automatically.
I not sure why it can't work in FAT filesystem.
By the way it maybe a another issue result in my android frmaeworks won't get correct information.
I saw that kernel message had printed the SATA initialized information. But it only tried to read SATA information in five times.
Read times is define in /kernel/include/linux/libata.h
After I download image, first time to boot the device. It doesn't have enough times to get SATA initialized information.
So I modify the value(ATA_EH_MAX_TRIES) more than 5. Then it can initial correctly. Maybe it's a another issue result in my android won't get correct information from volume daemon.