devf-generic on total5200

I am trying to build an OS on a total5200 development system and am
having trouble getting the read/write flash filesystem working. I have
used mkifs to create a basic OS image which has been flashed into the
board and runs fine (as in I can boot from the flash image and run QNX
on the embedded system). I have tried to create a flash partition that
is mounted as /flash and has a variety of configuration and user files.
I’ve used mkefs to create this image and burn it into the flash on the
system but it never shows up when I boot into the OS.

Here is the deBUG prompt and basic memory config:
Copyright 1995-2003 Motorola, Inc. All Rights Reserved.
MPC6XX Total5200 V2 Firmware v2d.2a.1a (Build 6 on Jun 2 2004 15:02:18)

CPU: MPC5200 v1.2
Clocks: Core=396.00 MHz, SDRAM=132.00 MHz, IPBI=132.00 MHz, PCI=33.00 MHz
SDRAM: 00000000 - 07FFFFFF = 128 MBytes SDR
Flash: FC000000 - FFFFFFFF = 64 MBytes

Here is the line from my build file that should start the flash driver:
devf-generic -s0xfc000000,64M

Here is the build file:
[block_size=64k spare_blocks=1 mount=/flash min_size=1024K
max_size=1024K perms=+r,+w,+x]

Directory Structure

/etc/profile = {
SYSNAME=nto
TERM=vt100
HOME=/
PATH=./:/proc/boot:/sbin:/bin:/usr/local/bin:/usr/photon/bin
LD_LIBRARY_PATH=./:/proc/boot:/usr/lib:/usr/local/lib
}
/etc/config/ttys = {
con1 “/bin/login” qansi-m on
con2 “/bin/login” qansi-m on
con3 “/bin/login” qansi-m on
}
/etc/hosts = {
127.0.0.1 localhost
}
/etc/services = {
tftp 69/udp
telnet 23/tcp
ftp 21/tcp
}
/etc/passwd = {
ftp:x:14:80:FTP User:/:/bin/ksh
root::0:0:SuperUser:/:/bin/ksh
}
/etc/inetd.conf = {
telnet stream tcp nowait root /sbin/telnetd in.telnetd -n
ftp stream tcp nowait root /sbin/ftpd in.ftpd -l
tftp dgram udp wait root /sbin/tftpd in.tftpd /etc
}
/etc/ftpusers = {
}
/etc/rc = {
if [[ -x /etc/bootup.ksh ]]; then
/etc/bootup.ksh
fi
if [[ -r /etc/profile ]]; then
. /etc/profile
fi
while /bin/true; do
/bin/ksh
done
/bin/shutdown -v -S system
}
/etc/bootup.config.ksh = {
echo " "
echo “Using configuration bootup script.”
echo “More advanced startup scripts are available:”
echo “1. bootup.config.ksh - Starts configuration bootscript.”
echo “2. bootup.network.ksh - Starts the network drivers.”
echo “3. bootup.full.ksh - Starts all available drivers”
echo “4. bootup.null.ksh - Placeholder. Does nothing.”
echo " "
echo “To enable these boot scripts for future reboots type the command:”
echo " ln -s -f /etc/ /etc/bootup.ksh"
echo " "
echo “To disable these boot scripts for future reboots type the command:”
echo " ln -s -f /etc/bootup.null.ksh /etc/bootup.ksh"
echo " "
}
/etc/bootup.network.ksh = {
echo “network starup script…”
inetd
}
/etc/bootup.full.ksh = {
echo “Starting the Photon microGUI…”
Photon &
waitfor /dev/photon
phfont &
waitfor /dev/phfont
io-graphics -ds1d13806 xres=640,yres=480,bitpp=16,photon -pphoton &
}
/etc/bootup.null.ksh = {
true
}
/etc/system/trap/calib.total={
}

This is the output from running devf-generic -s0xfc000000,64M -vvvvv:
calloc f3s_start, 181: 0x80
calloc f3s_start, 211: 0x40
calloc f3s_start, 235: 0x30
calloc f3s_start, 257: 0x48
calloc f3s_start, 271: 0x98

devf: fs0 socket generic

trying device width = 4

devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1

trying device width = 2

devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1

trying device width = 1

devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1

trying device width = 4

devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1

trying device width = 2

devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1

trying device width = 1

devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1

trying device width = 4

devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1

trying device width = 2

devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1

trying device width = 1

devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1

trying device width = 4

devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1

trying device width = 2

devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1

trying device width = 1

devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1

trying device width = 4

devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1

trying device width = 2

devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1

trying device width = 1

devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
devf: chip total = 4
devf: bus width = 2
devf: chip interleave = 2
calloc f3s_array_alloc, 21: 0x60
calloc f3s_array_alloc, 22: 0x800
calloc f3s_array_alloc, 23: 0x400
calloc f3s_array_alloc, 24: 0x200
calloc f3s_array_alloc, 25: 0x200
calloc f3s_array_alloc, 26: 0x800
malloc f3s_array_alloc, 27: 0x4800
devf: fs0 array CFI_MirrorBit_Workaround U: 200 S: 020000
malloc f3s_array_attach, 135: 0x10
calloc f3s_array_attach, 139: 0x80
calloc f3s_array_attach, 140: 0x80
calloc f3s_array_attach, 143: 0x88
calloc f3s_array_attach, 146: 0x30
calloc f3s_array_attach, 147: 0x30
devf: fs0p0 raw U: 200

Any ideas?

I have some experience with QNX and have a built an OS with a read/write
flash filesystem on a lite5200 board. I’m trying to move that system to
the total5200 board because I need the graphics capabilities among other
things.

Thanks,

Tim Clem
Native American Technologies

Tim,

devf-generic does not work on the Lite5200 or Total 5200, since a
custom flash read routine is required. There is a custom flash driver
for these systems, devf-mgt5200. The following lines are from the
build file for the MGT5200 BSP:

