A very basic file tree will look like this
#tftp root /srv/tftp/ /srv/tftp/pxelinux.0 /srv/tftp/pxelinux.cfg/default /srv/tftp/OSTRYINGTOPXEBOOT
First your computer gets the pxelinux.0 file which instructs it to get the default file which then points to the OS folder with the files to be loaded.
A very basic DNSMasq config (without the DNS + DHCP) with just the relevant TFTP part would look like this:
enable-tftp tftp-root=/srv/tftp dhcp-boot=pxelinux.0 dhcp-option=3, dhcp-option=6,
A very basic default file:
DEFAULT pmagic # Boot the entire ISO over PXE. LABEL pmagic LINUX pmagic/memdisk INITRD pmagic/pmagic.iso APPEND iso
A good start is to install atftp and configure DNSMasq to serve pxelinux.0 then try to download pxelinux.0 inside tmp. This confirms your machines can get pxelinux.0
sudo apt-get update && sudo apt-get install -y atftp && cd /tmp && echo 'get pxelinux.0' | atftp localhost