Lines Matching +full:pre +full:- +full:boot
30 # This program is a freestanding boot program to load an a.out binary
31 # from a CD-ROM booted with no emulation mode as described by the El
35 # Basically, we first create a set of boot arguments to pass to the loaded
36 # binary. Then we attempt to load /boot/loader from the CD we were booted
68 .set SEL_SCODE,0x18 # PM-32 code
69 .set SEL_SCODE16,0x20 # PM-16 code
93 .set DIR_EXTENT,2 # Offset of 64-bit LBA
94 .set DIR_SIZE,10 # Offset of 64-bit length
95 .set DIR_NAMELEN,32 # Offset of 8-bit name len
98 # We expect to be loaded by the BIOS at 0x7c00 (standard boot loader entry
111 bi_file: .long 0 # LBA of boot file.
112 bi_length: .long 0 # Length of boot file.
113 bi_csum: .long 0 # Checksum of boot file
122 mov %dl,drive # Save BIOS boot device
123 mov $msg_welcome,%si # %ds:(%si) -> welcome message
126 # Setup the arguments that the loader is expecting from boot[12]
128 mov $msg_bootinfo,%si # %ds:(%si) -> boot args message
130 mov $MEM_ARG,%bx # %ds:(%bx) -> boot args
131 mov %bx,%di # %es:(%di) -> boot args
133 mov $(MEM_ARG_SIZE/4),%cx # Size of arguments in 32-bit
137 mov drive,%dl # Store BIOS boot device
138 mov %dl,0x4(%bx) # in kargs->bootdev
139 orb $KARGS_FLAGS_CD,0x8(%bx) # kargs->bootflags |=
183 add $SECTOR_SIZE-1,%eax # Convert length to sectors
230 # instruction pre-fetch queue
237 add $(MEM_PAGE_SIZE - 1),%edi # pad %edi out to a new page
238 and $~(MEM_PAGE_SIZE - 1),%edi # for the data segment
248 mov MEM_READ_BUFFER+AOUT_ENTRY,%esi # %esi -> relocated loader
249 add $MEM_BTX_OFFSET,%esi # %esi -> BTX in the loader
250 mov $MEM_BTX_ADDRESS,%edi # %edi -> where BTX needs to go
251 movzwl 0xa(%esi),%ecx # %ecx -> length of BTX
254 ljmp $SEL_SCODE16,$pm_16 # Jump to 16-bit PM
263 # instruction pre-fetch queue
273 mov $(btx_client_end-btx_client),%cx # length of btx client
277 # Copy the boot[12] args to where the BTX client can see them
372 ff.checkver: cmpb $'0',DIR_NAME-1(%bx,%si) # Less than '0'?
374 cmpb $'9',DIR_NAME-1(%bx,%si) # Greater than '9'?
383 cmpb $';',DIR_NAME-1(%bx,%si) # Check for semicolon
390 ff.checkdot: cmpb $'.',DIR_NAME-1(%bx,%si) # Trailing dot?
451 # Display a null-terminated string.
494 # legacy-free and simply doesn't have a keyboard controller.
533 btx_client: mov $(MEM_ARG_BTX-MEM_BTX_CLIENT+MEM_ARG_SIZE-4), %esi
534 # %ds:(%esi) -> end
535 # of boot[12] args
542 pushl MEM_ARG_BTX-MEM_BTX_CLIENT+MEM_ARG_SIZE # Entry point of
557 .word 0xffff,0x0,0x9a00,0xcf # SEL_SCODE (32-bit)
558 .word 0xffff,0x0,0x9a00,0x8f # SEL_SCODE16 (16-bit)
561 # Pseudo-descriptors.
563 gdtdesc: .word gdt.1-gdt-1 # Limit
587 msg_bootinfo: .asciz "Building the boot loader arguments\r\n"
598 msg_failed: .asciz "Boot failed\r\n"
599 twiddle_chars: .ascii "|/-\\"
600 loader_paths: .asciz "/BOOT/LOADER"
601 .asciz "/boot/loader"