MNT Reform2 USB LCP flash

Staffan Thomén <[email protected]>
Newsgroups gmane.os.netbsd.devel.kernel
Message-ID <[email protected]>
Hey!

I asked this first on netbsd-users, but since there were no takers, I 
decided to try this crowd.

I have an MNT Reform2 laptop, and it has something called an LCP (It's a 
Cortex M0 I think) whose firmware can be updated by turning a switch on 
the board that enables an internal USB port to simulate an umass device. 
The procedure is then that you overwrite that file to update the firmware.

I tried turning the switch and plugging it into a my trusty X220 laptop 
and sure enough it found a umass device and attached an sd to it, 
however it immediately showed an autoconfiguration error with error = 5 
(EIO, I presume) and any attempt to talk to the device just yields 
Input/Output error.

I then tried it on my fairly recent gaming computer and it also does the 
same thing there. Plugging it in in windows immediately mounts the usb 
device (I guess it's a FAT partition of some kind) and shows the 
expected firmware.bin file on it.

Here's the relevant bits of dmesg from the gaming system:

[     1.142061] uhub3 at usb3: NetBSD (0x0000) xHCI root hub (0x0000), 
class 9/0, rev 2.00/1.00, addr 0
[     1.142061] uhub3: 6 ports with 6 removable, self powered

...

[    21.611880] umass1 at uhub3 port 3 configuration 1 interface 0
[    21.611880] umass1: NXP (0x1fc9) LPC1XXX IFLASH (0x000b), rev 
2.00/7.04, addr 5
[    21.611880] umass1: using SCSI over Bulk-Only
[    21.611880] scsibus1 at umass1: 2 targets, 1 lun per target
[    21.611880] sd1 at scsibus1 target 0 lun 0: <NXP, LPC1XXX IFLASH, 
1.0> disk removable
[    21.611880] sd1: fabricating a geometry
[    21.611880] sd1: 34816, 0 cyl, 64 head, 32 sec, 512 bytes/sect x 68 
sectors
[    21.611880] autoconfiguration error: sd1: unable to open device, 
error = 5

It seems a bit interesting that it reports 2 targets, but only creates 
an sd for one, and 0 cylinders seems a bit suspicous but I don't know if 
that's ok or not.

Having had no luck I went diving into the linux kernel to see if they 
have a quirk for it, but found nothing for device id 0x1fc9/0x000b.

Clearly something is going wrong, any thoughts? I guess there's some 
extra usb debuggin information available, and I can boot a kernel with 
it and see what happens if it would help.

Staffan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.