#######################################################################

LITE5200 EVB

#######################################################################

devf-mgt5200 -s0xff000000,16M

#######################################################################

TOTAL 5200 SDP

#######################################################################

devf-mgt5200 -s0xfe000000,32M

#######################################################################

TOTAL 5200 SDP REV2

#######################################################################

devf-mgt5200 -s0xfc000000,64M




Tim Clem <tclem@natech-inc.com> wrote:

I am trying to build an OS on a total5200 development system and am
having trouble getting the read/write flash filesystem working. I have
used mkifs to create a basic OS image which has been flashed into the
board and runs fine (as in I can boot from the flash image and run QNX
on the embedded system). I have tried to create a flash partition that
is mounted as /flash and has a variety of configuration and user files.
I’ve used mkefs to create this image and burn it into the flash on the
system but it never shows up when I boot into the OS.

Here is the deBUG prompt and basic memory config:
Copyright 1995-2003 Motorola, Inc. All Rights Reserved.
MPC6XX Total5200 V2 Firmware v2d.2a.1a (Build 6 on Jun 2 2004 15:02:18)

CPU: MPC5200 v1.2
Clocks: Core=396.00 MHz, SDRAM=132.00 MHz, IPBI=132.00 MHz, PCI=33.00 MHz
SDRAM: 00000000 - 07FFFFFF = 128 MBytes SDR
Flash: FC000000 - FFFFFFFF = 64 MBytes

Here is the line from my build file that should start the flash driver:
devf-generic -s0xfc000000,64M

Here is the build file:
[block_size=64k spare_blocks=1 mount=/flash min_size=1024K
max_size=1024K perms=+r,+w,+x]

Directory Structure

/etc/profile = {
SYSNAME=nto
TERM=vt100
HOME=/
PATH=./:/proc/boot:/sbin:/bin:/usr/local/bin:/usr/photon/bin
LD_LIBRARY_PATH=./:/proc/boot:/usr/lib:/usr/local/lib
}
/etc/config/ttys = {
con1 “/bin/login” qansi-m on
con2 “/bin/login” qansi-m on
con3 “/bin/login” qansi-m on
}
/etc/hosts = {
127.0.0.1 localhost
}
/etc/services = {
tftp 69/udp
telnet 23/tcp
ftp 21/tcp
}
/etc/passwd = {
ftp> :x:> 14:80:FTP User:/:/bin/ksh
root::0:0:SuperUser:/:/bin/ksh
}
/etc/inetd.conf = {
telnet stream tcp nowait root /sbin/telnetd in.telnetd -n
ftp stream tcp nowait root /sbin/ftpd in.ftpd -l
tftp dgram udp wait root /sbin/tftpd in.tftpd /etc
}
/etc/ftpusers = {
}
/etc/rc = {
if [[ -x /etc/bootup.ksh ]]; then
/etc/bootup.ksh
fi
if [[ -r /etc/profile ]]; then
. /etc/profile
fi
while /bin/true; do
/bin/ksh
done
/bin/shutdown -v -S system
}
/etc/bootup.config.ksh = {
echo " "
echo “Using configuration bootup script.”
echo “More advanced startup scripts are available:”
echo “1. bootup.config.ksh - Starts configuration bootscript.”
echo “2. bootup.network.ksh - Starts the network drivers.”
echo “3. bootup.full.ksh - Starts all available drivers”
echo “4. bootup.null.ksh - Placeholder. Does nothing.”
echo " "
echo “To enable these boot scripts for future reboots type the command:”
echo " ln -s -f /etc/ /etc/bootup.ksh"
echo " "
echo “To disable these boot scripts for future reboots type the command:”
echo " ln -s -f /etc/bootup.null.ksh /etc/bootup.ksh"
echo " "
}
/etc/bootup.network.ksh = {
echo “network starup script…”
inetd
}
/etc/bootup.full.ksh = {
echo “Starting the Photon microGUI…”
Photon &
waitfor /dev/photon
phfont &
waitfor /dev/phfont
io-graphics -ds1d13806 xres=640,yres=480,bitpp=16,photon -pphoton &
}
/etc/bootup.null.ksh = {
true
}
/etc/system/trap/calib.total={
}

This is the output from running devf-generic -s0xfc000000,64M -vvvvv:
calloc f3s_start, 181: 0x80
calloc f3s_start, 211: 0x40
calloc f3s_start, 235: 0x30
calloc f3s_start, 257: 0x48
calloc f3s_start, 271: 0x98

devf: fs0 socket generic

trying device width = 4

devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1

trying device width = 2

devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1

trying device width = 1

devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1

trying device width = 4

devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1

trying device width = 2

devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1

trying device width = 1

devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1

trying device width = 4

devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1

trying device width = 2

devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1

trying device width = 1

devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1

trying device width = 4

devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1

trying device width = 2

devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1

trying device width = 1

devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1

trying device width = 4

devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1

trying device width = 2

devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1

trying device width = 1

devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
devf: chip total = 4
devf: bus width = 2
devf: chip interleave = 2
calloc f3s_array_alloc, 21: 0x60
calloc f3s_array_alloc, 22: 0x800
calloc f3s_array_alloc, 23: 0x400
calloc f3s_array_alloc, 24: 0x200
calloc f3s_array_alloc, 25: 0x200
calloc f3s_array_alloc, 26: 0x800
malloc f3s_array_alloc, 27: 0x4800
devf: fs0 array CFI_MirrorBit_Workaround U: 200 S: 020000
malloc f3s_array_attach, 135: 0x10
calloc f3s_array_attach, 139: 0x80
calloc f3s_array_attach, 140: 0x80
calloc f3s_array_attach, 143: 0x88
calloc f3s_array_attach, 146: 0x30
calloc f3s_array_attach, 147: 0x30
devf: fs0p0 raw U: 200

