Hi, I find two small questions which confuse me a little.
1. # Check signature at end of setup cmpl $0x5a5aaa55, setup_sig jne setup_bad setup_sig is defined in setup.ld, which points to the constant also defined in setup.ld, so I don't figure out in which case they don't equal and jump to setup_bad? In my test, drop these 2 lines seems fine, system can boot without any obvious error. 2. # Zero the bss movw $__bss_start, %di movw $_end+3, %cx xorl %eax, %eax subw %di, %cx shrw $2, %cx rep; stosl It is not a big deal, but I think replace "_end" with "__bss_end" make more sense, and "_end" is already aligned to word length. And, there is no other code use symbol "__bss_end". So I don't know is there any reason to use "_end" here? In my test, replace the 2nd line with: movw $_end, %cx or: movw $__bss_end+3, %cx are both fine. -- Sincerely, Cao jin