Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ endif
GRUB_DIR := grub/boot
GRUB_FILE := grub-file
GRUB_MKRESCUE := grub-mkrescue
GRUB_MODULES := multiboot iso9660 serial normal
GRUB_MODULES := multiboot2 iso9660 serial normal
ifneq ($(UNITTEST),)
GRUB_CONFIG := $(GRUB_DIR)/grub/grub-test.cfg
else
Expand Down Expand Up @@ -254,7 +254,7 @@ $(ISO_FILE): dockerboot.iso
else
$(ISO_FILE): $(TARGET)
@echo "GEN ISO" $(ISO_FILE)
$(VERBOSE) $(GRUB_FILE) --is-x86-multiboot $(TARGET) || { echo "Multiboot not supported"; exit 1; }
$(VERBOSE) $(GRUB_FILE) --is-x86-multiboot2 $(TARGET) || { echo "Multiboot not supported"; exit 1; }
$(VERBOSE) cp $(TARGET) $(GRUB_DIR)/
$(VERBOSE) $(XZ) -q -f $(GRUB_DIR)/$(TARGET)
$(VERBOSE) $(GRUB_MKRESCUE) --install-modules="$(GRUB_MODULES)" --fonts=no --compress=xz -o $(ISO_FILE) grub &> /dev/null
Expand Down
52 changes: 22 additions & 30 deletions arch/x86/boot/boot.S
Original file line number Diff line number Diff line change
Expand Up @@ -24,38 +24,30 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <asm-macros.h>
#include <multiboot.h>
#include <multiboot2.h>

SECTION(.multiboot, "a", 4)
#define MULTIBOOT_HEADER_FLAGS (MULTIBOOT_PAGE_ALIGN | MULTIBOOT_MEMORY_INFO | MULTIBOOT_VIDEO_MODE)
#define MULTIBOOT_CHECKSUM -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
SECTION(.multiboot, "a", 8)
#define MULTIBOOT2_HEADER_FLAGS (MULTIBOOT2_ARCHITECTURE_I386)
#define MULTIBOOT2_HEADER_SIZE (multiboot_header_end - multiboot_header)
#define MULTIBOOT2_CHECKSUM -(MULTIBOOT2_HEADER_MAGIC + MULTIBOOT2_HEADER_FLAGS + MULTIBOOT2_HEADER_SIZE)

#define MULTIBOOT_VIDEO_MODE_GFX 0
#define MULTIBOOT_VIDEO_MODE_TEXT 1

#define MULTIBOOT_MODE_TYPE MULTIBOOT_VIDEO_MODE_GFX

#define MULTIBOOT_HEADER_ADDR 0
#define MULTIBOOT_LOAD_ADDRESS 0
#define MULTIBOOT_LOAD_END_ADDRESS 0
#define MULTIBOOT_BSS_END_ADDRESS 0
#define MULTIBOOT_ENTRY_ADDRESS 0

#define MULTIBOOT_FB_WIDTH 1024
#define MULTIBOOT_FB_HEIGHT 768
#define MULTIBOOT_FB_BPP 32
#define MULTIBOOT2_FB_WIDTH 1024
#define MULTIBOOT2_FB_HEIGHT 768
#define MULTIBOOT2_FB_BPP 32

.code32
multiboot_header:
.long MULTIBOOT_HEADER_MAGIC
.long MULTIBOOT_HEADER_FLAGS
.long MULTIBOOT_CHECKSUM
.long MULTIBOOT_HEADER_ADDR
.long MULTIBOOT_LOAD_ADDRESS
.long MULTIBOOT_LOAD_END_ADDRESS
.long MULTIBOOT_BSS_END_ADDRESS
.long MULTIBOOT_ENTRY_ADDRESS
.long MULTIBOOT_MODE_TYPE
.long MULTIBOOT_FB_WIDTH
.long MULTIBOOT_FB_HEIGHT
.long MULTIBOOT_FB_BPP
.long MULTIBOOT2_HEADER_MAGIC
.long MULTIBOOT2_HEADER_FLAGS
.long MULTIBOOT2_HEADER_SIZE
.long MULTIBOOT2_CHECKSUM
framebuffer_tag_start:
.short MULTIBOOT2_HEADER_TAG_FRAMEBUFFER
.short MULTIBOOT2_HEADER_TAG_OPTIONAL
.long framebuffer_tag_end - framebuffer_tag_start
.long MULTIBOOT2_FB_WIDTH
.long MULTIBOOT2_FB_HEIGHT
.long MULTIBOOT2_FB_BPP
framebuffer_tag_end:
.quad MULTIBOOT2_HEADER_TAG_END
multiboot_header_end:
Loading