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 изменив параметр драйвера(если такой вообще имеется)? Или можно как то по другому решить эту проблему?

Есть же исходники rkdeveloptool, почему бы не посмотреть в них, как определяет и поправить?

sehellion ★★★★★
()
Ответ на: комментарий от 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)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.