Any ideas?

I have some experience with QNX and have a built an OS with a read/write
flash filesystem on a lite5200 board. I’m trying to move that system to
the total5200 board because I need the graphics capabilities among other
things.

Thanks,

Tim Clem
Native American Technologies

David Green (dgreen@qnx.com)
QNX Software Systems Ltd.
http://www.qnx.com

I thought devf-mgt5200 was replaced by devf-generic on the latest
version of the flash filesystem and embedding TDK? I’m using
devf-generic on a lite5200 and it works okay. I’m not sure I have the
devf-mgt5200 binary anymore. Where might I get ahold of that?

Just for your reference I’m running QNX 6.3 with SP 1.

Thanks,

Tim


Dave Green wrote:

Tim,

devf-generic does not work on the Lite5200 or Total 5200, since a
custom flash read routine is required. There is a custom flash driver
for these systems, devf-mgt5200. The following lines are from the
build file for the MGT5200 BSP:

#######################################################################

LITE5200 EVB

#######################################################################

devf-mgt5200 -s0xff000000,16M

#######################################################################

TOTAL 5200 SDP

#######################################################################

devf-mgt5200 -s0xfe000000,32M

#######################################################################

TOTAL 5200 SDP REV2

#######################################################################

devf-mgt5200 -s0xfc000000,64M




Tim Clem <> tclem@natech-inc.com> > wrote:

I am trying to build an OS on a total5200 development system and am
having trouble getting the read/write flash filesystem working. I have
used mkifs to create a basic OS image which has been flashed into the
board and runs fine (as in I can boot from the flash image and run QNX
on the embedded system). I have tried to create a flash partition that
is mounted as /flash and has a variety of configuration and user files.
I’ve used mkefs to create this image and burn it into the flash on the
system but it never shows up when I boot into the OS.


Here is the deBUG prompt and basic memory config:
Copyright 1995-2003 Motorola, Inc. All Rights Reserved.
MPC6XX Total5200 V2 Firmware v2d.2a.1a (Build 6 on Jun 2 2004 15:02:18)


CPU: MPC5200 v1.2
Clocks: Core=396.00 MHz, SDRAM=132.00 MHz, IPBI=132.00 MHz, PCI=33.00 MHz
SDRAM: 00000000 - 07FFFFFF = 128 MBytes SDR
Flash: FC000000 - FFFFFFFF = 64 MBytes


Here is the line from my build file that should start the flash driver:
devf-generic -s0xfc000000,64M


Here is the build file:
[block_size=64k spare_blocks=1 mount=/flash min_size=1024K
max_size=1024K perms=+r,+w,+x]

\

Directory Structure

/etc/profile = {
SYSNAME=nto
TERM=vt100
HOME=/
PATH=./:/proc/boot:/sbin:/bin:/usr/local/bin:/usr/photon/bin
LD_LIBRARY_PATH=./:/proc/boot:/usr/lib:/usr/local/lib
}
/etc/config/ttys = {
con1 “/bin/login” qansi-m on
con2 “/bin/login” qansi-m on
con3 “/bin/login” qansi-m on
}
/etc/hosts = {
127.0.0.1 localhost
}
/etc/services = {
tftp 69/udp
telnet 23/tcp
ftp 21/tcp
}
/etc/passwd = {
ftp> :x:> 14:80:FTP User:/:/bin/ksh
root::0:0:SuperUser:/:/bin/ksh
}
/etc/inetd.conf = {
telnet stream tcp nowait root /sbin/telnetd in.telnetd -n
ftp stream tcp nowait root /sbin/ftpd in.ftpd -l
tftp dgram udp wait root /sbin/tftpd in.tftpd /etc
}
/etc/ftpusers = {
}
/etc/rc = {
if [[ -x /etc/bootup.ksh ]]; then
/etc/bootup.ksh
fi
if [[ -r /etc/profile ]]; then
. /etc/profile
fi
while /bin/true; do
/bin/ksh
done
/bin/shutdown -v -S system
}
/etc/bootup.config.ksh = {
echo " "
echo “Using configuration bootup script.”
echo “More advanced startup scripts are available:”
echo “1. bootup.config.ksh - Starts configuration bootscript.”
echo “2. bootup.network.ksh - Starts the network drivers.”
echo “3. bootup.full.ksh - Starts all available drivers”
echo “4. bootup.null.ksh - Placeholder. Does nothing.”
echo " "
echo “To enable these boot scripts for future reboots type the command:”
echo " ln -s -f /etc/ /etc/bootup.ksh"
echo " "
echo “To disable these boot scripts for future reboots type the command:”
echo " ln -s -f /etc/bootup.null.ksh /etc/bootup.ksh"
echo " "
}
/etc/bootup.network.ksh = {
echo “network starup script…”
inetd
}
/etc/bootup.full.ksh = {
echo “Starting the Photon microGUI…”
Photon &
waitfor /dev/photon
phfont &
waitfor /dev/phfont
io-graphics -ds1d13806 xres=640,yres=480,bitpp=16,photon -pphoton &
}
/etc/bootup.null.ksh = {
true
}
/etc/system/trap/calib.total={
}


This is the output from running devf-generic -s0xfc000000,64M -vvvvv:
calloc f3s_start, 181: 0x80
calloc f3s_start, 211: 0x40
calloc f3s_start, 235: 0x30
calloc f3s_start, 257: 0x48
calloc f3s_start, 271: 0x98

devf: fs0 socket generic



trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
devf: chip total = 4
devf: bus width = 2
devf: chip interleave = 2
calloc f3s_array_alloc, 21: 0x60
calloc f3s_array_alloc, 22: 0x800
calloc f3s_array_alloc, 23: 0x400
calloc f3s_array_alloc, 24: 0x200
calloc f3s_array_alloc, 25: 0x200
calloc f3s_array_alloc, 26: 0x800
malloc f3s_array_alloc, 27: 0x4800
devf: fs0 array CFI_MirrorBit_Workaround U: 200 S: 020000
malloc f3s_array_attach, 135: 0x10
calloc f3s_array_attach, 139: 0x80
calloc f3s_array_attach, 140: 0x80
calloc f3s_array_attach, 143: 0x88
calloc f3s_array_attach, 146: 0x30
calloc f3s_array_attach, 147: 0x30
devf: fs0p0 raw U: 200


Any ideas?


I have some experience with QNX and have a built an OS with a read/write
flash filesystem on a lite5200 board. I’m trying to move that system to
the total5200 board because I need the graphics capabilities among other
things.


Thanks,


Tim Clem
Native American Technologies

\

Okay, I found the devf-mgt5200 binary and replace the devf-generic. I’m
still not seeing my read/write flash partitions.

Running devf-mgt5200 -s0xfc000000,64M -vvvvv give this output:
calloc f3s_start, 181: 0x80
calloc f3s_start, 211: 0x40
calloc f3s_start, 235: 0x30
calloc f3s_start, 257: 0x48
calloc f3s_start, 271: 0x98

devf: fs0 socket MGT5200 Flash

devf: chip total = 2
devf: bus width = 4
devf: chip interleave = 4
calloc f3s_array_alloc, 21: 0x30
calloc f3s_array_alloc, 22: 0x400
calloc f3s_array_alloc, 23: 0x200
calloc f3s_array_alloc, 24: 0x100
calloc f3s_array_alloc, 25: 0x100
calloc f3s_array_alloc, 26: 0x400
malloc f3s_array_alloc, 27: 0x2400
devf: fs0 array CFI U: 100 S: 040000
malloc f3s_array_attach, 135: 0x10
calloc f3s_array_attach, 139: 0x80
calloc f3s_array_attach, 140: 0x80
calloc f3s_array_attach, 143: 0x88
calloc f3s_array_attach, 146: 0x30
calloc f3s_array_attach, 147: 0x30
devf: fs0p0 raw U: 100

I also ran flashctl just to see if I can create a partition from the OS:
-p /dev/fs0p0 -e -f -n /flash -m

This works! which I did not see happen previously. Now I need to figure
out why my mkefs build file doesn’t produce a flash partition that is
valid. Any ideas here?

Tim



Dave Green wrote:

Tim,

devf-generic does not work on the Lite5200 or Total 5200, since a
custom flash read routine is required. There is a custom flash driver
for these systems, devf-mgt5200. The following lines are from the
build file for the MGT5200 BSP:

#######################################################################

LITE5200 EVB

#######################################################################

devf-mgt5200 -s0xff000000,16M

#######################################################################

TOTAL 5200 SDP

#######################################################################

devf-mgt5200 -s0xfe000000,32M

#######################################################################

TOTAL 5200 SDP REV2

#######################################################################

devf-mgt5200 -s0xfc000000,64M




Tim Clem <> tclem@natech-inc.com> > wrote:

I am trying to build an OS on a total5200 development system and am
having trouble getting the read/write flash filesystem working. I have
used mkifs to create a basic OS image which has been flashed into the
board and runs fine (as in I can boot from the flash image and run QNX
on the embedded system). I have tried to create a flash partition that
is mounted as /flash and has a variety of configuration and user files.
I’ve used mkefs to create this image and burn it into the flash on the
system but it never shows up when I boot into the OS.


Here is the deBUG prompt and basic memory config:
Copyright 1995-2003 Motorola, Inc. All Rights Reserved.
MPC6XX Total5200 V2 Firmware v2d.2a.1a (Build 6 on Jun 2 2004 15:02:18)


CPU: MPC5200 v1.2
Clocks: Core=396.00 MHz, SDRAM=132.00 MHz, IPBI=132.00 MHz, PCI=33.00 MHz
SDRAM: 00000000 - 07FFFFFF = 128 MBytes SDR
Flash: FC000000 - FFFFFFFF = 64 MBytes


Here is the line from my build file that should start the flash driver:
devf-generic -s0xfc000000,64M


Here is the build file:
[block_size=64k spare_blocks=1 mount=/flash min_size=1024K
max_size=1024K perms=+r,+w,+x]

\

Directory Structure

/etc/profile = {
SYSNAME=nto
TERM=vt100
HOME=/
PATH=./:/proc/boot:/sbin:/bin:/usr/local/bin:/usr/photon/bin
LD_LIBRARY_PATH=./:/proc/boot:/usr/lib:/usr/local/lib
}
/etc/config/ttys = {
con1 “/bin/login” qansi-m on
con2 “/bin/login” qansi-m on
con3 “/bin/login” qansi-m on
}
/etc/hosts = {
127.0.0.1 localhost
}
/etc/services = {
tftp 69/udp
telnet 23/tcp
ftp 21/tcp
}
/etc/passwd = {
ftp> :x:> 14:80:FTP User:/:/bin/ksh
root::0:0:SuperUser:/:/bin/ksh
}
/etc/inetd.conf = {
telnet stream tcp nowait root /sbin/telnetd in.telnetd -n
ftp stream tcp nowait root /sbin/ftpd in.ftpd -l
tftp dgram udp wait root /sbin/tftpd in.tftpd /etc
}
/etc/ftpusers = {
}
/etc/rc = {
if [[ -x /etc/bootup.ksh ]]; then
/etc/bootup.ksh
fi
if [[ -r /etc/profile ]]; then
. /etc/profile
fi
while /bin/true; do
/bin/ksh
done
/bin/shutdown -v -S system
}
/etc/bootup.config.ksh = {
echo " "
echo “Using configuration bootup script.”
echo “More advanced startup scripts are available:”
echo “1. bootup.config.ksh - Starts configuration bootscript.”
echo “2. bootup.network.ksh - Starts the network drivers.”
echo “3. bootup.full.ksh - Starts all available drivers”
echo “4. bootup.null.ksh - Placeholder. Does nothing.”
echo " "
echo “To enable these boot scripts for future reboots type the command:”
echo " ln -s -f /etc/ /etc/bootup.ksh"
echo " "
echo “To disable these boot scripts for future reboots type the command:”
echo " ln -s -f /etc/bootup.null.ksh /etc/bootup.ksh"
echo " "
}
/etc/bootup.network.ksh = {
echo “network starup script…”
inetd
}
/etc/bootup.full.ksh = {
echo “Starting the Photon microGUI…”
Photon &
waitfor /dev/photon
phfont &
waitfor /dev/phfont
io-graphics -ds1d13806 xres=640,yres=480,bitpp=16,photon -pphoton &
}
/etc/bootup.null.ksh = {
true
}
/etc/system/trap/calib.total={
}


