I agree with SemperIdem that with "asm volatile(" jmp 0")" you make soft reset. But as I understand with the watchdog you also will reach only software reset.
I found out that in order to make hardware or external reset you should use reset pin or reset button.
And I also looking for some way to make this reset in other way.
This is what I use. Someone posted it a decade or so ago. As pointed out, to do a hardware reset, either toggle the reset line (a digital output will work) or use the watchdog timer.
void(*reboot) (void) = 0; //reset function
...
reboot();