Mbed linker script and memory usage

My MCU has 1 MB application flash, and it is 0x10000000 to 0x10100000 in memory map. When I reviewed the compilation report, my application code size is only about 512 KB (from the message “Total Flash memory …”). However, the report indicates that something is beyond 0x10100000 (from the message, “Aligning end from …”). As I reviewed the linker script, code will be placed from 0x10002000, but it should still be able to fit 512 KB. As I reviewed the .map file generated by the linker, I did see code occupied beyond 1 MB range, and I also saw “load address” command with address beyond 0x10100000.
What could be the issue? Is there a way to find out what is taking the extra space besides my application?

Part of compilation report is extracted below:
[DEBUG] Aligning end from 0x10100804 to 0x10100900
| Module | .text | .data | .bss |

Total Static RAM memory (data + bss): 127544(+0) bytes
Total Flash memory (text + data): 511976(+0) bytes