![Intel IXP45X Скачать руководство пользователя страница 492](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092492.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors—USB 2.0 Host Controller
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
Developer’s Manual
August 2006
492
Order Number: 306262-004US
9.15.4.2.2
Port Speed Detection
After the port change interrupt indicates that a port is enabled, the EHCI stack should
determine the port speed. Unlike the EHCI implementation which will re-assign the port
owner for any device that does not connect at High-Speed, this host controller supports
direct attach of non High-Speed devices. Therefore, the following differences are
important regarding port speed detection:
• Port Owner is read-only and always reads 0.
• A 2-bit Port Speed indicator has been added to PORTSC to provide the current
operating speed of the port to the host controller driver.
• A 1-bit High Speed indicator has been added to PORTSC to signify that the port is in
High-Speed vs. Full/Low Speed – This information is redundant with the 2-bit Port
Speed indicator above.
9.15.4.3
Port Test Mode
Port Test Control mode will behave(s) the same as described in EHCI except for test-
packet mode. In test packet mode, the following procedure should be used for putting
the host controller into test packet mode:
1. Write Port Test Control to 0x4.
2. Create a single QH in the Asynchronous list and program the ASYNCLISTADDR to
this QH. The QH should be all zeros with the following exceptions:
• QH.HorizontalLinkPointer = this (self pointer)
• QH.Type=”01”
• QH.MaximumPacketLength=64
• QH.H=’1’
• QH.EPS=”10”
• QH.Next.T=1
• QH.Alt.Next.T=1
• QH.Active=1
• QH.TotalBytes=53
• QH.BufPointer0=(0xFFFFF000 & &(test_packet[0])) >> 12
• QH.Offset=(0x0FFF & &(test_packet[0]))
• QH.BufPointer1=QH.BufP1
3. Where test_packet is a byte array of length 53 with the contents: (USB 2.0 –
7.2.20):
4. char test_packet[53];
test_packet[0]=0x00; test_packet[1]=0x00; test_packet[2]=0x00;
test_packet[3]=0x00; test_packet[4]=0x00; test_packet[5]=0x00;
test_packet[6]=0x00; test_packet[7]=0x00; test_packet[8]=0x00;
test_packet[9]=0xAA; test_packet[10]=0xAA; test_packet[11]=0xAA;
test_packet[12]=0xAA; test_packet[13]=0xAA; test_packet[14]=0xAA;
test_packet[15]=0xAA; test_packet[16]=0xAA; test_packet[17]=0xEE;
test_packet[18]=0xEE; test_packet[19]=0xEE; test_packet[20]=0xEE;
test_packet[21]=0xEE; test_packet[22]=0xEE; test_packet[23]=0xEE;
test_packet[24]=0xEE; test_packet[25]=0xFE; test_packet[26]=0xFF;
test_packet[27]=0xFF; test_packet[28]=0xFF; test_packet[29]=0xFF;
test_packet[30]=0xFF; test_packet[31]=0xFF; test_packet[32]=0xFF;
test_packet[33]=0xFF; test_packet[34]=0xFF; test_packet[35]=0xFF;
test_packet[36]=0xFF; test_packet[37]=0x7F; test_packet[38]=0xBF;
test_packet[39]=0xDF; test_packet[40]=0xEF; test_packet[41]=0xF7;