Hi Dirk,

I took a look at yours and Sergey's candidate-replacements.

Sergey's solution has some very important advantages over Daniel Allred's
original code (it is GPL, it is simpler, code is easier to read, works
well with native Linux tools, etc). However, Sergey's Initial Bootloader
design is very close to that of TI UBL:

A single program that does 3 ideally different things:
S-1. load code over UART
S-2. read code from NAND
S-3. write code to NAND

I don't think that this is the best approach. Trying to combine
*sophisticated* implementations of all these different things in a
*single* application with a size limit of 14 kilobytes is not a trivial
task. And Sergey's implementation lacks important functionality: no NAND
bad blocks checking/skipping, no CRC checks on code-to-be-jumped, etc.

Yours (& Peter & Rudy) solution is not a complete UBL/DVFlasher
replacement, but it has some nice features:
D-1. UBL is written entirely in assembly (and hence is extremely small)
D-2. Host tool is written in C (and compiles for both Linux and Windows)

I think that оur (MMS) solution has the most modular (and hence
easily extensible) approach to booting/flashing so far. Our design uses
separate tools for booting and flashing, and separate UBLs for NAND boot
and UART boot. That's why our tools are able to:
M-1. support loading compressed images in UART boot (and hence download
uncompressed image over 300k for less than 14 seconds!)
M-2. support code runtime self-extraction
M-3. support bad block checking/skipping for NAND boot
M-4. support booting uImages (with the CRC checking code)
M-5. have fancy printf() support in the small UBLs
M-6. use the flexible u-boot binary for image flashing and verification
(and hence support both NOR and NAND flasing with bad block skipping)

I read several postings that vote against C# in host tools. Our design
uses C#, because
M-7. .NET executables are portable (and can be used under Windows too,
which is very important for our firmware testing team)

Our code is mostly GPL and will become fully GPL when I rewrite BOOTME and
BOOTMMS from scratch or Daniel Allred gives his permission to release his
code as GPL. So licensing is not a stopping point.

Having said the above, I personally think that it would be best to start
with our tools and enhance them with features from the other candidates.

I will soon update [1] with details for our tools. When I get back to the
office (next week) I will prepare sample binaries that work on EVM boards.

What do you think?

BR,
Ivan

[1] http://wiki.davincidsp.com/index.php?title=RBL_UBL_and_host_program
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to