0xFFFF icon indicating copy to clipboard operation
0xFFFF copied to clipboard

Flashing an eMMC image returns "Error: Not implemented yet"

Open l29ah opened this issue 7 years ago • 13 comments

Waiting for USB device...  
Found USB device: RX-51/RM-680 (0x421:0x1c8) in Mk II protocol mode
USB device product string: N900 (PC-Suite Mode)
USB device serial number string: (not detected)
Detected USB device: RX-51            

Initializing Mk II protocol...
Detected Mk II protocol version: 
Supported images by current device configuration: xloader secondary kernel mmc cmt-2nd cmt-algo cmt-mcusw
Mode: Update
Device: RX-51
HW revision: 2101
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1_PR_MR0
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)

Error: Not implemented yet

l29ah avatar Feb 09 '18 14:02 l29ah

That is truth, flashing via Mk II protocol is not implemented yet. It is also written in TODO: https://github.com/pali/0xFFFF/blob/33442482c65acf3805d24b76b3567ec97c2492ef/TODO#L22-L23

Protocol is described in file doc/mkii and some initial code is in src/mkii.c https://github.com/pali/0xFFFF/blob/33442482c65acf3805d24b76b3567ec97c2492ef/src/mkii.c#L191-L337

Patches for full implementation are welcome :-)

pali avatar Feb 09 '18 14:02 pali

It support via USB flashing any image type to Maemo device

in README is incorrect then, ok

l29ah avatar Feb 09 '18 15:02 l29ah

I'll give it a try.

l29ah avatar Feb 09 '18 16:02 l29ah

Does the raw data on ep=2 size=1048576 correspond to the stuff i get by calling image_read?

l29ah avatar Feb 09 '18 16:02 l29ah

Yes. You can look at nolo_send_image() which is similar, but data over usb are sent differently.

pali avatar Feb 09 '18 16:02 pali

In attachment you can find sniffed usb log when flashing emmc image. mkii.log For such purpose there libusb-sniff.c library.

pali avatar Feb 09 '18 16:02 pali

Damn, it seems like i bricked it even more than it used to be. It times out at ret = mkii_send_receive(dev->udev, 0x03, msg1, 0, msg1, sizeof(buf1)); every time and the screen behaviour suggests it tries to boot or smth.

l29ah avatar Feb 09 '18 17:02 l29ah

Oh, nvm, it times out in the raw data sending after 100s. I wonder if i must/should usb_bulk_write the whole 1048576 pack at once.

l29ah avatar Feb 09 '18 17:02 l29ah

I have no idea. This is something which I not tested yet...

pali avatar Feb 09 '18 17:02 pali

Also i wonder if usb 1-1.2: usbfs: process 17803 (0xFFFF) did not claim interface 2 before use is related to my troubles.

l29ah avatar Feb 09 '18 17:02 l29ah

Hmm, usb_strerror at the entrance of mkii_flash_image says Error: could not detach kernel driver from interface 1: No data available.

The current state of my code is there: https://github.com/l29ah/0xFFFF/commit/4580ed4c366daed6bed613abbd47063272b023f1 Maybe i'm missing something, but now the usb_bulk_write exits either with a timeout, or with error submitting URB: No such file or directory.

l29ah avatar Feb 09 '18 18:02 l29ah

Hmm, usb_strerror at the entrance of mkii_flash_image says Error: could not detach kernel driver from interface 1: No data available.

Maybe thats because there is no attached kernel driver, so nothing is possible to detach?

The current state of my code is there: https://github.com/l29ah/0xFFFF/commit/4580ed4c366daed6bed613abbd47063272b023f1 Maybe i'm missing something, but now the usb_bulk_write exits either with a timeout, or with error submitting URB: No such file or directory.

You can recheck which data are sending/receiving via USB bus with libusb-sniff.

pali avatar Feb 13 '18 12:02 pali

The best way is really to run 0xFFFF under libusb-sniff. That mkii.log file was created by running flasher-3.5 under libusb-sniff. Just call make libusb-sniff-64.so (or -32.so) and run sudo LD_PRELOAD=./libusb-sniff-64.so ./0xFFFF ... Or look into libusb-sniff.c source for details.

pali avatar Apr 19 '18 21:04 pali