Difference between revisions of "Sharp Mobilion Pro PV5000A"

From LinuxMIPS
Jump to: navigation, search
m (flash)
m (System Specifications)
 
(19 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
= News =
 +
== 30/11/2005: Got NetBSD/hpcmips running ==
 +
 +
After some 130MB or so of downloads, several hours, and getting a crash-course in cross-compiling NetBSD... I managed to compile a NetBSD kernel that boots on this device.
 +
 +
[http://dev.gentoo.org/~redhatter/mips/hpc/sharp_mp_pv5000a/netbsd/ Here] you'll find my kernel (netbsd.gz) and config (TX3922-ramdisk.gz, based on TX3922).  Drop these on a CF card (or download them across a network, or upload via serial link... whatever floats your boat), along with [ftp://ftp.netbsd.org/pub/NetBSD-daily/netbsd-3/200511140000Z/hpcmips/installation/hpcboot.exe hpcboot] and [ftp://ftp.netbsd.org/pub/NetBSD-daily/netbsd-3/200511140000Z/hpcmips/installation/miniroot/miniroot.fs.gz this ramdisk image].
 +
 +
Then, on the device, fire up hpcboot.  Select ''md'' as your root device, and enter ''miniroot.fs'' (or .gz if you haven't decompressed it).  Select "boot verbosely" and "serial console 9600", then plug in your sync cable, fire up a serial terminal program (e.g. minicom; 9600 baud, 8N1) and hit BOOT on the device.  You should see NetBSD start booting after a few seconds.
 +
 +
Having a kernel which boots, means it should be only a little more work to get Linux doing the same thing.  I can boot to a shell via NetBSD.  I haven't got PCMCIA working just yet, but I hope to get something going in the next few weeks as I tinker.
 +
 +
== 28/10/2005: Locating the JTAG Interface ==
 +
 +
Looking at [http://openwince.sourceforge.net/jtag/iPAQ-3600/ this page], it seems somewhere on the mainboard, they'll be some pads, to which I can wire a JTAG Interface.  Now, I've got some pretty clear shots of the CPU on my devspace (see my raw pictures -- hpim0527.jpg is a particularly detailed shot of the CPU), it's just a matter of finding out what each and every pin does.  In addition, more challenges lay ahead -- these pins are very bloody close together, and my chances of hitting one the wrong way are extremely high.  I've touched this board with a soldering iron before -- but that was to fix a power socket with nice chunky connections -- this is much smaller again.  I may require a new soldering iron for the task.
 +
 +
After my exams, I'll look into it.  I found a datasheet on the CPU [http://www.toshiba.com/taec/components/Datasheet/TX3922ds.pdf here], which I will naturally have a close look at.  Pins 30 ~ 34 may have something to do with it.  Here's hoping that's the case. :-)  Of course mearly having a JTAG isn't good enough -- one must know what to do with it.  That is the next step.
 +
 +
These are the pins where I suspect the JTAG resides:
 +
 +
[[Image:Mobilion_pro_jtag.jpg]]
 +
 +
== 14/08/2005: Obtaining the tools & my plans ==
 +
 +
I've been chasing my tail lately, trying to build a cross-compile toolchain for the mipsel-wince-pe target.  It seems this functionality disappeared from binutils back around 2.13 or so, 2.12.2 fails to compile.
 +
 +
I'm currently looking around.  So far, I discovered [http://www.toyoshima-house.net/wince/ this page] which suggests using binutils-2.11.2 and gcc-3.03.  Well, worth a try I guess :-), it also gives instructions on how to compile GUI apps for WinCE, so I think this will be a definate winner as far as aiding progress.  I also managed to find [http://www.rainer-keuchel.de/software.html this site] which has loads of WinCE/MIPS stuff, including a POSIX library (celib) which may be useful for phase 2.
 +
 +
I've already managed to get a copy of the entire contents of the "Windows" directory of my PDA (thank you to the devs who made [http://synce.sourceforge.net SynCE], it's a wonderful tool), and once I've got a toolchain, I should be able to pull those apart and have a look  (I won't be posting code though for legal reasons -- Sure, I never agreed to any licence agreement, none came with the PDA, but I don't want to push my luck there) to see how everything fits together.
 +
 +
=== Why? ===
 +
 +
Currently, Windows CE 2.11/MIPS is practically dead.  There's a couple of sites offering downloads for it, but the vast majority out there is for PPC200x/ARM.  Drivers are even harder to find.
 +
 +
Linux on this machine, with a suitable embedded Desktop, should vastly improve the system's capabilities.  It's much more modern, with many applications available.  Combined with some sort of PCMCIA storage (PCMCIA IDE or SCSI, or perhaps a CF adaptor), it should be capable of running full distributions such as Debian/MIPS or Gentoo/MIPS.  Running purely from RAM, things like Qtopia shouldn't be out of the question... and running such an open platform, opens up all sorts of possibilities, many which I haven't touched on yet.
 +
 +
=== The plan ===
 +
 +
# Create a cross-compiler for mipsel-wince-pe target.
 +
# Create some simple programs to explore the system.  The aim here is to try and discover where various devices are located.
 +
#* (Me only) Learn some MIPS asm, I've already found what looks to be a fairly complete guide [http://chortle.ccsu.edu/AssemblyTutorial/TutorialContents.html here].
 +
# Make a first attempt at some non-trivial applications to interact with the hardware.  Specifically, I'll be focussing on interaction with the screen, keyboard & serial interface.
 +
# Begin porting Linux. :-)
 +
 +
=== Goal ===
 +
 +
Once Linux runs; (i.e. I can boot up to some sort of shell, possibly BusyBox and a µClibc environment), I'll look at how to package a distribution to run on the machine.
 +
 +
At the moment, due to the limited memory (32MB) and storage (none), I'm thinking about using QT's Qtopia to provide the full system.  It's much more up to date than Windows CE 2.11, and should provide everything I need, whilst leaving sufficient memory over to do something useful.
 +
 +
Eventually, I'd like to burn this into the ROM somehow.  The idea at present, is to try and implement the ROM as some sort of block device, with a small partition table.  Put a bootloader in at the start, ideally, the kernel should stay in ROM, and be accessed directly.  This will all become clearer though as I learn how to talk to the hardware in this device.
 +
 +
Almost certainly, I can forget a full distro like Gentoo or Debian, not without a fairly large root FS sitting on a PCMCIA flash drive of some description.  Given the cost of these things, I don't see me trying this anytime soon.
 +
 
= System Specifications =
 
= System Specifications =
  
* CPU: Toshiba [[TX39XX|TX3922]] 129MHz [[Instruction_Set_Architecture|MIPS 1]].  Little Endian.
+
* CPU: Toshiba [[TX39XX|TX3922]] 129MHz [[Instruction_Set_Architecture|MIPS 2]].  Little Endian.
 
* RAM: 32MB
 
* RAM: 32MB
* ROM: Unknown size, has Windows CE and numerous applications burned in.
+
* ROM: 16MB (Estimated) has Windows CE and numerous applications burned in.
* Framebuffer: 640x480 12-bit colour.  Unknown chipset.
+
* Framebuffer: 640x480 12-bit colour.  Epson Chipset (see below)
  
 
I/O Peripherals:
 
I/O Peripherals:
Line 20: Line 73:
 
I ended up pulling my unit apart tonight... finally got fed up of the wobbly power socket, so I thought I'd take a look.
 
I ended up pulling my unit apart tonight... finally got fed up of the wobbly power socket, so I thought I'd take a look.
 
The power socket was fixed very easy... The solder connections were worn... in fact, I suspect a manufacturing fault.  Not to worry though, a quick jab with a soldering iron soon fixed up what the ravages of time had slowly worn away.
 
The power socket was fixed very easy... The solder connections were worn... in fact, I suspect a manufacturing fault.  Not to worry though, a quick jab with a soldering iron soon fixed up what the ravages of time had slowly worn away.
 +
 +
I have raw images, straight from the camera [http://dev.gentoo.org/~redhatter/mips/hpc/sharp_mp_pv5000a/rawphotos/ here].  These are 5MPixel shots.
  
 
== Motherboard: Top surface ==
 
== Motherboard: Top surface ==
  
Pulling up the keyboard, you'll see the top surface of the motherboard... shown in [http://dev.gentoo.org/~redhatter/mips/hpc/sharp_mp_pv5000a/motherboard_topside.jpg this] photo.
+
Pulling up the keyboard, you'll see the top surface of the motherboard... shown in this photo.
 +
 
 +
[[Image:Sharp_hpc_pv5000a_mb_topside.jpg]]
  
 
Some of the ICs shown in the photo:
 
Some of the ICs shown in the photo:
  
 
<table>
 
<table>
<tr>
 
<td>
 
  TOSHIBA  B10415
 
    9839KBD   
 
      JAPAN     
 
  TC5165165FTS-50
 
</td>
 
<td>
 
DRAM Memory
 
</td>
 
</tr>
 
 
<tr>
 
<tr>
 
<td>
 
<td>
Line 46: Line 92:
 
</td>
 
</td>
 
<td>
 
<td>
FLASH
+
FLASH (seems [http://www.intel.com/design/flcomp/support/datashts/29053805.pdf 28F400] compatible, LVTTL)
 
</td>
 
</td>
 
</tr>
 
</tr>
Line 57: Line 103:
 
</td>
 
</td>
 
<td>
 
<td>
[[http://www.elec.ryukoku.ac.jp/~fujii/pub/ftp/moba/NetBSD-hpcmips/NetBSD-1.5-hpcmips/src/usr/src/sys/arch/hpcmips/conf/TX3912 | buffer chip (PCMCIA)]] ?
+
[http://www.elec.ryukoku.ac.jp/~fujii/pub/ftp/moba/NetBSD-hpcmips/NetBSD-1.5-hpcmips/src/usr/src/sys/arch/hpcmips/conf/TX3912 buffer chip (PCMCIA)] ?
 
</td>
 
</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
 
<td>
 
<td>
    EPSON  
+
  TOSHIBA B10415
  SED1354F0A
+
     9839KBD   
  F98350199
+
      JAPAN    
     JAPAN
+
  TC5165165FTS-50
 
</td>
 
</td>
 
<td>
 
<td>
LCD Controller ?
+
Toshiba EDO DRAM 64Mbit (4Mx16bit) Memory
 
</td>
 
</td>
 
</tr>
 
</tr>
Line 78: Line 124:
 
</td>
 
</td>
 
<td>
 
<td>
Unknown
+
Hitachi [http://jastronic.com/Datasheet/EDO/H_EDO/HM5165165.pdf EDO DRAM] 64Mbit (4Mx16bit) Memory
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>
 +
    EPSON 
 +
  SED1354F0A
 +
  F98350199
 +
    JAPAN
 +
</td>
 +
<td>
 +
LCD Controller (now called [http://www.erd.epson.com/vdc/html/S1D13504.html S1D13504])
 
</td>
 
</td>
 
</tr>
 
</tr>
Line 87: Line 144:
 
</td>
 
</td>
 
<td>
 
<td>
Unknown
+
1Mx16 EDO DRAM, frame buffer for SED1354
 
</td>
 
</td>
 
</tr>
 
</tr>
Line 93: Line 150:
  
 
== Underside of the Motherboard ==
 
== Underside of the Motherboard ==
[http://dev.gentoo.org/~redhatter/mips/hpc/sharp_mp_pv5000a/mainboard_underside.jpg Flipping the board over], we reveal more ICs, including the CPU:
+
Flipping the board over, we reveal more ICs, including the CPU:
 +
 
 +
[[Image:Sharp_hpc_pv5000a_mb_underside.jpg]]
  
 
<table>
 
<table>
Line 114: Line 173:
 
</td>
 
</td>
 
<td>
 
<td>
Unknown
+
Hitachi [http://jastronic.com/Datasheet/EDO/H_EDO/HM5165165.pdf EDO DRAM] 64Mbit (4Mx16bit) Memory
 
</td>
 
</td>
 
</tr>
 
</tr>
Line 125: Line 184:
 
</td>
 
</td>
 
<td>
 
<td>
Memory
+
Toshiba EDO DRAM 64Mbit (4Mx16bit) Memory
 
</td>
 
</td>
 
</tr>
 
</tr>
Line 158: Line 217:
 
</table>
 
</table>
  
The only IC I've identified thus far is the CPU... although I'll be pestering Google for info on the others shortly.
+
The only ICs I've identified thus far are the CPU and the LCD controller... although I'll be pestering Google for info on the others shortly.
 +
 
 +
===Links===
 +
 
 +
1. http://www.realitydiluted.com/projects/nino/port/remove-rom.html describes the ROM in a similar device.  The ROM used on the Mobilion PRO above is almost identical (other than the fact that the plug is in a different location)  This site also describes how to potentially erase and reprogramme the flash chips used on this ROM.  This opens the possibility of completely ridding WinCE for good. :-)

Latest revision as of 05:55, 30 November 2005

News

30/11/2005: Got NetBSD/hpcmips running

After some 130MB or so of downloads, several hours, and getting a crash-course in cross-compiling NetBSD... I managed to compile a NetBSD kernel that boots on this device.

Here you'll find my kernel (netbsd.gz) and config (TX3922-ramdisk.gz, based on TX3922). Drop these on a CF card (or download them across a network, or upload via serial link... whatever floats your boat), along with hpcboot and this ramdisk image.

Then, on the device, fire up hpcboot. Select md as your root device, and enter miniroot.fs (or .gz if you haven't decompressed it). Select "boot verbosely" and "serial console 9600", then plug in your sync cable, fire up a serial terminal program (e.g. minicom; 9600 baud, 8N1) and hit BOOT on the device. You should see NetBSD start booting after a few seconds.

Having a kernel which boots, means it should be only a little more work to get Linux doing the same thing. I can boot to a shell via NetBSD. I haven't got PCMCIA working just yet, but I hope to get something going in the next few weeks as I tinker.

28/10/2005: Locating the JTAG Interface

Looking at this page, it seems somewhere on the mainboard, they'll be some pads, to which I can wire a JTAG Interface. Now, I've got some pretty clear shots of the CPU on my devspace (see my raw pictures -- hpim0527.jpg is a particularly detailed shot of the CPU), it's just a matter of finding out what each and every pin does. In addition, more challenges lay ahead -- these pins are very bloody close together, and my chances of hitting one the wrong way are extremely high. I've touched this board with a soldering iron before -- but that was to fix a power socket with nice chunky connections -- this is much smaller again. I may require a new soldering iron for the task.

After my exams, I'll look into it. I found a datasheet on the CPU here, which I will naturally have a close look at. Pins 30 ~ 34 may have something to do with it. Here's hoping that's the case. :-) Of course mearly having a JTAG isn't good enough -- one must know what to do with it. That is the next step.

These are the pins where I suspect the JTAG resides:

Mobilion pro jtag.jpg

14/08/2005: Obtaining the tools & my plans

I've been chasing my tail lately, trying to build a cross-compile toolchain for the mipsel-wince-pe target. It seems this functionality disappeared from binutils back around 2.13 or so, 2.12.2 fails to compile.

I'm currently looking around. So far, I discovered this page which suggests using binutils-2.11.2 and gcc-3.03. Well, worth a try I guess :-), it also gives instructions on how to compile GUI apps for WinCE, so I think this will be a definate winner as far as aiding progress. I also managed to find this site which has loads of WinCE/MIPS stuff, including a POSIX library (celib) which may be useful for phase 2.

I've already managed to get a copy of the entire contents of the "Windows" directory of my PDA (thank you to the devs who made SynCE, it's a wonderful tool), and once I've got a toolchain, I should be able to pull those apart and have a look (I won't be posting code though for legal reasons -- Sure, I never agreed to any licence agreement, none came with the PDA, but I don't want to push my luck there) to see how everything fits together.

Why?

Currently, Windows CE 2.11/MIPS is practically dead. There's a couple of sites offering downloads for it, but the vast majority out there is for PPC200x/ARM. Drivers are even harder to find.

Linux on this machine, with a suitable embedded Desktop, should vastly improve the system's capabilities. It's much more modern, with many applications available. Combined with some sort of PCMCIA storage (PCMCIA IDE or SCSI, or perhaps a CF adaptor), it should be capable of running full distributions such as Debian/MIPS or Gentoo/MIPS. Running purely from RAM, things like Qtopia shouldn't be out of the question... and running such an open platform, opens up all sorts of possibilities, many which I haven't touched on yet.

The plan

  1. Create a cross-compiler for mipsel-wince-pe target.
  2. Create some simple programs to explore the system. The aim here is to try and discover where various devices are located.
    • (Me only) Learn some MIPS asm, I've already found what looks to be a fairly complete guide here.
  3. Make a first attempt at some non-trivial applications to interact with the hardware. Specifically, I'll be focussing on interaction with the screen, keyboard & serial interface.
  4. Begin porting Linux. :-)

Goal

Once Linux runs; (i.e. I can boot up to some sort of shell, possibly BusyBox and a µClibc environment), I'll look at how to package a distribution to run on the machine.

At the moment, due to the limited memory (32MB) and storage (none), I'm thinking about using QT's Qtopia to provide the full system. It's much more up to date than Windows CE 2.11, and should provide everything I need, whilst leaving sufficient memory over to do something useful.

Eventually, I'd like to burn this into the ROM somehow. The idea at present, is to try and implement the ROM as some sort of block device, with a small partition table. Put a bootloader in at the start, ideally, the kernel should stay in ROM, and be accessed directly. This will all become clearer though as I learn how to talk to the hardware in this device.

Almost certainly, I can forget a full distro like Gentoo or Debian, not without a fairly large root FS sitting on a PCMCIA flash drive of some description. Given the cost of these things, I don't see me trying this anytime soon.

System Specifications

  • CPU: Toshiba TX3922 129MHz MIPS 2. Little Endian.
  • RAM: 32MB
  • ROM: 16MB (Estimated) has Windows CE and numerous applications burned in.
  • Framebuffer: 640x480 12-bit colour. Epson Chipset (see below)

I/O Peripherals:

  • LCD Touch Screen & keypad
  • 1x RS-232 serial port
  • 1x IRDA serial port
  • 1x PCMCIA socket

Operating System Support

Natively, they run Windows CE 2.11 H/PC PRO 3.0. There is some resources on the net to suggest NetBSD potentially runs, but I have not succeeded in this endeavour. I'm looking into the feasability of porting Linux onto these devices.

A look inside

I ended up pulling my unit apart tonight... finally got fed up of the wobbly power socket, so I thought I'd take a look. The power socket was fixed very easy... The solder connections were worn... in fact, I suspect a manufacturing fault. Not to worry though, a quick jab with a soldering iron soon fixed up what the ravages of time had slowly worn away.

I have raw images, straight from the camera here. These are 5MPixel shots.

Motherboard: Top surface

Pulling up the keyboard, you'll see the top surface of the motherboard... shown in this photo.

Sharp hpc pv5000a mb topside.jpg

Some of the ICs shown in the photo:

 TOSHIBA  K97466
 JAPAN   9838HAK
 TC58FVB400FT-05

FLASH (seems 28F400 compatible, LVTTL)

  TOSHIBA
  TC6345AF
   9833FAI
   JAPAN

buffer chip (PCMCIA) ?

 TOSHIBA  B10415
    9839KBD     
     JAPAN      
 TC5165165FTS-50

Toshiba EDO DRAM 64Mbit (4Mx16bit) Memory

 JAPAN   F01Z
 0018     SNN
 5165165FLTT6

Hitachi EDO DRAM 64Mbit (4Mx16bit) Memory

    EPSON  
 SED1354F0A
  F98350199
    JAPAN

LCD Controller (now called S1D13504)

 SEC KOREA 837
 JK416V1004CT-L5

1Mx16 EDO DRAM, frame buffer for SED1354

Underside of the Motherboard

Flipping the board over, we reveal more ICs, including the CPU:

Sharp hpc pv5000a mb underside.jpg

    TOSHIBA   
   TMPR3922U  
 JAPAN 9842YAK
    19468##   

Toshiba TX3922 129MHz MIPS 1 CPU

  JAPAN   F01Z
  5165165FLTT6
  0018     SNN

Hitachi EDO DRAM 64Mbit (4Mx16bit) Memory

  TOSHIBA  B10415
       JAPAN
      9839KBD
  TC5165165FTS-50

Toshiba EDO DRAM 64Mbit (4Mx16bit) Memory

  SC 12307-0J
    836 137  

Unknown

    TOSHIBA
   TC35143AF

Toshiba analog frontend

   NEC JAPAN
    D4722GS
    9833P301

RS-232 Controller?

The only ICs I've identified thus far are the CPU and the LCD controller... although I'll be pestering Google for info on the others shortly.

Links

1. http://www.realitydiluted.com/projects/nino/port/remove-rom.html describes the ROM in a similar device. The ROM used on the Mobilion PRO above is almost identical (other than the fact that the plug is in a different location) This site also describes how to potentially erase and reprogramme the flash chips used on this ROM. This opens the possibility of completely ridding WinCE for good. :-)