Changeset 8781e9d in mainline
- Timestamp:
- 2018-11-12T20:20:36Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 08f1a6d
- Parents:
- 15639ec
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-11-12 20:09:40)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-11-12 20:20:36)
- Files:
-
- 8 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/src/boot/multiboot.S
r15639ec r8781e9d 38 38 #include <arch/cpu.h> 39 39 40 // TODO: most of this file can be rewritten in C 41 40 42 #define START_STACK (BOOT_OFFSET - BOOT_STACK_SIZE) 41 43 … … 50 52 51 53 .macro pm_status msg 52 #if def CONFIG_EGA54 #if defined(CONFIG_EGA) && !defined(CONFIG_FB) 53 55 pushl %esi 54 56 movl \msg, %esi … … 67 69 multiboot_header: 68 70 .long MULTIBOOT_HEADER_MAGIC 71 #ifdef CONFIG_FB 69 72 .long MULTIBOOT_HEADER_FLAGS 70 73 .long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS) /* checksum */ 74 #else 75 .long MULTIBOOT_HEADER_FLAGS_NOFB 76 .long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS_NOFB) /* checksum */ 77 #endif 71 78 .long multiboot_header 72 79 .long unmapped_start … … 74 81 .long 0 75 82 .long multiboot_image_start 83 #ifdef CONFIG_FB 84 .long 0 85 .long CONFIG_BFB_WIDTH 86 .long CONFIG_BFB_HEIGHT 87 .long CONFIG_BFB_BPP 88 #endif 76 89 77 90 SYMBOL(multiboot_image_start) … … 158 171 sse2_supported: 159 172 160 #include "vesa_prot.inc"161 162 173 pm2_status $status_prot2 163 174 … … 568 579 569 580 ret 570 571 #include "vesa_real.inc"572 581 573 582 .section K_INI_PTLS, "aw", @progbits … … 708 717 status_prot: 709 718 .asciz "[prot] " 710 status_vesa_copy:711 .asciz "[vesa_copy] "712 719 status_multiboot_cmdline: 713 720 .asciz "[multiboot_cmdline] " 714 status_vesa_real:715 .asciz "[vesa_real] "716 721 status_prot2: 717 722 .asciz "[prot2] " -
kernel/arch/ia32/src/boot/multiboot.S
r15639ec r8781e9d 38 38 #include <arch/cpu.h> 39 39 40 // TODO: most of this file can be rewritten in C 41 40 42 #define START_STACK (BOOT_OFFSET - BOOT_STACK_SIZE) 41 43 … … 50 52 51 53 .macro pm_status msg 52 #if def CONFIG_EGA54 #if defined(CONFIG_EGA) && !defined(CONFIG_FB) 53 55 pushl %esi 54 56 movl \msg, %esi … … 66 68 multiboot_header: 67 69 .long MULTIBOOT_HEADER_MAGIC 70 #ifdef CONFIG_FB 68 71 .long MULTIBOOT_HEADER_FLAGS 69 72 .long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS) /* checksum */ 73 #else 74 .long MULTIBOOT_HEADER_FLAGS_NOFB 75 .long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS_NOFB) /* checksum */ 76 #endif 70 77 .long multiboot_header 71 78 .long unmapped_start … … 73 80 .long 0 74 81 .long multiboot_image_start 82 #ifdef CONFIG_FB 83 .long 0 84 .long CONFIG_BFB_WIDTH 85 .long CONFIG_BFB_HEIGHT 86 .long CONFIG_BFB_BPP 87 #endif 75 88 76 89 SYMBOL(multiboot_image_start) … … 104 117 105 118 pm_status $status_prot 106 107 #include "vesa_prot.inc"108 119 109 120 #ifndef PROCESSOR_i486 … … 685 696 ret 686 697 687 #include "vesa_real.inc"688 689 698 .section K_DATA_START, "aw", @progbits 690 699 … … 720 729 status_non_pse: 721 730 .asciz "[non_pse] " 722 status_vesa_copy:723 .asciz "[vesa_copy] "724 731 status_multiboot_cmdline: 725 732 .asciz "[multiboot_cmdline] " 726 status_vesa_real:727 .asciz "[vesa_real] "728 733 status_prot2: 729 734 .asciz "[prot2] " -
kernel/genarch/include/genarch/multiboot/multiboot.h
r15639ec r8781e9d 39 39 #include <genarch/multiboot/multiboot_info_struct.h> 40 40 41 #define MULTIBOOT_HEADER_MAGIC 0x1badb002 42 #define MULTIBOOT_HEADER_FLAGS 0x00010003 41 #define MULTIBOOT_HEADER_MAGIC 0x1badb002 42 #define MULTIBOOT_HEADER_FLAGS 0x00010007 43 #define MULTIBOOT_HEADER_FLAGS_NOFB 0x00010003 43 44 44 45 #define MULTIBOOT_LOADER_MAGIC 0x2badb002 45 46 46 #define MULTIBOOT_INFO_FLAGS_MEM 0x01 47 #define MULTIBOOT_INFO_FLAGS_BOOT 0x02 48 #define MULTIBOOT_INFO_FLAGS_CMDLINE 0x04 49 #define MULTIBOOT_INFO_FLAGS_MODS 0x08 50 #define MULTIBOOT_INFO_FLAGS_SYMS1 0x10 51 #define MULTIBOOT_INFO_FLAGS_SYMS2 0x20 52 #define MULTIBOOT_INFO_FLAGS_MMAP 0x40 47 #define MULTIBOOT_INFO_FLAGS_MEM 0x0001 48 #define MULTIBOOT_INFO_FLAGS_BOOT 0x0002 49 #define MULTIBOOT_INFO_FLAGS_CMDLINE 0x0004 50 #define MULTIBOOT_INFO_FLAGS_MODS 0x0008 51 #define MULTIBOOT_INFO_FLAGS_SYMS_AOUT 0x0010 52 #define MULTIBOOT_INFO_FLAGS_SYMS_ELF 0x0020 53 #define MULTIBOOT_INFO_FLAGS_MMAP 0x0040 54 #define MULTIBOOT_INFO_FLAGS_DRIVES 0x0080 55 #define MULTIBOOT_INFO_FLAGS_CONFIG_TABLE 0x0100 56 #define MULTIBOOT_INFO_FLAGS_BOOT_LOADER_NAME 0x0200 57 #define MULTIBOOT_INFO_FLAGS_APM 0x0400 58 #define MULTIBOOT_INFO_FLAGS_VBE 0x0800 59 #define MULTIBOOT_INFO_FLAGS_FB 0x1000 53 60 54 61 #ifndef __ASSEMBLER__ -
kernel/genarch/include/genarch/multiboot/multiboot_info_struct.h
r15639ec r8781e9d 30 30 #define KERN_MULTIBOOT_INFO_STRUCT_H_ 31 31 32 #define MULTIBOOT_INFO_OFFSET_FLAGS 0x00 33 #define MULTIBOOT_INFO_OFFSET_MEM_LOWER 0x04 34 #define MULTIBOOT_INFO_OFFSET_MEM_UPPER 0x08 35 #define MULTIBOOT_INFO_OFFSET_BOOT_DEVICE 0x0c 36 #define MULTIBOOT_INFO_OFFSET_CMD_LINE 0x10 37 #define MULTIBOOT_INFO_OFFSET_MODS_COUNT 0x14 38 #define MULTIBOOT_INFO_OFFSET_MODS_ADDR 0x18 39 #define MULTIBOOT_INFO_OFFSET_SYMS 0x1c 40 #define MULTIBOOT_INFO_OFFSET_MMAP_LENGTH 0x2c 41 #define MULTIBOOT_INFO_OFFSET_MMAP_ADDR 0x30 42 #define MULTIBOOT_INFO_SIZE 0x34 32 #define MULTIBOOT_INFO_OFFSET_FLAGS 0x00 33 #define MULTIBOOT_INFO_OFFSET_MEM_LOWER 0x04 34 #define MULTIBOOT_INFO_OFFSET_MEM_UPPER 0x08 35 #define MULTIBOOT_INFO_OFFSET_BOOT_DEVICE 0x0c 36 #define MULTIBOOT_INFO_OFFSET_CMD_LINE 0x10 37 #define MULTIBOOT_INFO_OFFSET_MODS_COUNT 0x14 38 #define MULTIBOOT_INFO_OFFSET_MODS_ADDR 0x18 39 #define MULTIBOOT_INFO_OFFSET_SYMS 0x1c 40 #define MULTIBOOT_INFO_OFFSET_MMAP_LENGTH 0x2c 41 #define MULTIBOOT_INFO_OFFSET_MMAP_ADDR 0x30 42 #define MULTIBOOT_INFO_OFFSET_DRIVES_LENGTH 0x34 43 #define MULTIBOOT_INFO_OFFSET_DRIVES_ADDR 0x38 44 #define MULTIBOOT_INFO_OFFSET_CONFIG_TABLE 0x3c 45 #define MULTIBOOT_INFO_OFFSET_BOOT_LOADER_NAME 0x40 46 #define MULTIBOOT_INFO_OFFSET_APM_TABLE 0x44 47 #define MULTIBOOT_INFO_OFFSET_VBE_CONTROL_INFO 0x48 48 #define MULTIBOOT_INFO_OFFSET_VBE_MODE_INFO 0x4c 49 #define MULTIBOOT_INFO_OFFSET_VBE_MODE 0x50 50 #define MULTIBOOT_INFO_OFFSET_VBE_INTERFACE_SEG 0x52 51 #define MULTIBOOT_INFO_OFFSET_VBE_INTERFACE_OFF 0x54 52 #define MULTIBOOT_INFO_OFFSET_VBE_INTERFACE_LEN 0x56 53 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_ADDR 0x58 54 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_PITCH 0x60 55 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_WIDTH 0x64 56 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_HEIGHT 0x68 57 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_BPP 0x6c 58 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_TYPE 0x6d 59 60 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_PALETTE_ADDR 0x6e 61 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_PALETTE_NUM_COLORS 0x72 62 63 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_RED_FIELD_POSITION 0x6e 64 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_RED_MASK_SIZE 0x6f 65 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_GREEN_FIELD_POSITION 0x70 66 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_GREEN_MASK_SIZE 0x71 67 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_BLUE_FIELD_POSITION 0x72 68 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_BLUE_MASK_SIZE 0x73 69 70 #define MULTIBOOT_INFO_SIZE 0x76 43 71 44 72 #ifndef __ASSEMBLER__ … … 57 85 uint32_t mmap_length; 58 86 uint32_t mmap_addr; 87 uint32_t drives_length; 88 uint32_t drives_addr; 89 uint32_t config_table; 90 uint32_t boot_loader_name; 91 uint32_t apm_table; 92 uint32_t vbe_control_info; 93 uint32_t vbe_mode_info; 94 uint16_t vbe_mode; 95 uint16_t vbe_interface_seg; 96 uint16_t vbe_interface_off; 97 uint16_t vbe_interface_len; 98 uint64_t framebuffer_addr; 99 uint32_t framebuffer_pitch; 100 uint32_t framebuffer_width; 101 uint32_t framebuffer_height; 102 uint8_t framebuffer_bpp; 103 uint8_t framebuffer_type; 104 union { 105 struct { 106 uint32_t framebuffer_palette_addr; 107 uint32_t framebuffer_palette_num_colors; 108 } __attribute__((packed)); 109 struct { 110 uint8_t framebuffer_red_field_position; 111 uint8_t framebuffer_red_mask_size; 112 uint8_t framebuffer_green_field_position; 113 uint8_t framebuffer_green_mask_size; 114 uint8_t framebuffer_blue_field_position; 115 uint8_t framebuffer_blue_mask_size; 116 } __attribute__((packed)); 117 } __attribute__((packed)); 59 118 } __attribute__((packed)) multiboot_info_t; 60 119 -
kernel/genarch/src/multiboot/multiboot.c
r15639ec r8781e9d 35 35 #include <typedefs.h> 36 36 #include <genarch/multiboot/multiboot.h> 37 #include <genarch/fb/bfb.h> 37 38 #include <config.h> 38 39 #include <stddef.h> … … 168 169 multiboot_memmap(info->mmap_length, 169 170 (multiboot_memmap_t *) MULTIBOOT_PTR(info->mmap_addr)); 171 172 #ifdef CONFIG_FB 173 174 /* Initialize framebuffer. */ 175 if ((info->flags & MULTIBOOT_INFO_FLAGS_FB) != 0) { 176 if (info->framebuffer_type != 1) { 177 /* Can't use this framebuffer. */ 178 // FIXME: framebuffer_type == 2 is EGA mode, we should be able to use that. 179 return; 180 } 181 182 bfb_addr = info->framebuffer_addr; 183 bfb_width = info->framebuffer_width; 184 bfb_height = info->framebuffer_height; 185 bfb_bpp = info->framebuffer_bpp; 186 bfb_scanline = info->framebuffer_pitch; 187 bfb_red_pos = info->framebuffer_red_field_position; 188 bfb_red_size = info->framebuffer_red_mask_size; 189 bfb_green_pos = info->framebuffer_green_field_position; 190 bfb_green_size = info->framebuffer_green_mask_size; 191 bfb_blue_pos = info->framebuffer_blue_field_position; 192 bfb_blue_size = info->framebuffer_blue_mask_size; 193 } 194 195 #endif 170 196 } 171 197 -
tools/autocheck.awk
r15639ec r8781e9d 38 38 39 39 /}.*;/ { 40 pattern = "}( __attribute__\\(.*\\))? (" struct_name "_t)?;" 41 if ($0 !~ pattern) { 42 print("Bad struct ending: " $0) > "/dev/stderr" 43 exit 1 40 pattern = "}( __attribute__\\(.*\\))? " struct_name "_t;" 41 if ($0 ~ pattern) { 42 macro_name = toupper(struct_name) "_SIZE" 43 print "_Static_assert(" macro_name " == sizeof(struct " struct_name "), \"\");" 44 struct_name = "" 44 45 } 45 macro_name = toupper(struct_name) "_SIZE"46 print "_Static_assert(" macro_name " == sizeof(struct " struct_name "), \"\");"47 struct_name = ""48 46 } 49 47 50 48 /;$/ { 51 if (struct_name != "" ) {49 if (struct_name != "" && $0 !~ "}") { 52 50 # Remove array subscript, if any. 53 51 sub("(\\[.*\\])?;", "", $0)
Note:
See TracChangeset
for help on using the changeset viewer.