Re: Flash Boards

"Mark Gollahon" <[email protected]> Fri, 02 Feb 2007 14:10:04 -0500 (EST)
Newsgroups gmane.comp.handhelds.linux.jornada
Message-ID <[email protected]>
Brian Hechinger wrote ..
> On Thu, Feb 01, 2007 at 05:28:53PM -0500, Mark Gollahon wrote:
> > 
> > Not seriously hard, but it is going to be tricky - I will
> > have to write a program as well as design the hardware - all
> > while not knowing if I am getting the hardware signals right
> > or not (I've not created a flash programmer before).  I've
> > already reviewed a number of custom flash programmers that
> > hobbyists have been kind enough to post, but none of them
> > are exactly what is needed (most of them are waaaay too
> > slow - overnight programming is ok for one-offs, but when
> > you want to do twenty of them, well, its not good enough).
> 
> Ok, so let's first look at what programming options we have
> (not in any particular order):
> 
> 1) JTAG
> 2) USB
> 3) the system board connector
> 
> 1) This would probably be the easiest, however most limited
> option.
> 
> 2) This would be quite fancy, and shouldn't be too terribly
> hard to add.  What is the data path between the flash board
> and the system board?  Could we piggy-back the USB bits into
> the system and be able to add a USB host adapter to the 720?
> That would be wild.
> 
> 3) This would be the most complicated as we would need to most
>    likely reverse engineer the interface to make it work (#2
>    makes the a phase II option as the onboard USB would be able
>    to be used for flashing) in the first place, so while neat,
>    probably not an option.

You haven't read the history yet, have you?  We've already hashed
all of this out a number of times.  JTAG is useless because HP
didn't bring the signals out.  USB is useless because its going
to be a *host* USB not a *device* USB.  Furthermore, the Jornada
cannot be the vehicle by which we put the "first" programming
into the flash board (a "chicken-and-egg" problem - see next
paragraph).  Finally, reverse engineering the system connector
has already been done - that is how I got the information for
making a new board....  ;)

You have to remember that the Jornada isn't like a "regular PC".
When you pull off its ROM/RAM board, its dead.  It has absolutely
no programming for the StrongARM processor to execute.  Sticking
a new board on it with empty flash is useless because of this
(its like a PC with corrupted or no BIOS - it just doesn't work).
The flash has to have something on it for the Jornada to even boot
- and the Jornada can't be the vehicle by which we program the
flash because there isn't any programming in the flash initially
(ad nauseum).

So, the only options we have left is either program the flash on
a "standard" flash programmer *before* soldering it to the board,
OR to program the flash after soldering it to the board.

The problem with programming before we solder to the board is:
"what happens if the program loaded doesn't run?" - which is
bound to happen at least early in the project.  To reprogram the
flash with "new bits", we'd have to unsolder them.  I don't know
about you, but I'd say that unsoldered BGA flash is dead flash.
Unsoldered TSOP flash is just about as dead.  I don't want to
junk what could be upwards of $100 in parts just because I can't
reprogram the silly flash.

Finally, we're left with programming the flash through the only
interface we have - the J's system connector.  However, we can't
use the J to flash because its dead without its board.  We have
to create a specialized flash programmer that acts like a J but
that can program the flash.  And creating this programmer is the
real time-sink (and why I haven't made this work yet).

> > And don't forget someone still has to put together the
> > bootloader that will go into the flash....  The only non-x86
> > bootloader I've had experience with so far is RedBoot, and
> > that has been as a user and not a developer.
> 
> I keep meaning to start working with RedBoot and eCos.  Maybe
> this is the perfect opportunity. :)

I'd LOVE it if you could do that piece.  However, making the
board AND programmer must come before RedBoot and eCos.  There
are a few things you can do in parallel (like getting
RedBoot's RAM version running on the J), but we will still need
a ROM version to put into the flash and that step can only be
done once the hardware has been manufactured.

> > Needless to say, there is a lot more work to do than just
> > putting a board together....  I'm hoping that we can interest
> > some of the really hard-core "gear-head" embedded types to
> > help out or take over the bootloader once the board is ready.
> > They'd probably be able to get things running faster than I
> > would.
> 
> I'm a software guy, new to the embedded field, but I do know
> quite a few people who are just completely freakin' amazing with
> embedded stuff, so I might be able to dig up some resources.
> 
> From the very positive response on this list of who wants boards,
> I think we should be able to get ourselves into a cheaper 
> quantity discount fairly easily.

So far I've counted somewhere in the neighborhood of 20 boards for
the community.  This means a minimum of two batches of boards - 5
in the first batch as development "you can torch these boards", and
20 in the second batch for the community once the development is
done.  Not a large number , but nothing "to sneeze at" either.  Now,
if I could buy a couple of J's from Buy.com so that I can blow them
up, too.  :)

Regards,
-Mark Gollahon

_______________________________________________
jornada mailing list
[email protected]
https://handhelds.org/mailman/listinfo/jornada