This is the output from running devf-generic -s0xfc000000,64M -vvvvv:
calloc f3s_start, 181: 0x80
calloc f3s_start, 211: 0x40
calloc f3s_start, 235: 0x30
calloc f3s_start, 257: 0x48
calloc f3s_start, 271: 0x98

devf: fs0 socket generic



trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
devf: chip total = 4
devf: bus width = 2
devf: chip interleave = 2
calloc f3s_array_alloc, 21: 0x60
calloc f3s_array_alloc, 22: 0x800
calloc f3s_array_alloc, 23: 0x400
calloc f3s_array_alloc, 24: 0x200
calloc f3s_array_alloc, 25: 0x200
calloc f3s_array_alloc, 26: 0x800
malloc f3s_array_alloc, 27: 0x4800
devf: fs0 array CFI_MirrorBit_Workaround U: 200 S: 020000
malloc f3s_array_attach, 135: 0x10
calloc f3s_array_attach, 139: 0x80
calloc f3s_array_attach, 140: 0x80
calloc f3s_array_attach, 143: 0x88
calloc f3s_array_attach, 146: 0x30
calloc f3s_array_attach, 147: 0x30
devf: fs0p0 raw U: 200


Any ideas?


I have some experience with QNX and have a built an OS with a read/write
flash filesystem on a lite5200 board. I’m trying to move that system to
the total5200 board because I need the graphics capabilities among other
things.


Thanks,


Tim Clem
Native American Technologies

\

OK. Now I’ve really screwed it up. That flashctl command erased all the
flash included the debug. I did not intend to do that. How do I get
deBUG back on the board?

Dave Green wrote:

Tim,

devf-generic does not work on the Lite5200 or Total 5200, since a
custom flash read routine is required. There is a custom flash driver
for these systems, devf-mgt5200. The following lines are from the
build file for the MGT5200 BSP:

#######################################################################

LITE5200 EVB

#######################################################################

devf-mgt5200 -s0xff000000,16M

#######################################################################

TOTAL 5200 SDP

#######################################################################

devf-mgt5200 -s0xfe000000,32M

#######################################################################

TOTAL 5200 SDP REV2

#######################################################################

devf-mgt5200 -s0xfc000000,64M




Tim Clem <> tclem@natech-inc.com> > wrote:

I am trying to build an OS on a total5200 development system and am
having trouble getting the read/write flash filesystem working. I have
used mkifs to create a basic OS image which has been flashed into the
board and runs fine (as in I can boot from the flash image and run QNX
on the embedded system). I have tried to create a flash partition that
is mounted as /flash and has a variety of configuration and user files.
I’ve used mkefs to create this image and burn it into the flash on the
system but it never shows up when I boot into the OS.


Here is the deBUG prompt and basic memory config:
Copyright 1995-2003 Motorola, Inc. All Rights Reserved.
MPC6XX Total5200 V2 Firmware v2d.2a.1a (Build 6 on Jun 2 2004 15:02:18)


CPU: MPC5200 v1.2
Clocks: Core=396.00 MHz, SDRAM=132.00 MHz, IPBI=132.00 MHz, PCI=33.00 MHz
SDRAM: 00000000 - 07FFFFFF = 128 MBytes SDR
Flash: FC000000 - FFFFFFFF = 64 MBytes


Here is the line from my build file that should start the flash driver:
devf-generic -s0xfc000000,64M


Here is the build file:
[block_size=64k spare_blocks=1 mount=/flash min_size=1024K
max_size=1024K perms=+r,+w,+x]

\

Directory Structure

/etc/profile = {
SYSNAME=nto
TERM=vt100
HOME=/
PATH=./:/proc/boot:/sbin:/bin:/usr/local/bin:/usr/photon/bin
LD_LIBRARY_PATH=./:/proc/boot:/usr/lib:/usr/local/lib
}
/etc/config/ttys = {
con1 “/bin/login” qansi-m on
con2 “/bin/login” qansi-m on
con3 “/bin/login” qansi-m on
}
/etc/hosts = {
127.0.0.1 localhost
}
/etc/services = {
tftp 69/udp
telnet 23/tcp
ftp 21/tcp
}
/etc/passwd = {
ftp> :x:> 14:80:FTP User:/:/bin/ksh
root::0:0:SuperUser:/:/bin/ksh
}
/etc/inetd.conf = {
telnet stream tcp nowait root /sbin/telnetd in.telnetd -n
ftp stream tcp nowait root /sbin/ftpd in.ftpd -l
tftp dgram udp wait root /sbin/tftpd in.tftpd /etc
}
/etc/ftpusers = {
}
/etc/rc = {
if [[ -x /etc/bootup.ksh ]]; then
/etc/bootup.ksh
fi
if [[ -r /etc/profile ]]; then
. /etc/profile
fi
while /bin/true; do
/bin/ksh
done
/bin/shutdown -v -S system
}
/etc/bootup.config.ksh = {
echo " "
echo “Using configuration bootup script.”
echo “More advanced startup scripts are available:”
echo “1. bootup.config.ksh - Starts configuration bootscript.”
echo “2. bootup.network.ksh - Starts the network drivers.”
echo “3. bootup.full.ksh - Starts all available drivers”
echo “4. bootup.null.ksh - Placeholder. Does nothing.”
echo " "
echo “To enable these boot scripts for future reboots type the command:”
echo " ln -s -f /etc/ /etc/bootup.ksh"
echo " "
echo “To disable these boot scripts for future reboots type the command:”
echo " ln -s -f /etc/bootup.null.ksh /etc/bootup.ksh"
echo " "
}
/etc/bootup.network.ksh = {
echo “network starup script…”
inetd
}
/etc/bootup.full.ksh = {
echo “Starting the Photon microGUI…”
Photon &
waitfor /dev/photon
phfont &
waitfor /dev/phfont
io-graphics -ds1d13806 xres=640,yres=480,bitpp=16,photon -pphoton &
}
/etc/bootup.null.ksh = {
true
}
/etc/system/trap/calib.total={
}


