Changeset 7ba16eb in mainline for kernel/genarch


Ignore:
Timestamp:
2016-05-09T15:16:03Z (10 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
147a066
Parents:
fa9f8ad
Message:

Use autogenerated offsets to access multiboot info and memory map

Location:
kernel/genarch
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • kernel/genarch/Makefile.inc

    rfa9f8ad r7ba16eb  
    3030
    3131ifeq ($(CONFIG_ACPI),y)
    32         GENARCH_SOURCES += \
    33                 genarch/src/acpi/acpi.c \
    34                 genarch/src/acpi/madt.c
     32GENARCH_SOURCES += \
     33        genarch/src/acpi/acpi.c \
     34        genarch/src/acpi/madt.c
    3535endif
    3636
    3737ifeq ($(CONFIG_PAGE_PT),y)
    38         GENARCH_SOURCES += \
    39                 genarch/src/mm/page_pt.c \
    40                 genarch/src/mm/as_pt.c
     38GENARCH_SOURCES += \
     39        genarch/src/mm/page_pt.c \
     40        genarch/src/mm/as_pt.c
    4141endif
    4242
    4343ifeq ($(CONFIG_PAGE_HT),y)
    44         GENARCH_SOURCES += \
    45                 genarch/src/mm/page_ht.c \
    46                 genarch/src/mm/as_ht.c
     44GENARCH_SOURCES += \
     45        genarch/src/mm/page_ht.c \
     46        genarch/src/mm/as_ht.c
    4747endif
    4848
    4949ifeq ($(CONFIG_ASID),y)
    50         GENARCH_SOURCES += \
    51                 genarch/src/mm/asid.c
     50GENARCH_SOURCES += \
     51        genarch/src/mm/asid.c
    5252endif
    5353
    5454ifeq ($(CONFIG_ASID_FIFO),y)
    55         GENARCH_SOURCES += \
    56                 genarch/src/mm/asid_fifo.c
     55GENARCH_SOURCES += \
     56        genarch/src/mm/asid_fifo.c
    5757endif
    5858
    5959ifeq ($(CONFIG_SOFTINT),y)
    60         GENARCH_SOURCES += \
    61                 genarch/src/softint/division.c \
    62                 genarch/src/softint/multiplication.c
     60GENARCH_SOURCES += \
     61        genarch/src/softint/division.c \
     62        genarch/src/softint/multiplication.c
    6363endif
    6464
    6565ifeq ($(CONFIG_FB),y)
    66         GENARCH_SOURCES += \
    67                 genarch/src/fb/font-8x16.c \
    68                 genarch/src/fb/fb.c \
    69                 genarch/src/fb/bfb.c
     66GENARCH_SOURCES += \
     67        genarch/src/fb/font-8x16.c \
     68        genarch/src/fb/fb.c \
     69        genarch/src/fb/bfb.c
    7070endif
    7171
    7272ifeq ($(CONFIG_DSRLNIN),y)
    73         GENARCH_SOURCES += \
    74                 genarch/src/drivers/dsrln/dsrlnin.c
     73GENARCH_SOURCES += \
     74        genarch/src/drivers/dsrln/dsrlnin.c
    7575endif
    7676
    7777ifeq ($(CONFIG_DSRLNOUT),y)
    78         GENARCH_SOURCES += \
    79                 genarch/src/drivers/dsrln/dsrlnout.c
     78GENARCH_SOURCES += \
     79        genarch/src/drivers/dsrln/dsrlnout.c
    8080endif
    8181
    8282ifeq ($(CONFIG_I8042),y)
    83         GENARCH_SOURCES += \
    84                 genarch/src/drivers/i8042/i8042.c
     83GENARCH_SOURCES += \
     84        genarch/src/drivers/i8042/i8042.c
    8585endif
    8686
    8787ifeq ($(CONFIG_NS16550),y)
    88         GENARCH_SOURCES += \
    89                 genarch/src/drivers/ns16550/ns16550.c
     88GENARCH_SOURCES += \
     89        genarch/src/drivers/ns16550/ns16550.c
    9090endif
    9191
    9292ifeq ($(CONFIG_PL011_UART),y)
    93         GENARCH_SOURCES += \
    94                 genarch/src/drivers/pl011/pl011.c
     93GENARCH_SOURCES += \
     94        genarch/src/drivers/pl011/pl011.c
    9595endif
    9696
    9797ifeq ($(CONFIG_S3C24XX_IRQC),y)
    98         GENARCH_SOURCES += \
    99                 genarch/src/drivers/s3c24xx/irqc.c
     98GENARCH_SOURCES += \
     99        genarch/src/drivers/s3c24xx/irqc.c
    100100endif
    101101
    102102ifeq ($(CONFIG_S3C24XX_UART),y)
    103         GENARCH_SOURCES += \
    104                 genarch/src/drivers/s3c24xx/uart.c
     103GENARCH_SOURCES += \
     104        genarch/src/drivers/s3c24xx/uart.c
    105105endif
    106106
    107107ifeq ($(CONFIG_OMAP_UART),y)
    108         GENARCH_SOURCES += \
    109                 genarch/src/drivers/omap/uart.c
     108GENARCH_SOURCES += \
     109        genarch/src/drivers/omap/uart.c
    110110endif
    111111
    112112ifeq ($(CONFIG_GRLIB_UART),y)
    113         GENARCH_SOURCES += \
    114                 genarch/src/drivers/grlib/uart.c
     113GENARCH_SOURCES += \
     114        genarch/src/drivers/grlib/uart.c
    115115endif
    116116
    117117ifeq ($(CONFIG_GRLIB_IRQMP),y)
    118         GENARCH_SOURCES += \
    119                 genarch/src/drivers/grlib/irqmp.c
     118GENARCH_SOURCES += \
     119        genarch/src/drivers/grlib/irqmp.c
    120120endif
    121121
    122122ifeq ($(CONFIG_AM335X_TIMERS),y)
    123         GENARCH_SOURCES += \
    124                 genarch/src/drivers/am335x/timer.c
     123GENARCH_SOURCES += \
     124        genarch/src/drivers/am335x/timer.c
    125125endif
    126126
    127127ifeq ($(CONFIG_BCM2835_MAILBOX),y)
    128         GENARCH_SOURCES += \
    129                 genarch/src/drivers/bcm2835/mbox.c
     128GENARCH_SOURCES += \
     129        genarch/src/drivers/bcm2835/mbox.c
    130130endif
    131131
    132132ifeq ($(CONFIG_VIA_CUDA),y)
    133         GENARCH_SOURCES += \
    134                 genarch/src/drivers/via-cuda/cuda.c
     133GENARCH_SOURCES += \
     134        genarch/src/drivers/via-cuda/cuda.c
    135135endif
    136136
    137137ifeq ($(CONFIG_PC_KBD),y)
    138         GENARCH_SOURCES += \
    139                 genarch/src/kbrd/kbrd.c \
    140                 genarch/src/kbrd/scanc_pc.c
     138GENARCH_SOURCES += \
     139        genarch/src/kbrd/kbrd.c \
     140        genarch/src/kbrd/scanc_pc.c
    141141endif
    142142
    143143ifeq ($(CONFIG_SUN_KBD),y)
    144         GENARCH_SOURCES += \
    145                 genarch/src/kbrd/kbrd.c \
    146                 genarch/src/kbrd/scanc_sun.c
     144GENARCH_SOURCES += \
     145        genarch/src/kbrd/kbrd.c \
     146        genarch/src/kbrd/scanc_sun.c
    147147endif
    148148
    149149ifeq ($(CONFIG_MAC_KBD),y)
    150         GENARCH_SOURCES += \
    151                 genarch/src/kbrd/kbrd.c \
    152                 genarch/src/kbrd/scanc_mac.c
     150GENARCH_SOURCES += \
     151        genarch/src/kbrd/kbrd.c \
     152        genarch/src/kbrd/scanc_mac.c
    153153endif
    154154
    155155ifeq ($(CONFIG_SRLN),y)
    156         GENARCH_SOURCES += \
    157                 genarch/src/srln/srln.c
     156GENARCH_SOURCES += \
     157        genarch/src/srln/srln.c
    158158endif
    159159
    160160ifeq ($(CONFIG_OFW_TREE),y)
    161         GENARCH_SOURCES += \
    162                 genarch/src/ofw/ofw_tree.c
     161GENARCH_SOURCES += \
     162        genarch/src/ofw/ofw_tree.c
    163163endif
    164164
    165165ifeq ($(CONFIG_OFW_PCI),y)
    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
     166GENARCH_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
    171171endif
    172172
    173173ifeq ($(CONFIG_MULTIBOOT), y)
    174         GENARCH_SOURCES += \
    175                 genarch/src/multiboot/multiboot.c \
    176                 genarch/src/multiboot/multiboot2.c
     174GENARCH_SOURCES += \
     175        genarch/src/multiboot/multiboot.c \
     176        genarch/src/multiboot/multiboot2.c
     177GENARCH_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
     184genarch/include/genarch/multiboot/multiboot_memmap_struct.h: arch/$(KARCH)/include/arch/boot/memmap_struct.h
     185
    177186endif
    178187
    179188ifeq ($(CONFIG_EGA), y)
    180         GENARCH_SOURCES += \
    181                 genarch/src/drivers/ega/ega.c
     189GENARCH_SOURCES += \
     190        genarch/src/drivers/ega/ega.c
    182191endif
    183192
    184193ifeq ($(CONFIG_IOMAP_BITMAP), y)
    185         GENARCH_SOURCES += \
    186                 genarch/src/ddi/ddi-bitmap.c
     194GENARCH_SOURCES += \
     195        genarch/src/ddi/ddi-bitmap.c
    187196endif
    188197
    189198ifeq ($(CONFIG_IOMAP_DUMMY), y)
    190         GENARCH_SOURCES += \
    191                 genarch/src/ddi/ddi-dummy.c
    192 endif
    193 
     199GENARCH_SOURCES += \
     200        genarch/src/ddi/ddi-dummy.c
     201endif
     202
  • kernel/genarch/include/genarch/multiboot/multiboot.h

    rfa9f8ad r7ba16eb  
    3636#define KERN_MULTIBOOT_H_
    3737
     38#include <genarch/multiboot/multiboot_memmap_struct.h>
     39#include <genarch/multiboot/multiboot_info_struct.h>
     40
    3841#define MULTIBOOT_HEADER_MAGIC  0x1badb002
    3942#define MULTIBOOT_HEADER_FLAGS  0x00010003
    4043
    4144#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
    4253
    4354#ifndef __ASM__
     
    6071} __attribute__((packed)) multiboot_module_t;
    6172
    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    = 0x40
    96        
    97         /* ... */
    98 };
    99 
    10073extern void multiboot_extract_command(char *, size_t, const char *);
    10174extern void multiboot_extract_argument(char *, size_t, const char *);
Note: See TracChangeset for help on using the changeset viewer.