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