This is the output from running devf-generic -s0xfc000000,64M -vvvvv:
calloc f3s_start, 181: 0x80
calloc f3s_start, 211: 0x40
calloc f3s_start, 235: 0x30
calloc f3s_start, 257: 0x48
calloc f3s_start, 271: 0x98

devf: fs0 socket generic



trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
devf: chip total = 4
devf: bus width = 2
devf: chip interleave = 2
calloc f3s_array_alloc, 21: 0x60
calloc f3s_array_alloc, 22: 0x800
calloc f3s_array_alloc, 23: 0x400
calloc f3s_array_alloc, 24: 0x200
calloc f3s_array_alloc, 25: 0x200
calloc f3s_array_alloc, 26: 0x800
malloc f3s_array_alloc, 27: 0x4800
devf: fs0 array CFI_MirrorBit_Workaround U: 200 S: 020000
malloc f3s_array_attach, 135: 0x10
calloc f3s_array_attach, 139: 0x80
calloc f3s_array_attach, 140: 0x80
calloc f3s_array_attach, 143: 0x88
calloc f3s_array_attach, 146: 0x30
calloc f3s_array_attach, 147: 0x30
devf: fs0p0 raw U: 200


Any ideas?


I have some experience with QNX and have a built an OS with a read/write
flash filesystem on a lite5200 board. I’m trying to move that system to
the total5200 board because I need the graphics capabilities among other
things.


Thanks,


Tim Clem
Native American Technologies

\

Tim Clem <tclem@natech-inc.com> wrote:

OK. Now I’ve really screwed it up. That flashctl command erased all the
flash included the debug. I did not intend to do that. How do I get
deBUG back on the board?

Tim,

I’m afraid at this point the only recourse is to use a JTAG unit to
reflash your board; however, when we’ve made similar errors here,
Freescale could not provide us with a JTAG solution for doing this,
so the board had to be sent back to Freescale for re-flashing…

As to your previous question, it looks like the flash is being detected
with a block size of 256k (devf: fs0 array CFI U: 100 S: 040000), but
in your efs.build file, you’ve specified a block size of 64k. If you
change it to 256k (after you get your board reflashed), I think that
the driver will then see partitions made with ‘mkefs’.



Dave Green wrote:
Tim,

devf-generic does not work on the Lite5200 or Total 5200, since a
custom flash read routine is required. There is a custom flash driver
for these systems, devf-mgt5200. The following lines are from the
build file for the MGT5200 BSP:

#######################################################################

LITE5200 EVB

#######################################################################

devf-mgt5200 -s0xff000000,16M

#######################################################################

TOTAL 5200 SDP

#######################################################################

devf-mgt5200 -s0xfe000000,32M

#######################################################################

TOTAL 5200 SDP REV2

#######################################################################

devf-mgt5200 -s0xfc000000,64M




Tim Clem <> tclem@natech-inc.com> > wrote:

I am trying to build an OS on a total5200 development system and am
having trouble getting the read/write flash filesystem working. I have
used mkifs to create a basic OS image which has been flashed into the
board and runs fine (as in I can boot from the flash image and run QNX
on the embedded system). I have tried to create a flash partition that
is mounted as /flash and has a variety of configuration and user files.
I’ve used mkefs to create this image and burn it into the flash on the
system but it never shows up when I boot into the OS.


Here is the deBUG prompt and basic memory config:
Copyright 1995-2003 Motorola, Inc. All Rights Reserved.
MPC6XX Total5200 V2 Firmware v2d.2a.1a (Build 6 on Jun 2 2004 15:02:18)


CPU: MPC5200 v1.2
Clocks: Core=396.00 MHz, SDRAM=132.00 MHz, IPBI=132.00 MHz, PCI=33.00 MHz
SDRAM: 00000000 - 07FFFFFF = 128 MBytes SDR
Flash: FC000000 - FFFFFFFF = 64 MBytes


Here is the line from my build file that should start the flash driver:
devf-generic -s0xfc000000,64M


Here is the build file:
[block_size=64k spare_blocks=1 mount=/flash min_size=1024K
max_size=1024K perms=+r,+w,+x]

\

Directory Structure

