From ced75b51f2e22fe4548dd18180dcca59e0e5071a Mon Sep 17 00:00:00 2001 From: Adrien Bourmault Date: Wed, 13 Mar 2019 17:03:52 +0100 Subject: [PATCH] stuff I don't remember --- boot/loader/cpu/cpu.inc | 13 ---- kaleid/include/multiboot/multiboot.h | 91 +++++++++++++--------------- kaleid/kernel/init/init.c | 10 +-- kaleid/kernel/init/table.c | 2 - 4 files changed, 48 insertions(+), 68 deletions(-) diff --git a/boot/loader/cpu/cpu.inc b/boot/loader/cpu/cpu.inc index 4700598..f0fbc95 100644 --- a/boot/loader/cpu/cpu.inc +++ b/boot/loader/cpu/cpu.inc @@ -60,16 +60,3 @@ tritemporize: loop .looping pop rcx ret - - -; ---------------------------------------------------------------------------- ; -; Returns the CPU Vendor String.pointer in eax ; -; ---------------------------------------------------------------------------- ; -cpu_vendor: - - ;; Calling the competent authorities - mov eax, 0 - cpuid - - ret -.string db " " diff --git a/kaleid/include/multiboot/multiboot.h b/kaleid/include/multiboot/multiboot.h index 8c7d00f..04f6322 100644 --- a/kaleid/include/multiboot/multiboot.h +++ b/kaleid/include/multiboot/multiboot.h @@ -5,105 +5,98 @@ // // // // // Copyright © 1999,2003,2007-2010 Free Software Foundation, Inc. // +// Copyright © 2018-2019 The OS/K Team // // // -// Note: In this header, "the Software" refers to the multiboot.h file. // +// This file is part of OS/K. // // // -// Permission is hereby granted, free of charge, to any person // -// obtaining a copy of this software and associated documentation // -// files (the "Software"), to deal in the Software without restriction, // -// including without limitation the rights to use, copy, modify, merge, // -// publish, distribute, sublicense, and/or sell copies of the Software, // -// and to permit persons to whom the Software is furnished to do so, // -// subject to the following conditions: // +// OS/K is free software: you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation, either version 3 of the License, or // +// any later version. // // // -// The above copyright notice and this permission notice shall be included // -// in all copies or substantial portions of the Software. // +// OS/K is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY//without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License for more details. // // // -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. // -// IN NO EVENT SHALL ANY DEVELOPER OR DISTRIBUTOR BE LIABLE FOR // -// ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF // -// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.. // +// You should have received a copy of the GNU General Public License // +// along with OS/K. If not, see . // //----------------------------------------------------------------------------// #ifndef MULTIBOOT_HEADER #define MULTIBOOT_HEADER 1 /* How many bytes from the start of the file we search for the header. */ -#define MULTIBOOT_SEARCH 8192 -#define MULTIBOOT_HEADER_ALIGN 4 +#define MULTIBOOT_SEARCH 8192 +#define MULTIBOOT_HEADER_ALIGN 4 /* The magic field should contain this. */ -#define MULTIBOOT_HEADER_MAGIC 0x1BADB002 +#define MULTIBOOT_HEADER_MAGIC 0x1BADB002 /* This should be in %eax. */ -#define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002 +#define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002 /* Alignment of multiboot modules. */ -#define MULTIBOOT_MOD_ALIGN 0x00001000 +#define MULTIBOOT_MOD_ALIGN 0x00001000 /* Alignment of the multiboot info structure. */ -#define MULTIBOOT_INFO_ALIGN 0x00000004 +#define MULTIBOOT_INFO_ALIGN 0x00000004 /* Flags set in the 'flags' member of the multiboot header. */ /* Align all boot modules on i386 page (4KB) boundaries. */ -#define MULTIBOOT_PAGE_ALIGN 0x00000001 +#define MULTIBOOT_PAGE_ALIGN 0x00000001 /* Must pass memory information to OS. */ -#define MULTIBOOT_MEMORY_INFO 0x00000002 +#define MULTIBOOT_MEMORY_INFO 0x00000002 /* Must pass video information to OS. */ -#define MULTIBOOT_VIDEO_MODE 0x00000004 +#define MULTIBOOT_VIDEO_MODE 0x00000004 /* This flag indicates the use of the address fields in the header. */ -#define MULTIBOOT_AOUT_KLUDGE 0x00010000 +#define MULTIBOOT_AOUT_KLUDGE 0x00010000 -/* Flags to be set in the 'flags' member of the multiboot info structure. */ -/* is there basic lower/upper memory information? */ -#define MULTIBOOT_INFO_MEMORY 0x00000001 +#define MULTIBOOT_INFO_MEMORY 0x00000001 /* is there a boot device set? */ -#define MULTIBOOT_INFO_BOOTDEV 0x00000002 +#define MULTIBOOT_INFO_BOOTDEV 0x00000002 /* is the command-line defined? */ -#define MULTIBOOT_INFO_CMDLINE 0x00000004 +#define MULTIBOOT_INFO_CMDLINE 0x00000004 /* are there modules to do something with? */ -#define MULTIBOOT_INFO_MODS 0x00000008 +#define MULTIBOOT_INFO_MODS 0x00000008 /* These next two are mutually exclusive */ /* is there a symbol table loaded? */ -#define MULTIBOOT_INFO_AOUT_SYMS 0x00000010 +#define MULTIBOOT_INFO_AOUT_SYMS 0x00000010 /* is there an ELF section header table? */ -#define MULTIBOOT_INFO_ELF_SHDR 0X00000020 +#define MULTIBOOT_INFO_ELF_SHDR 0x00000020 /* is there a full memory map? */ -#define MULTIBOOT_INFO_MEM_MAP 0x00000040 +#define MULTIBOOT_INFO_MEM_MAP 0x00000040 /* Is there drive info? */ -#define MULTIBOOT_INFO_DRIVE_INFO 0x00000080 +#define MULTIBOOT_INFO_DRIVE_INFO 0x00000080 /* Is there a config table? */ -#define MULTIBOOT_INFO_CONFIG_TABLE 0x00000100 +#define MULTIBOOT_INFO_CONFIG_TABLE 0x00000100 /* Is there a boot loader name? */ -#define MULTIBOOT_INFO_BOOT_LOADER_NAME 0x00000200 +#define MULTIBOOT_INFO_BOOT_LOADER_NAME 0x00000200 /* Is there a APM table? */ -#define MULTIBOOT_INFO_APM_TABLE 0x00000400 +#define MULTIBOOT_INFO_APM_TABLE 0x00000400 /* Is there video information? */ -#define MULTIBOOT_INFO_VBE_INFO 0x00000800 -#define MULTIBOOT_INFO_FRAMEBUFFER_INFO 0x00001000 +#define MULTIBOOT_INFO_VBE_INFO 0x00000800 +#define MULTIBOOT_INFO_FRAMEBUFFER_INFO 0x00001000 #ifndef ASM_FILE -typedef unsigned char multiboot_uint8_t; -typedef unsigned short multiboot_uint16_t; -typedef unsigned int multiboot_uint32_t; -typedef unsigned long long multiboot_uint64_t; +typedef unsigned char multiboot_uint8_t; +typedef unsigned short multiboot_uint16_t; +typedef unsigned int multiboot_uint32_t; +typedef unsigned long long multiboot_uint64_t; struct multiboot_header { @@ -207,7 +200,7 @@ struct multiboot_info multiboot_uint8_t framebuffer_bpp; #define MULTIBOOT_FRAMEBUFFER_TYPE_INDEXED 0 #define MULTIBOOT_FRAMEBUFFER_TYPE_RGB 1 -#define MULTIBOOT_FRAMEBUFFER_TYPE_EGA_TEXT 2 +#define MULTIBOOT_FRAMEBUFFER_TYPE_EGA_TEXT 2 multiboot_uint8_t framebuffer_type; union { @@ -241,8 +234,8 @@ struct multiboot_mmap_entry multiboot_uint32_t size; multiboot_uint64_t addr; multiboot_uint64_t len; -#define MULTIBOOT_MEMORY_AVAILABLE 1 -#define MULTIBOOT_MEMORY_RESERVED 2 +#define MULTIBOOT_MEMORY_AVAILABLE 1 +#define MULTIBOOT_MEMORY_RESERVED 2 #define MULTIBOOT_MEMORY_ACPI_RECLAIMABLE 3 #define MULTIBOOT_MEMORY_NVS 4 #define MULTIBOOT_MEMORY_BADRAM 5 diff --git a/kaleid/kernel/init/init.c b/kaleid/kernel/init/init.c index d2dd85f..c6a1853 100644 --- a/kaleid/kernel/init/init.c +++ b/kaleid/kernel/init/init.c @@ -42,16 +42,18 @@ noreturn void StartKern(multiboot_info_t *mbInfo, int mbMagic) // We're out StartPanic( "We were loaded by : %s\n\n\n" "We get\n" - " *mbInfo : %x\n" + " *mbInfo : %p\n" " mbMagic : %x\n" " mbBootdrv : %x\n" + " *mbMmap : %p\n" + " `-length : %d\n" "\nGoodbye World :(", mbInfo->boot_loader_name, mbInfo, mbMagic, - mbInfo->boot_device + mbInfo->boot_device, + mbInfo->mmap_addr, + mbInfo->mmap_length ); } - - diff --git a/kaleid/kernel/init/table.c b/kaleid/kernel/init/table.c index 5fcdd2c..7a51088 100644 --- a/kaleid/kernel/init/table.c +++ b/kaleid/kernel/init/table.c @@ -29,5 +29,3 @@ Processor_t cpuTable[NCPUS] = {0}; Terminal_t *stdOut = 0, *stdDbg = 0; -volatile ushort *vga = (volatile ushort *)0xB8000; -