The JTAG connector is hidden behind the sticker with IMEI, with following pin-out:

I have successfully flashed a fully bricked phone (after using a wrong bring-up image from i5800 in a lame 3rd party service center...) using just (ARM Linux) GDB connected to J-Link GDB server (OpenOCD should also do) and my OneNAND flasher, attached to this post. I believe you need to flash Pbl and Sbl using it, attached them too.
The way it works is very simple. Target flash image has to be uploaded at address 0x50000000 (beginning of the RAM) and the flasher can be uploaded anywhere in the RAM. Then you jump to the flasher, wait several seconds until it completes and reset the phone. You can make sure that it completed by adding a breakpoint at the last instruction of the flasher which is just an infinite loop. You can extract the address (or rather offset) by disassembling the resulting binary using objdump, like
Code:
armv6zk-unknown-linux-gnueabi-objdump -D -b binary flasher.bin --architecture=arm
In (ARM Linux) GDB it would look like:
Code:
> restore boot.bin binary 0x50000000
> restore flasher.bin binary 0x51000000
> break *0x510000ec # this address depends on flasher compilation options, it's just an example
> jump *0x51000000
OneNAND flasher written be me (see code comments for more details): flasher.tar.gz
Bootloader images: bootloaders.tar.gz
Bookmarks