/etc/profile = {
SYSNAME=nto
TERM=vt100
HOME=/
PATH=./:/proc/boot:/sbin:/bin:/usr/local/bin:/usr/photon/bin
LD_LIBRARY_PATH=./:/proc/boot:/usr/lib:/usr/local/lib
}
/etc/config/ttys = {
con1 “/bin/login” qansi-m on
con2 “/bin/login” qansi-m on
con3 “/bin/login” qansi-m on
}
/etc/hosts = {
127.0.0.1 localhost
}
/etc/services = {
tftp 69/udp
telnet 23/tcp
ftp 21/tcp
}
/etc/passwd = {
ftp> :x:> 14:80:FTP User:/:/bin/ksh
root::0:0:SuperUser:/:/bin/ksh
}
/etc/inetd.conf = {
telnet stream tcp nowait root /sbin/telnetd in.telnetd -n
ftp stream tcp nowait root /sbin/ftpd in.ftpd -l
tftp dgram udp wait root /sbin/tftpd in.tftpd /etc
}
/etc/ftpusers = {
}
/etc/rc = {
if [[ -x /etc/bootup.ksh ]]; then
/etc/bootup.ksh
fi
if [[ -r /etc/profile ]]; then
. /etc/profile
fi
while /bin/true; do
/bin/ksh
done
/bin/shutdown -v -S system
}
/etc/bootup.config.ksh = {
echo " "
echo “Using configuration bootup script.”
echo “More advanced startup scripts are available:”
echo “1. bootup.config.ksh - Starts configuration bootscript.”
echo “2. bootup.network.ksh - Starts the network drivers.”
echo “3. bootup.full.ksh - Starts all available drivers”
echo “4. bootup.null.ksh - Placeholder. Does nothing.”
echo " "
echo “To enable these boot scripts for future reboots type the command:”
echo " ln -s -f /etc/ /etc/bootup.ksh"
echo " "
echo “To disable these boot scripts for future reboots type the command:”
echo " ln -s -f /etc/bootup.null.ksh /etc/bootup.ksh"
echo " "
}
/etc/bootup.network.ksh = {
echo “network starup script…”
inetd
}
/etc/bootup.full.ksh = {
echo “Starting the Photon microGUI…”
Photon &
waitfor /dev/photon
phfont &
waitfor /dev/phfont
io-graphics -ds1d13806 xres=640,yres=480,bitpp=16,photon -pphoton &
}
/etc/bootup.null.ksh = {
true
}
/etc/system/trap/calib.total={
}


This is the output from running devf-generic -s0xfc000000,64M -vvvvv:
calloc f3s_start, 181: 0x80
calloc f3s_start, 211: 0x40
calloc f3s_start, 235: 0x30
calloc f3s_start, 257: 0x48
calloc f3s_start, 271: 0x98

devf: fs0 socket generic



trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
devf: chip total = 4
devf: bus width = 2
devf: chip interleave = 2
calloc f3s_array_alloc, 21: 0x60
calloc f3s_array_alloc, 22: 0x800
calloc f3s_array_alloc, 23: 0x400
calloc f3s_array_alloc, 24: 0x200
calloc f3s_array_alloc, 25: 0x200
calloc f3s_array_alloc, 26: 0x800
malloc f3s_array_alloc, 27: 0x4800
devf: fs0 array CFI_MirrorBit_Workaround U: 200 S: 020000
malloc f3s_array_attach, 135: 0x10
calloc f3s_array_attach, 139: 0x80
calloc f3s_array_attach, 140: 0x80
calloc f3s_array_attach, 143: 0x88
calloc f3s_array_attach, 146: 0x30
calloc f3s_array_attach, 147: 0x30
devf: fs0p0 raw U: 200


Any ideas?


I have some experience with QNX and have a built an OS with a read/write
flash filesystem on a lite5200 board. I’m trying to move that system to
the total5200 board because I need the graphics capabilities among other
things.


Thanks,


Tim Clem
Native American Technologies


\

David Green (dgreen@qnx.com)
QNX Software Systems Ltd.
http://www.qnx.com

I managed to figure out how to reflash the Total 5200 with the
CodeWarrior Flash Programmer after a lot of work. I would be glad to
share the configuration if you are at all interested in being able to do
this yourself. The only problem I have now is that the binary I had to
reprogram deBUG with is older than the one that was originally on my
board. The one I just programed says this on startup:

Copyright 1995-2003 Motorola, Inc. All Rights Reserved.
MPC6XX Total5200 Firmware v2d.2a.1a (Build 12 on Dec 3 2003 18:02:02)

CPU: MPC5200 v1.2
Clocks: Core=396.00 MHz, SDRAM=132.00 MHz, IPBI=132.00 MHz, PCI=33.00 MHz
SDRAM: 00000000 - 03FFFFFF = 64 MBytes SDR
Flash: FE000000 - FFFFFFFF = 32 MBytes x 2 banks.


The system thinks I have only 64 MB or SDRAM, etc. You don’t have an
updated verion of this binary do you? The one I have is called
glacier5200.bin. I’m probably looking for a glacier 2 or version 2 of
the deBUG utility.

I appreciate all your help,

Tim Clem

Dave Green wrote:

Tim Clem <> tclem@natech-inc.com> > wrote:

OK. Now I’ve really screwed it up. That flashctl command erased all the
flash included the debug. I did not intend to do that. How do I get
deBUG back on the board?


Tim,

I’m afraid at this point the only recourse is to use a JTAG unit to
reflash your board; however, when we’ve made similar errors here,
Freescale could not provide us with a JTAG solution for doing this,
so the board had to be sent back to Freescale for re-flashing…

As to your previous question, it looks like the flash is being detected
with a block size of 256k (devf: fs0 array CFI U: 100 S: 040000), but
in your efs.build file, you’ve specified a block size of 64k. If you
change it to 256k (after you get your board reflashed), I think that
the driver will then see partitions made with ‘mkefs’.




Dave Green wrote:

Tim,

devf-generic does not work on the Lite5200 or Total 5200, since a
custom flash read routine is required. There is a custom flash driver
for these systems, devf-mgt5200. The following lines are from the
build file for the MGT5200 BSP:

#######################################################################

LITE5200 EVB

#######################################################################

devf-mgt5200 -s0xff000000,16M

#######################################################################

TOTAL 5200 SDP

#######################################################################

devf-mgt5200 -s0xfe000000,32M

#######################################################################

TOTAL 5200 SDP REV2

#######################################################################

devf-mgt5200 -s0xfc000000,64M




Tim Clem <> tclem@natech-inc.com> > wrote:


