Changeset 4872160 in mainline for boot/arch/mips32


Ignore:
Timestamp:
2010-05-04T10:44:55Z (16 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:
boot/arch/mips32
Files:
5 added
3 deleted
1 edited
10 moved

Legend:

Unmodified
Added
Removed
  • boot/arch/mips32/Makefile.inc

    rbb252ca r4872160  
    2727#
    2828
    29 include Makefile.common
     29BFD_ARCH = mips
     30BITS = 32
     31PAGE_SIZE = 16384
     32EXTRA_CFLAGS = -mno-abicalls -G 0 -fno-zero-initialized-in-bss -mips3
    3033
    31 build: $(BASE)/image.boot
     34RD_SRVS += \
     35        $(USPACE_PATH)/srv/bd/gxe_bd/gxe_bd
    3236
    33 $(BASE)/image.boot: $(COMPONENTS) $(INIT_TASKS) $(RD_SRVS) $(RD_APPS) $(CFG)
    34         $(MAKE) -C arch/$(BARCH)/loader PRECHECK=$(PRECHECK)
    35         cp arch/$(BARCH)/loader/image.boot $@
     37ifeq ($(MACHINE),lgxemul)
     38        BFD_NAME = elf32-tradlittlemips
     39        BFD_OUTPUT = ecoff-littlemips
     40        ENDIANESS = LE
     41endif
     42ifeq ($(MACHINE),bgxemul)
     43        BFD_NAME = elf32-tradbigmips
     44        BFD_OUTPUT = ecoff-bigmips
     45        ENDIANESS = BE
     46endif
     47ifeq ($(MACHINE),msim)
     48        BFD_NAME = elf32-tradlittlemips
     49        BFD_OUTPUT = binary
     50        ENDIANESS = LE
     51        EXTRA_GCC_CFLAGS = -mhard-float
     52endif
    3653
    37 clean:
    38         $(MAKE) -C arch/$(BARCH)/loader clean
    39         rm -f $(BASE)/image.boot
     54SOURCES = \
     55        arch/$(BARCH)/src/asm.S \
     56        arch/$(BARCH)/src/main.c \
     57        arch/$(BARCH)/src/putchar.c \
     58        $(COMPS_C) \
     59        genarch/src/division.c \
     60        genarch/src/multiplication.c \
     61        generic/src/printf_core.c \
     62        generic/src/vprintf.c \
     63        generic/src/printf.c \
     64        generic/src/str.c \
     65        generic/src/version.c \
     66        generic/src/inflate.c
  • boot/arch/mips32/include/arch.h

    rbb252ca r4872160  
    11/*
    22 * Copyright (c) 2006 Martin Decky
    3  * Copyright (c) 2006 Jakub Jermar
    43 * All rights reserved.
    54 *
     
    2827 */
    2928
    30 #ifndef BOOT_sparc64_ASM_H_
    31 #define BOOT_sparc64_ASM_H_
    32 
    33 #include "types.h"
    34 #include "main.h"
     29#ifndef BOOT_mips32_ARCH_H_
     30#define BOOT_mips32_ARCH_H_
    3531
    3632#define PAGE_WIDTH  14
    3733#define PAGE_SIZE   (1 << PAGE_WIDTH)
    3834
    39 #define BALLOC_MAX_SIZE  (128 * 1024)
     35#define CPUMAP_OFFSET    0x00001000
     36#define STACK_OFFSET     0x00002000
     37#define BOOTINFO_OFFSET  0x00003000
     38#define BOOT_OFFSET      0x00100000
     39#define LOADER_OFFSET    0x1fc00000
    4040
    41 extern void halt(void);
    42 extern void jump_to_kernel(void *entry, uint64_t cfg, bootinfo_t *bootinfo,
    43     unsigned int bootinfo_size, uint8_t subarchitecture) __attribute__((noreturn));
     41#define MSIM_VIDEORAM_ADDRESS  0xb0000000
     42#define MSIM_DORDER_ADDRESS    0xb0000004
     43
     44#ifndef __ASM__
     45        #define PA2KA(addr)    (((uintptr_t) (addr)) + 0x80000000)
     46        #define KSEG2PA(addr)  (((uintptr_t) (addr)) - 0xa0000000)
     47#else
     48        #define PA2KA(addr)    ((addr) + 0x80000000)
     49        #define KSEG2PA(addr)  ((addr) - 0xa0000000)
     50#endif
    4451
    4552#endif
  • boot/arch/mips32/include/asm.h

    rbb252ca r4872160  
    3030#define BOOT_mips32_ASM_H_
    3131
    32 #define PAGE_SIZE   16384
    33 #define PAGE_WIDTH  14
    34 
    35 void jump_to_kernel(void *entry, void *bootinfo) __attribute__((noreturn));
     32extern void jump_to_kernel(void *, void *) __attribute__((noreturn));
    3633
    3734#endif
  • boot/arch/mips32/include/main.h

    rbb252ca r4872160  
    2727 */
    2828
    29 #ifndef BOOT_ia64_MAIN_H_
    30 #define BOOT_ia64_MAIN_H_
     29#ifndef BOOT_mips32_MAIN_H_
     30#define BOOT_mips32_MAIN_H_
    3131
    32 #include <types.h>
    33 #include <../../../../kernel/arch/ia64/include/bootinfo.h>
    34 
    35 
    36 #define CONFIG_INIT_TASKS  32
    37 
    38 extern void start(void);
    3932extern void bootstrap(void);
    4033
  • boot/arch/mips32/include/regname.h

    rbb252ca r4872160  
    6363#define ra      31
    6464
    65 #define rindex          0
    66 #define rrandom         1
    67 #define entrylo0        2
    68 #define entrylo1        3
    69 #define context         4
    70 #define pagemask        5
    71 #define wired           6
    72 #define badvaddr        8
    73 #define count           9
    74 #define entryhi         10
    75 #define compare         11
    76 #define status          12
    77 #define cause           13
    78 #define epc             14
    79 #define rconfig         16
    80 #define lladdr          17
    81 #define watchlo         18
    82 #define watchhi         19
    83 #define xcontext        20
    84 #define rdebug          23
    85 #define depc            24
    86 #define eepc            30
     65#define rindex    0
     66#define rrandom   1
     67#define entrylo0  2
     68#define entrylo1  3
     69#define context   4
     70#define pagemask  5
     71#define wired     6
     72#define badvaddr  8
     73#define count     9
     74#define entryhi   10
     75#define compare   11
     76#define status    12
     77#define cause     13
     78#define epc       14
     79#define rconfig   16
     80#define lladdr    17
     81#define watchlo   18
     82#define watchhi   19
     83#define xcontext  20
     84#define rdebug    23
     85#define depc      24
     86#define eepc      30
    8787
    88 #endif /* _REGNAME_H_ */
     88#endif
Note: See TracChangeset for help on using the changeset viewer.