From 764881a94b4129538d62fda2c99cfcd1ad518ce5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Thu, 3 Oct 2024 11:16:20 +0200 Subject: [PATCH] [FREELDR] Remove the "setupldr" build target (#7419) The setupldr and freeldr binaries are the same since commit 948e82af1 (r65832), because both their functionality have been shared. --- boot/freeldr/bootsect/isoboot.S | 50 ++++++++++++++++----------------- boot/freeldr/freeldr/pcat.cmake | 16 +---------- 2 files changed, 26 insertions(+), 40 deletions(-) diff --git a/boot/freeldr/bootsect/isoboot.S b/boot/freeldr/bootsect/isoboot.S index da52eba9bfe..845bc34059b 100644 --- a/boot/freeldr/bootsect/isoboot.S +++ b/boot/freeldr/bootsect/isoboot.S @@ -115,28 +115,28 @@ relocated: call pollchar_and_empty // If we're booting in hybrid mode and our boot drive is the first HDD (drive 80h), - // we have no other option than booting into SETUPLDR. + // we have no other option than booting into FREELDR. cmp word ptr ds:[GetlinsecPtr], offset getlinsec_ebios jne .read_mbr cmp byte ptr ds:[DriveNumber], HEX(80) - je .boot_setupldr + je .boot_freeldr .read_mbr: // Read the first sector (MBR) from the first hard disk (drive 80h) to 7C00h. // If we then decide to boot from HDD, we already have it at the right place. - // In case of an error (indicated by the Carry Flag), just boot SETUPLDR from our ReactOS medium. + // In case of an error (indicated by the Carry Flag), just boot FREELDR from our ReactOS medium. mov ax, HEX(0201) mov dx, HEX(0080) mov cx, HEX(0001) mov bx, HEX(7C00) call int13 - jc .boot_setupldr + jc .boot_freeldr // Verify the signature of the read MBR. - // If it's invalid, there is probably no OS installed and we just boot SETUPLDR from our ReactOS medium. + // If it's invalid, there is probably no OS installed and we just boot FREELDR from our ReactOS medium. mov ax, word ptr ds:[HEX(7C00)+510] cmp ax, HEX(AA55) - jne .boot_setupldr + jne .boot_freeldr #ifdef WAIT_FOR_KEY // We could either boot from the ReactOS medium or from hard disk. Let the user decide! @@ -155,9 +155,9 @@ relocated: add eax, 19 .poll_again: - // Check for a keypress, boot SETUPLDR from our ReactOS medium if a key was pressed. + // Check for a keypress, boot FREELDR from our ReactOS medium if a key was pressed. call pollchar_and_empty - jnz .boot_setupldr + jnz .boot_freeldr // Check if another second has passed (in BIOS Timer ticks). mov ebx, ds:[BIOS_timer] @@ -185,7 +185,7 @@ relocated: ljmp16 0, HEX(7C00) -.boot_setupldr: +.boot_freeldr: #ifdef WAIT_FOR_KEY call crlf_early call crlf_early @@ -266,26 +266,26 @@ found_drive: xchg eax, dword ptr ds:[si+file_sector] mov dword ptr ds:[CurrentDir+dir_lba], eax - // Look for the "SETUPLDR.SYS" file. - mov di, offset setupldr_sys + // Look for the "FREELDR.SYS" file. + mov di, offset freeldr_sys call searchdir - jnz .setupldr_found + jnz .freeldr_found - // The SETUPLDR file was not found, so bail out with an error message. - mov si, offset no_setupldr_msg + // The FREELDR file was not found, so bail out with an error message. + mov si, offset no_freeldr_msg call writemsg jmp kaboom -.setupldr_found: +.freeldr_found: // Calculate the rounded up number of 2K sectors that need to be read. mov ecx, eax shr ecx, SECTOR_SHIFT test eax, HEX(7FF) - jz .load_setupldr + jz .load_freeldr inc ecx -.load_setupldr: - // Load the entire SETUPLDR.SYS (parameter CX = FFFFh) to its designated base address FREELDR_BASE. +.load_freeldr: + // Load the entire FREELDR.SYS (parameter CX = FFFFh) to its designated base address FREELDR_BASE. // Using a high segment address with offset 0 instead of segment 0 with offset FREELDR_BASE apparently increases compatibility with some BIOSes. mov bx, FREELDR_BASE / 16 mov es, bx @@ -293,15 +293,15 @@ found_drive: mov cx, HEX(FFFF) call getfssec - // Pass two parameters to SETUPLDR: + // Pass two parameters to FREELDR: // DL = BIOS Drive Number // DH = Boot Partition (0 for HDD booting in hybrid mode, FFh for CD booting) movzx dx, byte ptr ds:[DriveNumber] cmp word ptr ds:[GetlinsecPtr], offset getlinsec_ebios - je .jump_to_setupldr + je .jump_to_freeldr mov dh, HEX(FF) -.jump_to_setupldr: +.jump_to_freeldr: // Transfer execution to the bootloader. ljmp16 0, FREELDR_BASE @@ -1086,10 +1086,10 @@ loader_dir: .ascii "/LOADER", NUL no_dir_msg: .ascii "LOADER dir not found.", CR, LF, NUL -setupldr_sys: - .ascii "SETUPLDR.SYS", NUL -no_setupldr_msg: - .ascii "SETUPLDR.SYS not found.", CR, LF, NUL +freeldr_sys: + .ascii "FREELDR.SYS", NUL +no_freeldr_msg: + .ascii "FREELDR.SYS not found.", CR, LF, NUL .align 4 BufSafe: diff --git a/boot/freeldr/freeldr/pcat.cmake b/boot/freeldr/freeldr/pcat.cmake index 0a9c96cdee5..ac18b0e00ec 100644 --- a/boot/freeldr/freeldr/pcat.cmake +++ b/boot/freeldr/freeldr/pcat.cmake @@ -250,18 +250,4 @@ else() add_custom_target(freeldr ALL DEPENDS freeldr_pe) endif() -# Rename freeldr on livecd to setupldr.sys because isoboot.bin looks for setupldr.sys -add_cd_file(TARGET freeldr FILE ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys DESTINATION loader NO_CAB FOR bootcd regtest) -add_cd_file(TARGET freeldr FILE ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys DESTINATION loader NO_CAB NOT_IN_HYBRIDCD FOR livecd hybridcd NAME_ON_CD setupldr.sys) - -if(NOT ARCH STREQUAL "arm") - concatenate_files( - ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys - ${CMAKE_CURRENT_BINARY_DIR}/frldr16.bin - ${CMAKE_CURRENT_BINARY_DIR}/$) - add_custom_target(setupldr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys) -else() - add_custom_target(setupldr ALL DEPENDS freeldr_pe) -endif() - -add_cd_file(TARGET setupldr FILE ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys DESTINATION loader NO_CAB FOR bootcd regtest) +add_cd_file(TARGET freeldr FILE ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys DESTINATION loader NO_CAB NOT_IN_HYBRIDCD FOR bootcd livecd hybridcd regtest)