I am trying to build an OS on a total5200 development system and am
having trouble getting the read/write flash filesystem working. I have
used mkifs to create a basic OS image which has been flashed into the
board and runs fine (as in I can boot from the flash image and run QNX
on the embedded system). I have tried to create a flash partition that
is mounted as /flash and has a variety of configuration and user files.
I’ve used mkefs to create this image and burn it into the flash on the
system but it never shows up when I boot into the OS.


Here is the deBUG prompt and basic memory config:
Copyright 1995-2003 Motorola, Inc. All Rights Reserved.
MPC6XX Total5200 V2 Firmware v2d.2a.1a (Build 6 on Jun 2 2004 15:02:18)


CPU: MPC5200 v1.2
Clocks: Core=396.00 MHz, SDRAM=132.00 MHz, IPBI=132.00 MHz, PCI=33.00 MHz
SDRAM: 00000000 - 07FFFFFF = 128 MBytes SDR
Flash: FC000000 - FFFFFFFF = 64 MBytes


Here is the line from my build file that should start the flash driver:
devf-generic -s0xfc000000,64M


Here is the build file:
[block_size=64k spare_blocks=1 mount=/flash min_size=1024K
max_size=1024K perms=+r,+w,+x]

\

Directory Structure

/etc/profile = {
SYSNAME=nto
TERM=vt100
HOME=/
PATH=./:/proc/boot:/sbin:/bin:/usr/local/bin:/usr/photon/bin
LD_LIBRARY_PATH=./:/proc/boot:/usr/lib:/usr/local/lib
}
/etc/config/ttys = {
con1 “/bin/login” qansi-m on
con2 “/bin/login” qansi-m on
con3 “/bin/login” qansi-m on
}
/etc/hosts = {
127.0.0.1 localhost
}
/etc/services = {
tftp 69/udp
telnet 23/tcp
ftp 21/tcp
}
/etc/passwd = {
ftp> :x:> 14:80:FTP User:/:/bin/ksh
root::0:0:SuperUser:/:/bin/ksh
}
/etc/inetd.conf = {
telnet stream tcp nowait root /sbin/telnetd in.telnetd -n
ftp stream tcp nowait root /sbin/ftpd in.ftpd -l
tftp dgram udp wait root /sbin/tftpd in.tftpd /etc
}
/etc/ftpusers = {
}
/etc/rc = {
if [[ -x /etc/bootup.ksh ]]; then
/etc/bootup.ksh
fi
if [[ -r /etc/profile ]]; then
. /etc/profile
fi
while /bin/true; do
/bin/ksh
done
/bin/shutdown -v -S system
}
/etc/bootup.config.ksh = {
echo " "
echo “Using configuration bootup script.”
echo “More advanced startup scripts are available:”
echo “1. bootup.config.ksh - Starts configuration bootscript.”
echo “2. bootup.network.ksh - Starts the network drivers.”
echo “3. bootup.full.ksh - Starts all available drivers”
echo “4. bootup.null.ksh - Placeholder. Does nothing.”
echo " "
echo “To enable these boot scripts for future reboots type the command:”
echo " ln -s -f /etc/ /etc/bootup.ksh"
echo " "
echo “To disable these boot scripts for future reboots type the command:”
echo " ln -s -f /etc/bootup.null.ksh /etc/bootup.ksh"
echo " "
}
/etc/bootup.network.ksh = {
echo “network starup script…”
inetd
}
/etc/bootup.full.ksh = {
echo “Starting the Photon microGUI…”
Photon &
waitfor /dev/photon
phfont &
waitfor /dev/phfont
io-graphics -ds1d13806 xres=640,yres=480,bitpp=16,photon -pphoton &
}
/etc/bootup.null.ksh = {
true
}
/etc/system/trap/calib.total={
}


This is the output from running devf-generic -s0xfc000000,64M -vvvvv:
calloc f3s_start, 181: 0x80
calloc f3s_start, 211: 0x40
calloc f3s_start, 235: 0x30
calloc f3s_start, 257: 0x48
calloc f3s_start, 271: 0x98

devf: fs0 socket generic



trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
devf: bus width = 1
devf: trying chip inter = 1


trying device width = 4


devf: bus width = 8
devf: trying chip inter = 2
devf: bus width = 4
devf: trying chip inter = 1


trying device width = 2


devf: bus width = 8
devf: trying chip inter = 4
devf: bus width = 4
devf: trying chip inter = 2
devf: bus width = 2
devf: trying chip inter = 1


trying device width = 1


devf: bus width = 8
devf: trying chip inter = 8
devf: bus width = 4
devf: trying chip inter = 4
devf: bus width = 2
devf: trying chip inter = 2
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
dbase->geo_num = 1
dbase->geo_vect[0].unit_pow2 = 17
dbase->geo_vect[0].unit_num = 128
devf: chip total = 4
devf: bus width = 2
devf: chip interleave = 2
calloc f3s_array_alloc, 21: 0x60
calloc f3s_array_alloc, 22: 0x800
calloc f3s_array_alloc, 23: 0x400
calloc f3s_array_alloc, 24: 0x200
calloc f3s_array_alloc, 25: 0x200
calloc f3s_array_alloc, 26: 0x800
malloc f3s_array_alloc, 27: 0x4800
devf: fs0 array CFI_MirrorBit_Workaround U: 200 S: 020000
malloc f3s_array_attach, 135: 0x10
calloc f3s_array_attach, 139: 0x80
calloc f3s_array_attach, 140: 0x80
calloc f3s_array_attach, 143: 0x88
calloc f3s_array_attach, 146: 0x30
calloc f3s_array_attach, 147: 0x30
devf: fs0p0 raw U: 200


Any ideas?


I have some experience with QNX and have a built an OS with a read/write
flash filesystem on a lite5200 board. I’m trying to move that system to
the total5200 board because I need the graphics capabilities among other
things.


Thanks,


Tim Clem
Native American Technologies


\