Here are some of the gotchas I came across. They might look stupid. But I
hope they could be useful for somebody.
- When you work on a big endian system, first make sure your compiler
actually support big-endian and you have the correct big-endian libraries.
- It'll really save you a lot of time to just install a linux system and
work on that platform other than spending lots of efforts to make the tool
chains and uclinux source tree compiles under CYGWIN.
- If you do want to use CYGWIN, here are some more advices.
- You can download the tar ball from the tool chain link on my web site.
It was precompiled with everything in place for little and big endian.
- Make sure you work on a WindowsNT/2000/XP system and make sure your
CYGWIN installation is on a NTFS partition. This is very important because
the romfs installation script will try to make hard links while the FAT32
partition doesn't support.
- Make sure you install the TCL/TK package of CYGWIN if you want to use
- There are some problems with big endian system for calculating TCP
checksums. The fixes has already been submitted to the uclinux CVS but somehow
I got a earlier version. If you want to know more about it, just google
"uclinux tcp checksum" and you will get it.
- Oh, man! You gotta enable your cache in the CPU. The S3C4510 runs
like a turtle with the cache turned off. It only showed up as 8MIPS comparing
to 50MIPS with the cache on.
- With the cache on, remember to access your externa I/O device
using the non-cachable memory maping because obviously that is not a real
SDRAM. The external RTL8019 ethernet controller with stop working if you use
the cachable address with the cache on.
- If you use sash, the piping on the command line doesn't seem to be
working. So for the ip_forwarding enable you have to create a file with a "1"
in it like /etc/1 and use "cp /etc/1 /proc/sys/net/ipv4/ip_forward" to do the