Changeset 4872160 in mainline for kernel/arch/ia64


Ignore:
Timestamp:
2010-05-04T10:44:55Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
568db0f
Parents:
bb252ca
Message:

new boot infrastructure

  • more code and metadata unification
  • import of up-to-date implementations from the kernel
  • the boot loaders should behave more similarly on all platforms
  • support for deflate compressed (LZ77) boot components
    • this again allows feasible boot images to be created on mips32
  • IA64 is still not booting
    • the broken forked GNU EFI library has been removed, a replacement of the functionality is on its way
Location:
kernel/arch/ia64
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/include/bootinfo.h

    rbb252ca r4872160  
    3232#define BOOTINFO_ADDRESS 0x4401000
    3333
    34 #define CONFIG_INIT_TASKS       32
     34#define TASKMAP_MAX_RECORDS  32
    3535
    3636#define MEMMAP_ITEMS 128
     
    4444
    4545typedef struct {
    46         void *addr; 
    47         unsigned long size;
     46        void *addr;
     47        size_t size;
    4848        char name[BOOTINFO_TASK_NAME_BUFLEN];
    4949} binit_task_t;
    5050       
    5151typedef struct {
    52         unsigned long count;
    53         binit_task_t tasks[CONFIG_INIT_TASKS];
     52        size_t cnt;
     53        binit_task_t tasks[TASKMAP_MAX_RECORDS];
    5454} binit_t;
    5555
     
    5858        unsigned long base;
    5959        unsigned long size;
    60 }efi_memmap_item_t;
    61 
     60} efi_memmap_item_t;
    6261
    6362typedef struct {
    6463        binit_t taskmap;
    65 
     64       
    6665        efi_memmap_item_t memmap[MEMMAP_ITEMS];
    6766        unsigned int memmap_items;
    68 
     67       
    6968        unative_t *sapic;
    7069        unsigned long sys_freq;
  • kernel/arch/ia64/src/ia64.c

    rbb252ca r4872160  
    4747#include <mm/as.h>
    4848#include <config.h>
     49#include <macros.h>
    4950#include <userspace.h>
    5051#include <console/console.h>
     
    7879void arch_pre_main(void)
    7980{
    80         /* Setup usermode init tasks. */
    81 
    82         unsigned int i;
    83        
    84         init.cnt = bootinfo->taskmap.count;
    85        
     81        init.cnt = min3(bootinfo->taskmap.cnt, TASKMAP_MAX_RECORDS, CONFIG_INIT_TASKS);
     82        size_t i;
    8683        for (i = 0; i < init.cnt; i++) {
    8784                init.tasks[i].addr =
Note: See TracChangeset for help on using the changeset viewer.