[uClinux-dev] arm7t EB romfs problem

Quentin Barnes qbarnes at urbana.css.mot.com
Tue Nov 19 19:42:06 EST 2002

I've built the GDB/ARMulator/2.4.x/uC-lib image from the 20020927
baseline.  If I build it as little endian, everything I've tested
has worked fine on the patched gdb simulator.

However, if I build the the same configuration except using
ARMulator-EB product (and manually tweaking the "Generate big endian
code" setting), everything seems to work until I try listing
files in the romfs file system using the built in commands or
change working directories.  I see no output from "ls", "echo *"
returns "No matches", and "cd <dir>" either does nothing or behaves
strangely.  If I mount the romfs file system on Linux, it appears
just fine using Linux native tools.  In the simulator I can even
look at file inodes (e.g. "ls -l /bin/init" returns the proper
output) and see file contents (e.g. "cat /etc/motd" works), but I'm
unable to see directory contents. (readdir(2) broken?)

Any ideas?

One thing I did do is pull the development version of genromfs
(0.5.2 pre-release) from the CVS tree and try that.  No change in
behavior.  I even built genromfs on a big-endian machine and made
the romfs file system there thinking it might be an cross-endian
issue with the genromfs tool running on x86, but that didn't change
the behavior.

My best guess now is it is not a problem with the genromfs tool, but
with libc or kernel endian issue.

My compiler is the recommended one off the uClinux.org web site,

Any help is appreciated.  Sample run is below.


GNU gdb 5.0
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "--host=i686-pc-linux-gnu --target=arm-elf"...
Loaded ROM boot.rom
Loaded ROM boot.rom
Loaded ROM boot.rom
Loaded ROM boot.rom
Connected to the simulator.
Loading section .init, size 0xa000 vma 0x1000000
Loading section .text, size 0xc6570 vma 0x100a000
Loading section .data, size 0x8320 vma 0x10d2000
Start address 0x1000000
Transfer rate: 7095424 bits/sec.
Linux version 2.4.19-uc1 (qbarnes at pinky) (gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(-msep-data patches)) #20 Mon Nov 18 15:08:10 CST 2002
Processor: Atmel AT91M40xxx revision 0
Architecture: EB01
On node 0 totalpages: 1024
zone(0): 0 pages.
zone(1): 1024 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/rom0
Calibrating delay loop... 13.00 BogoMIPS
Memory: 4MB = 4MB total
Memory: 3028KB available (793K code, 175K data, 40K init)
Dentry cache hash table entries: 512 (order: 0, 4096 bytes)
Inode cache hash table entries: 512 (order: 0, 4096 bytes)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 1024 (order: 0, 4096 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Atmel USART driver version 0.99
ttyS0 at 0xfffd0000 (irq = 2) is a builtin Atmel APB USART
ttyS1 at 0xfffcc000 (irq = 3) is a builtin Atmel APB USART
Blkmem copyright 1998,1999 D. Jeff Dionne
Blkmem copyright 1998 Kenneth Albanowski
Blkmem 1 disk images:
0: 1400000-145D7FF [VIRTUAL 1400000-145D7FF] (RO)
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 512 bind 512)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Mounted root (romfs filesystem) readonly.
Shell invoked to run file: /etc/rc
Command: hostname GDB-ARMulator
Command: /bin/expand /etc/ramfs.img /dev/ram0
Command: mount -t proc proc /proc
Command: mount -t ext2 /dev/ram0 /var
Command: mkdir /var/tmp
Command: mkdir /var/log
Command: mkdir /var/run
Command: mkdir /var/lock
Command: cat /etc/motd
Welcome to
          ____ _  _
         /  __| ||_|                 
    _   _| |  | | _ ____  _   _  _  _ 
   | | | | |  | || |  _ \| | | |\ \/ /
   | |_| | |__| || | | | | |_| |/    \
   |  ___\____|_||_|_| |_|\____|\_/\_/
   | |

GDB/ARMulator support by <davidm at snapgear.com>
For further information check:

Execution Finished, Exiting

Sash command shell (version 1.1.1)
/> ls
/> echo *
No matches
/> cd /var

More information about the uClinux-dev mailing list