LINUX.ORG.RU

Отключение LPM для USB устройства

 


1

2

Привет. Я хочу прошить старенький планшет на базе Rockchip rk3066. Использую программу rkdeveloptool. Перевожу планшет в режим Mask ROM но rkdeveloptool утверждает что это Loader. Итак я не могу загрузить файл в SoC для дальнейшей стадии загрузки. Думаю что проблема в том что rkdeveloptool выполняет проверку по bcdUSB который должен быть либо 1.0, 1.1, 2.0, 2.1 и так далее…Но при проверке командой lsusb -v я получаю немного другой дескриптор:

Bus 005 Device 006: ID 2207:300a Fuzhou Rockchip Electronics Company RK3066 in Mask ROM mode
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.11
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x2207 Fuzhou Rockchip Electronics Company
  idProduct          0x300a RK3066 in Mask ROM mode
  bcdDevice            1.00
  iManufacturer           0 
  iProduct                0 
  iSerial                 0 
  bNumConfigurations      1

Я не полностью понимаю и могу ошибаться, но это как то связано с запросом BOS дескриптора для устройства с поддержкой LPM. Вопрос в том могу ли я как то получить обычный дескриптор для устройства без поддержки LPM изменив параметр драйвера(если такой вообще имеется)? Или можно как то по другому решить эту проблему?

Ответ на: комментарий от sehellion

Я поправил на сколько хватило моих знаний в программировании. Но кажется проблема где то глубже.

for ( iter = m_list.begin(); iter != m_list.end(); iter++ ) {
		if (FindConfigSetPos(m_deviceMscConfigSet, (*iter).usVid, (*iter).usPid) != -1) {
			(*iter).emUsbType = RKUSB_MSC;
		} else {
			USHORT usTemp;
			usTemp = (*iter).usbcdUsb;
			usTemp= usTemp & 0x1;
			if ( usTemp == 0 )
				(*iter).emUsbType = RKUSB_MASKROM;
			else
				(*iter).emUsbType = RKUSB_LOADER;
		}
	}

Просто сделал что бы битовое умножение было на 0х0 и тогда условие всегда выполняется как RKUSB_MASKROM. Тогда:

./rkdeveloptool ld
DevNo=1	Vid=0x2207,Pid=0x300a,LocationID=502	Maskrom

Но при попытке загрузить файл с дальнейшей инициализацией возникает ошибка.

./rkdeveloptool db RK30xxLoader\(L\)_V1.34.bin 
Downloading bootloader failed!

Я даже не знаю правильно это или нет. Стоит ли дальше пытаться править исходные коды или проще получить нормальный дескриптор для устройства? Я задал вопрос на GitHub, но пока что там тишина.

Mihail_A
() автор топика
Ответ на: комментарий от Mihail_A

А вот черт знает. Если задача прошить планшет, я бы попробовал виртуалку и софт с сайта firefly, а именно RKDevTool (ранее AndroidTool).

sehellion ★★★★★
()
Последнее исправление: sehellion (всего исправлений: 1)