Changeset 7ba16eb in mainline
- Timestamp:
- 2016-05-09T15:16:03Z (9 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 147a066
- Parents:
- fa9f8ad
- Location:
- kernel
- Files:
-
- 4 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/Makefile
rfa9f8ad r7ba16eb 377 377 GENARCH_OBJECTS := $(addsuffix .o,$(basename $(GENARCH_SOURCES))) 378 378 379 GENARCH_AUTOGENS_H := $(addsuffix .h,$(basename $(GENARCH_AUTOGENS_AG))) 380 GENARCH_AUTOGENS_PROBE_C := $(addsuffix .ag.probe.c,$(basename $(GENARCH_AUTOGENS_AG))) 381 GENARCH_AUTOGENS_PROBE_S := $(addsuffix .ag.probe.s,$(basename $(GENARCH_AUTOGENS_AG))) 382 379 383 ARCH_AUTOGENS_H := $(addsuffix .h,$(basename $(ARCH_AUTOGENS_AG))) 380 384 ARCH_AUTOGENS_PROBE_C := $(addsuffix .ag.probe.c,$(basename $(ARCH_AUTOGENS_AG))) … … 460 464 $(GENMAP) $(MAP_PREV) $(DUMP) $@ 461 465 462 $(DEPEND): $(COMMON_HEADER_ARCH) $(ARCH_AUTOGENS_H) 466 $(DEPEND): $(COMMON_HEADER_ARCH) $(ARCH_AUTOGENS_H) $(GENARCH_AUTOGENS_H) 463 467 makedepend -f - -- $(DEPEND_DEFS) $(CFLAGS) -- $(ARCH_SOURCES) $(GENARCH_SOURCES) $(GENERIC_SOURCES) > $@ 2> /dev/null 464 468 -[ -f $(DEPEND_PREV) ] && diff -q $(DEPEND_PREV) $@ && mv -f $(DEPEND_PREV) $@ … … 469 473 autogen_clean: 470 474 -rm $(ARCH_AUTOGENS_H) $(ARCH_AUTOGENS_PROBE_C) $(ARCH_AUTOGENS_PROBE_S) 475 -rm $(GENARCH_AUTOGENS_H) $(GENARCH_AUTOGENS_PROBE_C) $(GENARCH_AUTOGENS_PROBE_S) -
kernel/arch/amd64/Makefile.inc
rfa9f8ad r7ba16eb 93 93 arch/$(KARCH)/include/arch/istate_struct.ag \ 94 94 arch/$(KARCH)/include/arch/context_struct.ag \ 95 arch/$(KARCH)/include/arch/kseg_struct.ag 95 arch/$(KARCH)/include/arch/kseg_struct.ag \ 96 arch/$(KARCH)/include/arch/boot/memmap_struct.ag -
kernel/arch/ia32/Makefile.inc
rfa9f8ad r7ba16eb 110 110 ARCH_AUTOGENS_AG = \ 111 111 arch/$(KARCH)/include/arch/istate_struct.ag \ 112 arch/$(KARCH)/include/arch/context_struct.ag 112 arch/$(KARCH)/include/arch/context_struct.ag \ 113 arch/$(KARCH)/include/arch/boot/memmap_struct.ag 113 114 -
kernel/arch/ia32/include/arch/boot/memmap.h
rfa9f8ad r7ba16eb 36 36 #define KERN_ia32_MEMMAP_H_ 37 37 38 #include <arch/boot/memmap_struct.h> 39 38 40 /* E820h memory range types */ 39 41 … … 63 65 #include <typedefs.h> 64 66 65 typedef struct {66 uint64_t base_address;67 uint64_t size;68 uint32_t type;69 } __attribute__ ((packed)) e820memmap_t;70 71 67 extern e820memmap_t e820table[MEMMAP_E820_MAX_RECORDS]; 72 68 extern uint8_t e820counter; -
kernel/arch/ia32/src/boot/multiboot.S
rfa9f8ad r7ba16eb 31 31 #include <abi/asmtool.h> 32 32 #include <arch/boot/boot.h> 33 #include <arch/boot/memmap.h> 33 34 #include <arch/mm/page.h> 34 35 #include <arch/pm.h> … … 315 316 /* Check if memory map flag is present */ 316 317 movl (%ebx), %edx 317 andl $ (1 << 6), %edx318 andl $MULTIBOOT_INFO_FLAGS_MMAP, %edx 318 319 jnz use_multiboot_map 319 320 … … 323 324 324 325 /* Copy address of the memory map to edx */ 325 movl 48(%ebx), %edx326 movl MULTIBOOT_INFO_OFFSET_MMAP_ADDR(%ebx), %edx 326 327 movl %edx, %ecx 327 328 328 addl 44(%ebx), %ecx329 addl MULTIBOOT_INFO_OFFSET_MMAP_LENGTH(%ebx), %ecx 329 330 330 331 /* Find a free region at least 2M in size */ … … 332 333 333 334 /* Is this a free region? */ 334 cmp $1, 20(%edx)335 cmpl $MEMMAP_MEMORY_AVAILABLE, MULTIBOOT_MEMMAP_OFFSET_MM_INFO + E820MEMMAP_OFFSET_TYPE(%edx) 335 336 jnz next_region 336 337 337 338 /* Check size */ 338 cmp $0, 16(%edx)339 cmpl $0, MULTIBOOT_MEMMAP_OFFSET_MM_INFO + E820MEMMAP_OFFSET_SIZE + 4(%edx) 339 340 jnz next_region 340 341 cmpl $(2 * 1024 * 1024 + 4 * 1024), 12(%edx) 341 cmpl $(2 * 1024 * 1024 + PAGE_SIZE), MULTIBOOT_MEMMAP_OFFSET_MM_INFO + E820MEMMAP_OFFSET_SIZE(%edx) 342 342 jbe next_region 343 343 344 cmp $0, 8(%edx)344 cmpl $0, MULTIBOOT_MEMMAP_OFFSET_MM_INFO + E820MEMMAP_OFFSET_BASE_ADDRESS + 4(%edx) 345 345 jz found_region 346 346 … … 354 354 next_region_do: 355 355 356 addl (%edx), %edx357 addl $ 4, %edx356 addl MULTIBOOT_MEMMAP_OFFSET_SIZE(%edx), %edx 357 addl $MULTIBOOT_MEMMAP_SIZE_SIZE, %edx 358 358 jmp check_memmap_loop 359 359 … … 361 361 362 362 /* Use end of the found region */ 363 mov 4(%edx), %ecx364 add 12(%edx), %ecx363 mov MULTIBOOT_MEMMAP_OFFSET_MM_INFO + E820MEMMAP_OFFSET_BASE_ADDRESS(%edx), %ecx 364 add MULTIBOOT_MEMMAP_OFFSET_MM_INFO + E820MEMMAP_OFFSET_SIZE(%edx), %ecx 365 365 sub $(2 * 1024 * 1024), %ecx 366 366 mov %ecx, free_area -
kernel/genarch/Makefile.inc
rfa9f8ad r7ba16eb 30 30 31 31 ifeq ($(CONFIG_ACPI),y) 32 33 34 32 GENARCH_SOURCES += \ 33 genarch/src/acpi/acpi.c \ 34 genarch/src/acpi/madt.c 35 35 endif 36 36 37 37 ifeq ($(CONFIG_PAGE_PT),y) 38 39 40 38 GENARCH_SOURCES += \ 39 genarch/src/mm/page_pt.c \ 40 genarch/src/mm/as_pt.c 41 41 endif 42 42 43 43 ifeq ($(CONFIG_PAGE_HT),y) 44 45 46 44 GENARCH_SOURCES += \ 45 genarch/src/mm/page_ht.c \ 46 genarch/src/mm/as_ht.c 47 47 endif 48 48 49 49 ifeq ($(CONFIG_ASID),y) 50 51 50 GENARCH_SOURCES += \ 51 genarch/src/mm/asid.c 52 52 endif 53 53 54 54 ifeq ($(CONFIG_ASID_FIFO),y) 55 56 55 GENARCH_SOURCES += \ 56 genarch/src/mm/asid_fifo.c 57 57 endif 58 58 59 59 ifeq ($(CONFIG_SOFTINT),y) 60 61 62 60 GENARCH_SOURCES += \ 61 genarch/src/softint/division.c \ 62 genarch/src/softint/multiplication.c 63 63 endif 64 64 65 65 ifeq ($(CONFIG_FB),y) 66 67 68 69 66 GENARCH_SOURCES += \ 67 genarch/src/fb/font-8x16.c \ 68 genarch/src/fb/fb.c \ 69 genarch/src/fb/bfb.c 70 70 endif 71 71 72 72 ifeq ($(CONFIG_DSRLNIN),y) 73 74 73 GENARCH_SOURCES += \ 74 genarch/src/drivers/dsrln/dsrlnin.c 75 75 endif 76 76 77 77 ifeq ($(CONFIG_DSRLNOUT),y) 78 79 78 GENARCH_SOURCES += \ 79 genarch/src/drivers/dsrln/dsrlnout.c 80 80 endif 81 81 82 82 ifeq ($(CONFIG_I8042),y) 83 84 83 GENARCH_SOURCES += \ 84 genarch/src/drivers/i8042/i8042.c 85 85 endif 86 86 87 87 ifeq ($(CONFIG_NS16550),y) 88 89 88 GENARCH_SOURCES += \ 89 genarch/src/drivers/ns16550/ns16550.c 90 90 endif 91 91 92 92 ifeq ($(CONFIG_PL011_UART),y) 93 94 93 GENARCH_SOURCES += \ 94 genarch/src/drivers/pl011/pl011.c 95 95 endif 96 96 97 97 ifeq ($(CONFIG_S3C24XX_IRQC),y) 98 99 98 GENARCH_SOURCES += \ 99 genarch/src/drivers/s3c24xx/irqc.c 100 100 endif 101 101 102 102 ifeq ($(CONFIG_S3C24XX_UART),y) 103 104 103 GENARCH_SOURCES += \ 104 genarch/src/drivers/s3c24xx/uart.c 105 105 endif 106 106 107 107 ifeq ($(CONFIG_OMAP_UART),y) 108 109 108 GENARCH_SOURCES += \ 109 genarch/src/drivers/omap/uart.c 110 110 endif 111 111 112 112 ifeq ($(CONFIG_GRLIB_UART),y) 113 114 113 GENARCH_SOURCES += \ 114 genarch/src/drivers/grlib/uart.c 115 115 endif 116 116 117 117 ifeq ($(CONFIG_GRLIB_IRQMP),y) 118 119 118 GENARCH_SOURCES += \ 119 genarch/src/drivers/grlib/irqmp.c 120 120 endif 121 121 122 122 ifeq ($(CONFIG_AM335X_TIMERS),y) 123 124 123 GENARCH_SOURCES += \ 124 genarch/src/drivers/am335x/timer.c 125 125 endif 126 126 127 127 ifeq ($(CONFIG_BCM2835_MAILBOX),y) 128 129 128 GENARCH_SOURCES += \ 129 genarch/src/drivers/bcm2835/mbox.c 130 130 endif 131 131 132 132 ifeq ($(CONFIG_VIA_CUDA),y) 133 134 133 GENARCH_SOURCES += \ 134 genarch/src/drivers/via-cuda/cuda.c 135 135 endif 136 136 137 137 ifeq ($(CONFIG_PC_KBD),y) 138 139 140 138 GENARCH_SOURCES += \ 139 genarch/src/kbrd/kbrd.c \ 140 genarch/src/kbrd/scanc_pc.c 141 141 endif 142 142 143 143 ifeq ($(CONFIG_SUN_KBD),y) 144 145 146 144 GENARCH_SOURCES += \ 145 genarch/src/kbrd/kbrd.c \ 146 genarch/src/kbrd/scanc_sun.c 147 147 endif 148 148 149 149 ifeq ($(CONFIG_MAC_KBD),y) 150 151 152 150 GENARCH_SOURCES += \ 151 genarch/src/kbrd/kbrd.c \ 152 genarch/src/kbrd/scanc_mac.c 153 153 endif 154 154 155 155 ifeq ($(CONFIG_SRLN),y) 156 157 156 GENARCH_SOURCES += \ 157 genarch/src/srln/srln.c 158 158 endif 159 159 160 160 ifeq ($(CONFIG_OFW_TREE),y) 161 162 161 GENARCH_SOURCES += \ 162 genarch/src/ofw/ofw_tree.c 163 163 endif 164 164 165 165 ifeq ($(CONFIG_OFW_PCI),y) 166 167 168 169 170 166 GENARCH_SOURCES += \ 167 genarch/src/ofw/ebus.c \ 168 genarch/src/ofw/pci.c \ 169 genarch/src/ofw/sbus.c \ 170 genarch/src/ofw/upa.c 171 171 endif 172 172 173 173 ifeq ($(CONFIG_MULTIBOOT), y) 174 GENARCH_SOURCES += \ 175 genarch/src/multiboot/multiboot.c \ 176 genarch/src/multiboot/multiboot2.c 174 GENARCH_SOURCES += \ 175 genarch/src/multiboot/multiboot.c \ 176 genarch/src/multiboot/multiboot2.c 177 GENARCH_AUTOGENS_AG += \ 178 genarch/include/genarch/multiboot/multiboot_memmap_struct.ag \ 179 genarch/include/genarch/multiboot/multiboot_info_struct.ag 180 181 # 182 # Currently there is no automated way to describe dependencies between two autogenerated headers, 183 # so we need to do it manually 184 genarch/include/genarch/multiboot/multiboot_memmap_struct.h: arch/$(KARCH)/include/arch/boot/memmap_struct.h 185 177 186 endif 178 187 179 188 ifeq ($(CONFIG_EGA), y) 180 181 189 GENARCH_SOURCES += \ 190 genarch/src/drivers/ega/ega.c 182 191 endif 183 192 184 193 ifeq ($(CONFIG_IOMAP_BITMAP), y) 185 186 194 GENARCH_SOURCES += \ 195 genarch/src/ddi/ddi-bitmap.c 187 196 endif 188 197 189 198 ifeq ($(CONFIG_IOMAP_DUMMY), y) 190 191 192 endif 193 199 GENARCH_SOURCES += \ 200 genarch/src/ddi/ddi-dummy.c 201 endif 202 -
kernel/genarch/include/genarch/multiboot/multiboot.h
rfa9f8ad r7ba16eb 36 36 #define KERN_MULTIBOOT_H_ 37 37 38 #include <genarch/multiboot/multiboot_memmap_struct.h> 39 #include <genarch/multiboot/multiboot_info_struct.h> 40 38 41 #define MULTIBOOT_HEADER_MAGIC 0x1badb002 39 42 #define MULTIBOOT_HEADER_FLAGS 0x00010003 40 43 41 44 #define MULTIBOOT_LOADER_MAGIC 0x2badb002 45 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 42 53 43 54 #ifndef __ASM__ … … 60 71 } __attribute__((packed)) multiboot_module_t; 61 72 62 /** Multiboot mmap structure */63 typedef struct {64 uint32_t size;65 e820memmap_t mm_info;66 } __attribute__((packed)) multiboot_memmap_t;67 68 /** Multiboot information structure */69 typedef struct {70 uint32_t flags;71 uint32_t mem_lower;72 uint32_t mem_upper;73 74 uint32_t boot_device;75 uint32_t cmdline;76 77 uint32_t mods_count;78 mbaddr_t mods_addr;79 80 uint32_t syms[4];81 82 uint32_t mmap_length;83 mbaddr_t mmap_addr;84 85 /* ... */86 } __attribute__((packed)) multiboot_info_t;87 88 enum multiboot_info_flags {89 MULTIBOOT_INFO_FLAGS_MEM = 0x01,90 MULTIBOOT_INFO_FLAGS_BOOT = 0x02,91 MULTIBOOT_INFO_FLAGS_CMDLINE = 0x04,92 MULTIBOOT_INFO_FLAGS_MODS = 0x08,93 MULTIBOOT_INFO_FLAGS_SYMS1 = 0x10,94 MULTIBOOT_INFO_FLAGS_SYMS2 = 0x20,95 MULTIBOOT_INFO_FLAGS_MMAP = 0x4096 97 /* ... */98 };99 100 73 extern void multiboot_extract_command(char *, size_t, const char *); 101 74 extern void multiboot_extract_argument(char *, size_t, const char *);
Note:
See TracChangeset
for help on using the changeset viewer.