8.0-RC1: AMD CS5536 (Geode) USB 2.0 controller strange behavour
Eugene Grosbein
eugen at kuzbass.ru
Sat Sep 26 04:53:20 UTC 2009
Hi!
I have got fanless computer named NICE 3120,
it is based on EBC 420-LX8 motherboard and AMD Geode LX800 processor.
I've installed 8.0-RC1 here and it runs just fine as a router
using internal CompactFlash 256Mb card. Now I'm trying to use USB 2.0 HDD
<Seagate FreeAgent Go 102D> that gives me stable 27 megabyte/sec
write speed to /dev/da0 using dd when connected to another 8.0-RC1 system
with ICH7 but with this CS5536 its behavour is very strange.
"dd if=/dev/zero bs=256k of=/dev/da0 count=100" may result in 1.7MBytes/s
or 16Mbytes/s or 400Kbyte/s (sic!) write speed. dd measures speed right,
very often it writes way too slow.
"systat -vm 1" shows that most of time nothing is written in process;
then suddenly lots of bytes are written, then it sits idle again for long time.
As for timecounting,
kern.timecounter.choice: TSC(800) ACPI-safe(850) i8254(0) dummy(-1000000)
ACPI-safe is non-functional here (3 seconds for 30 minutes of real time),
so I use TSC, it works just fine. I've tried i8254 but found no differences.
Ntpd drift is about 148.331 for both of TSC and i8254 and
ntpd keeps time correct.
"pciconf -lv" shows for EHCI:
ehci0 at pci0:0:15:5: class=0x0c0320 card=0x20951022 chip=0x20951022
rev=0x02 hdr=0x00
vendor = 'Advanced Micro Devices (AMD)'
device = 'CS5536 EHCI USB Host Controller (CS5536)'
class = serial bus
subclass = USB
This machine is used as home router only and I'm ready to debug.
Remote access is available on request.
The kernel is built with options:
machine i386
cpu I586_CPU
cpu I686_CPU
options NO_F00F_HACK
options CPU_GEODE
options CPU_SOEKRIS
options SCHED_ULE
options PREEMPTION
$ dmesg -a | fgrep -i Geode
CPU: Geode(TM) Integrated Processor by AMD PCS (499.90-MHz 586-class CPU)
glxsb0: <AMD Geode LX Security Block (AES-128-CBC, RNG)> mem 0xef010000-0xef013fff at device 1.2 on pci0
ehci0: <AMD CS5536 (Geode) USB 2.0 controller> mem 0xef018000-0xef018fff irq 10 at device 15.5 on pci0
usbus1: <AMD CS5536 (Geode) USB 2.0 controller> on ehci0
$ sysctl kern.timecounter
kern.timecounter.tick: 1
kern.timecounter.choice: TSC(800) ACPI-safe(850) i8254(0) dummy(-1000000)
kern.timecounter.hardware: TSC
kern.timecounter.stepwarnings: 0
kern.timecounter.tc.i8254.mask: 4294967295
kern.timecounter.tc.i8254.counter: 3806
kern.timecounter.tc.i8254.frequency: 1193182
kern.timecounter.tc.i8254.quality: 0
kern.timecounter.tc.ACPI-safe.mask: 16777215
kern.timecounter.tc.ACPI-safe.counter: 4294967295
kern.timecounter.tc.ACPI-safe.frequency: 3579545
kern.timecounter.tc.ACPI-safe.quality: 850
kern.timecounter.tc.TSC.mask: 4294967295
kern.timecounter.tc.TSC.counter: 1502810203
kern.timecounter.tc.TSC.frequency: 499904675
kern.timecounter.tc.TSC.quality: 800
kern.timecounter.invariant_tsc: 0
Please help.
Eugene Grosbein
More information about the freebsd-usb
mailing list