bios

What is the proper way to write a BIOS Parameter Block? (Bootloader)

江枫思渺然 提交于 2019-12-11 01:40:12
问题 After writing some basic code for a bootloader, I made an .img image to test it. On Bochs, it ran just as expected; however, when I wrote the image to a USB and tried to test it on a real device, I suddenly got a No bootable device found message. After a bit of web crawling on the internet, I found out that I may need a BIOS Parameter Block (BPB). I copied and pasted a BPB that I found, and suddenly everything worked. Here is the code, in case it is needed: bpbBytesPerSector: DW 512

Why do the bytes “0xea 0000 ffff” in a bootloader cause the computer to reboot?

会有一股神秘感。 提交于 2019-12-10 18:21:23
问题 I was researching boot loaders and I found this interesting piece of assembly: ;Sends us to the end of the memory ;causing reboot db 0x0ea dw 0x0000 dw 0xffff By the comment I know what it does; sends the computer to the end of memory, but what I can't figure out is how those numbers reboot the computer (x86_64 processor on 16-bit mode). 回答1: Those bytes correspond to jmp word 0xffff:0000 (you can see this by assembling with NASM and then disassembling the resulting binary), which happens to

How can i get BIOS information using java?

此生再无相见时 提交于 2019-12-10 18:03:37
问题 Please let me know if i can get the BIOS setting information's using a java program.I am using windows7 as operating system. 回答1: It rather depends on what information you're trying to read. Java can't read the BIOS, but java can query the WMI (google for jWMI) which might get the data you need. 来源: https://stackoverflow.com/questions/7052360/how-can-i-get-bios-information-using-java

Possible to use bios interrupts in your code on linux?

流过昼夜 提交于 2019-12-10 17:12:26
问题 I write a simple program in assembly language in Linux (using nasm), and for educational purposes, I want to use BIOS interrupt instead linux system calls, is this possible ? 回答1: The short answer is, no it's not possible. The longer answer is that Linux has support for virtual8086 mode (the int vm86(unsigned long fn, struct vm86plus_struct *v86) call) which is capable of executing real mode code (including BIOS functions, if setup properly). However; the BIOS expects lots of different pieces

Where does dmidecode get the SMBIOS table?

喜你入骨 提交于 2019-12-10 16:44:52
问题 I always have this question and didn't get an answer after reading man-page and searching online. Anyone who has knowledge about this please comment. I understand that SMBIOS table or DMI table is what dmidecode locates and parses. But where does it get it from? Is it in the format of a file in Linux? 回答1: Looks like it comes from /dev/mem root@aw42e ~]# strace -F -e open dmidecode -t 17 <snip> open("/sys/firmware/efi/systab", O_RDONLY) = -1 ENOENT (No such file or directory) open("/proc/efi

No option to enable Hyper-V in my BIOS settings

一个人想着一个人 提交于 2019-12-10 10:15:54
问题 I am new to Windows Phone 8 application development. I installed SDK 8.0. When I run my application, it shows an error telling me to enable Hyper-V. While searching, I found this MSDN documentation with a solution in the BIOS. But when go to my BIOS settings, then there are no such options available . Any suggestions? 回答1: Step 1: Enable Virtualization in BIOS You need to enable Virtualization Technology (VTx) under the System Security option in the Security tab of your BIOS management menu.

How to write on hard disk with bios interrupt 13h

折月煮酒 提交于 2019-12-09 07:57:12
问题 I want to copy my boot loader to first sector(512) of hard disk within itself (I should use bios interrupt 13h) and I found this code: mov bx, buffer1 ; set BX to the address (not the value) of BlahBlah mov ah,03h ;When ah=, int13 reads a disk sector mov al,5 ;Al is how many sectors to read mov cl,0 ;Sector Id mov dh,0 ;Head mov dl,80h ;Drive (0 is floppy) mov cx,512 ;One sector /2 mov ah, 0x3 ; set function 2h int 0x13 bu it does not work! 回答1: Your code is very messy. In order to properly

Real Mode Assembly: Print Char to Screen without INT Instruction on Boot

不羁岁月 提交于 2019-12-09 06:53:39
问题 The following site "Writing Boot Sector Code" provides a sample of code that prints 'A' to the screen when the system boots. From what I have been reading don't you have to use INT opcode to get BIOS to do certain things? How does the code below, from the site referenced above work without using interrupts? What portion of code actually tells the hardware to print 'A' to the screen? Code in question: .code16 .section .text .globl _start _start: mov $0xb800, %ax mov %ax, %ds movb $'A', 0 movb

BIOS Interrupts in protected mode

*爱你&永不变心* 提交于 2019-12-08 17:20:47
问题 I'm working on an operating system project, using isolinux (syslinux 4.5) as bootloader, loading my kernel with multiboot header organised at 0x200000. As I know the kernel is already in 32-bit protected mode. My question: Is there any easier way to get access to BIOS Interrupts? (Basically I want 0x10 :D) After loading, my kernel sets up its own GDT and IDT entries and further remaps IRQs. So, is it possible to jump into real mode just after the kernel is loaded and set up VGA/SVGA modes

Different ways to to trigger a SMI for a processor

吃可爱长大的小学妹 提交于 2019-12-08 11:56:30
问题 I am writing some firmware code running in the System Managemnt Mode (SMM) on an Intel platform. I want to fully understand how my SMI handler get started. I read from the Intel Manual that: The only way to enter SMM is by signaling an SMI through the SMI# pin on the processor or through an SMI message received through the APIC bus. And I also read that a synchronous SMI can be triggered by writing to an I/O port . My understanding is like this: SMM is just a special operating mode of a