Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Сб фев 23, 2019 8:20 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 4 сообщения ] 
Автор Сообщение
 Заголовок сообщения: uefi4kos
СообщениеДобавлено: Пн апр 25, 2016 10:43 pm 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Пн окт 19, 2009 10:58 am
Сообщения: 391
Hello,

I implemented a small UEFI module to boot kolibri without CSM, find it here.

It is done in fasm, using uefi.inc. A thread by XVilka was especially helpful for booting on real hardware.

How it works:
- Choose and set video mode via UEFI graphics output protocol;
- Get memory map and convert it to E820 format;
- Load kernel and disk image into memory;
- Set boot params at 0x9000+;
- Load new GDT;
- Go to compatibility and then protected mode;
- Clear cr4.pae bit;
- Jump to the kernel.

What doesn't work:
- 'blue screen' (to choose video mode type its number and press enter, no indication so far!);
- reboot/poweroff.


Вложения:
uefi4kos.7z [1.19 МБ]
137 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: uefi4kos
СообщениеДобавлено: Пн апр 25, 2016 11:13 pm 
Не в сети

Зарегистрирован: Ср май 18, 2005 7:27 pm
Сообщения: 1001
Any screenshot?

Here is how to use it
https://en.wikipedia.org/wiki/Unified_E ... ce#Booting

https://ru.wikipedia.org/wiki/Extensibl ... D0.B2_UEFI


Вернуться к началу
 Заголовок сообщения: Re: uefi4kos
СообщениеДобавлено: Ср дек 06, 2017 10:12 am 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Пн окт 19, 2009 10:58 am
Сообщения: 391
Hello.

Current kernel.asm (read: kernel.mnt) starts with 16-bit bios-related part which is of no use for UEFI loader that wants to jump just after this part, to os_code:B32. Unfortunately, B32 label offset depends on the size of preceeding 16-bit code and therefore UEFI loader can't guess where to jump.

I attached a patch that splits bootbios.asm and kernel.asm:
  • Move bios-related part of kernel.asm before B32 label to bootbios.asm file;
  • Move bx_from_load, boot_dev and kernel_restart_bootblock variables to BOOT_* 0x9000 block;
  • Update Tupfile.lua, Makefile, build.bat, build.sh accordingly;
  • Now bios and uefi loaders can jump to very first byte of the kernel.

Any objections?


Вложения:
bootbios.diff [18.4 КБ]
54 скачивания
Вернуться к началу
 Заголовок сообщения: Re: uefi4kos
СообщениеДобавлено: Пт фев 22, 2019 1:53 pm 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Пн окт 19, 2009 10:58 am
Сообщения: 391
Current UEFI guide for brave:
  1. Download the latest floppy image nightbuild.
  2. Download the latest devman by Serge.
  3. Copy acpi and acpi.dll files to /drivers directory.
  4. Boot this modified image any way you can.
  5. Run /drivers/acpi manually.
  6. Copy /drivers/devices.dat somewhere or open it in the hex editor and take a photo.
  7. Boot into your main OS, remove /drivers/acpi*, copy devices.dat to /drivers.
  8. Put resulting kolibri.img to /data directory in your local source tree.
  9. Go to /kernel/trunk. Run fasm kernel.asm kernel.bin -dUEFI=1.
  10. Go to /kernel/trunk/boot. Run fasm uefi4kos.asm kolibri.efi.
  11. Add kolibri.efi to your bootloader's config file. E.g. for grub (aka grub2) menuentry is as follows:
Код:
menuentry "KolibriOS" {
                insmod part_gpt
                insmod fat
                insmod chain
                chainloader /EFI/kolibri.efi
        }


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 4 сообщения ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB