Compiled bootloader is NOT the same as the one in Arduino?

Hi All,

I'm trying to learn and compile my own SAMD21 bootloader. Well, that's a long-term plan. As a starting point, I just want to compile whatever the existing bootloader is, without any changes. I followed this instruction: Compile | Compiling ATSAMD21 Bootloader | Adafruit Learning System
to compile a bootloader for the M0 board.

The bootloader compiles Ok. But, for some reason, it doesn't work in the same way as the stock one. I mean, the first visible difference is that the LED indicator "glows" instead of blinking. Then, the board is detected as a COM port named "Arduino Zero Bootloader" (which is probably Ok). But Arduino IDE cannot upload a sketch. It always gives me an error message:

avrdude: ser_recv(): programmer is not responding
avrdude: stk500v2_ReceiveMessage(): timeout

If I flash the stock Arduino M0 bootloader back, I can upload sketches just fine.

I guess the bootloader I compiled is somehow incompatible with Arduino IDE. But I can't figure out what I'm doing wrong... Can someone please advise what may be wrong?