Okay, since you haven't really added any information, I will conclude that my original assumptions were correct.
You need a compiler that is compatible with the ARM processor on your PXA target host. This compiler can either run natively on the target host, or can run on a different architecture which we call a build host. If the latter case, then the compiler is called a cross compiler. It sounds like this is the case that applies to you.
If your build host is a conventional Linux PC, then you may be able to acquire a compatible cross toolchain (compiler plus all related software development tools) from the vendor of the target host. If not, you will probably have to build one. To build a cross toolchain, I recommend the use of the crosstool-NG package
. You can install crosstool-NG on the build host, and use it to generate a cross toolchain. The cross toolchain can then be used on the build host to build a kernel (and other software) to be run on your target host.
You build the uImage by configuring the kernel build system to use your cross toolchain, and then run 'make uImage' (grotesquely over-simplified recipe). Building kernels is fully independent of any bootloader.
I don't understand what you mean by 'DO I have to configure kernel on ethernet side also'. You will have to configure your kernel to include appropriate drivers for the ethernet hardware on your target board. This is completely independent of what mechanism is used to copy the uImage to the target host.
It isn't clear whether you are asking about booting the new kernel as a diskless host, or whether you want to simply copy the kernel image to some kind of storage on the target host. Since you seem to have a bootloader on the target host, I will guess that it also has local storage. You would normally not use something as primitive as TFTP to copy files from one host to another, although I suppose if that is all you have, then that's what you would do.
Do you have a working kernel and root filesystem on your PXA300 target host, or do you intend to bring up a completely new kernel and other OS components from scratch? If the latter, then I feel compelled to advise you that given your current knowledge level, you should be prepared to spend a good deal of time and effort to accomplish your task.