After several heart-struck failure, I got one workable way to program
each other in FLASH between PlanetCore and U-Boot.

Hardware Platform : RPXlite DW(EP 823 H1 DW)

1. From U-Boot to PlanetCore

Utilities : PlanetCore Boot Loader - PCL200.mot

[root@sam tftpboot]# ppc_8xx-objcopy -O ppcboot
PCL200.mot pcl200.bin

[Target Operation]
u-boot>t 100000 pcl200.bin
u-boot>go 0x100000
## Starting application at 0x00100000 ...

MPC8xx PlanetCore Flash Burner v2.00
Copyright 2001 Embedded Planet.  All rights reserved.

Construct Flash Device.....done.


Program MPC8xx PlanetCore Boot Loader v2.00
Built Sep 19, 2001 at 14:34:42
Image located from FC000000 to FC01B5D1.
(Skipping an image, only loading low boot image)

Low boot board detected, skipping high boot image.
Erasing, programming and verifying will start in 20
seconds
Press P to start immediately or ESC to cancel
Press Space or Enter for more options.
..............

Erasing
Programming
FLASH programmed successfully!
Press R to induce a hard reset

MPC8xx PlanetCore Boot Loader v2.00
Copyright 2001 Embedded Planet.  All rights reserved.
DRAM available size = 64 MB
wvCV
DRAM OK
>

2. From PlanetCore to U-Boot

Utilities : PlanetCore FLASH Burner - PCB200.mot

Use Flash Burner to finish the work:

First, TFTP the U-Boot image file to RAM; For example,
RPXlite_DW.bin to 0x400000
Second, TFTP FLASH Burner to RAM; For example,
0x100000
Third, run the FLASH Burner and Program the U-Boot
image into the correct location in FLASH.

[Target Operation]
MPC8xx PlanetCore Boot Loader v2.00
Copyright 2001 Embedded Planet.  All rights reserved.
DRAM available size = 64 MB
wvCV
DRAM OK
>t
Load using tftp via Ethernet
Enter server IP address <172.16.115.6> :
Enter server filename   <PCL200.mot> : RPXlite_DW.bin
Enter (B)inary or (S)record input mode <S> : B
Enter address offset  : <00400000 hex> :

Total bytes = 120096 in 232184 uSecs
Loaded addresses 00400000 through 0041D51F.
Start address = 00400000
>t
Load using tftp via Ethernet
Enter server IP address <172.16.115.6> :
Enter server filename   <RPXlite_DW.bin> : PCB200.mot
Enter (B)inary or (S)record input mode <B> : S
Enter address offset  : <00000000 hex> :
.512.1024..2048....4096.....
Total bytes = 326280 in 2570249 uSecs
Loaded addresses 00100000 through 0011BB51.
Start address = 00100000
>go
[Go 00100000]

MPC8xx PlanetCore Flash Burner v2.00
Copyright 2001 Embedded Planet.  All rights reserved.

Construct Flash Device.....done.

Bad start address
Start = 0xFFFFFFFF, target = 0xFFFFFFFF, length =
0xFFFFFFFF
Forcing Menu Interface

h[elp]     Show commands.
c[ode]     Show information on code to be loaded.
di[splay]  Display all flash sections.
du[mp]     Dump memory. d ? for more info.
e[rase]    Erase flash sections.
f[ill]     Fill flash sections.
im[age]    Toggle load high, low, or both flash
images.
in[fo]     Show flash information.
ma[p]      Show memory map.
mo[dify]   Modify memory.  m ? for more info.
p[rogram]  Erase, program, and verify now.
reset      Restart the loader.
s[how]     Show flash sections to erase and program.
t[est]     Test flash sections.
q[uit]     Quit without programming.
#program 400000 ff000000 1D51F
doProgram( 400000 ff000000 1D51F )

Start = 0x00400000, target = 0xFF000000, length =
0x0001D51F
Erasing sector 0xFF000000, length 0x008000.
Erasing sector 0xFF008000, length 0x008000.
Erasing sector 0xFF010000, length 0x008000.
Erasing sector 0xFF018000, length 0x008000.
Programming FF000000 through FF01D51E
FLASH programmed successfully!
Press R to induce a hard reset

Forcing Hard Reset by MachineCheck and
ResetOnCheckstop...

U-Boot 1.1.2 (Aug 29 2004 - 15:11:27)

CPU:   PPC823EZTnnB2 at 48 MHz: 16 kB I-Cache 8 kB
D-Cache
Board: RPXlite_DW
DRAM:  64 MB
FLASH: 16 MB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   SCC ETHERNET
u-boot>

-------------------------------------------------

Well, sometimes network function of PlanetCore couldn't work when
switching from U-Boot to PlanetCore. For example, you couldn't
download a file from HOST PC via TFTP. Don't worry, just restart your
HOST PC and everything would work as smooth as clockwork. I don't
know the reason WHY:-)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Merry Christmas and Happy New Year!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

=====
Best regards,

Sam
