Ignore:
Timestamp:
Mar 12, 2019, 1:37:38 PM (5 years ago)
Author:
alain
Message:

Fix several bugs to use the instruction MMU in kernel mode
in replacement of the instruction address extension register,
and remove the "kentry" segment.

This version is running on the tsar_generic_iob" platform.

One interesting bug: the cp0_ebase defining the kernel entry point
(for interrupts, exceptions and syscalls) must be initialized
early in kernel_init(), because the VFS initialisation done by
kernel_ini() uses RPCs, and RPCs uses Inter-Processor-Interrup.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/boot/tsar_mips32/boot_config.h

    r572 r624  
    77
    88// Debug options
     9#define DEBUG_BOOT_MULTI    0       
    910#define DEBUG_BOOT_INFO     0
    1011#define DEBUG_BOOT_ELF      0
     
    1314#define DEBUG_BOOT_FAT32    0
    1415
    15 // Core identifier format
    16 #define USE_FIXED_FORMAT    1
     16// Boot cluster definition
     17#define BOOT_CLUSTER_CXY    0
    1718
    1819// cache line
    1920#define CACHE_LINE_SIZE     64
    2021
    21 // Preloader temporary segment
     22// paths for kernel.elf and arch_info.bin files
     23#define ARCHINFO_PATHNAME   "arch_info.bin"
     24#define KERNEL_PATHNAME     "bin/kernel/kernel.elf"
     25
     26// Preloader segment
    2227#define PRELOADER_BASE      0x00000000      // 'preloader' physical base address
    2328#define PRELOADER_MAX_SIZE  0x00004000      // 'preloader' max size
    2429
    25 // kentry segment
    26 #define KENTRY_BASE         0x00004000      // 'kentry' segment physical base address       
    27 #define KENTRY_MAX_SIZE     0x00004000      // 'kentry' segment max size
    28 
    2930// kcode segment
    30 #define KCODE_BASE          0x00008000      // 'kcode' segment physical base address
    31 #define KCODE_MAX_SIZE      0x000F8000      // 'kcode' + 'kdata' segments max size
     31#define KCODE_BASE          0x00004000      // 'kcode' segment physical base address
     32#define KCODE_MAX_SIZE      0x000FC000      // 'kcode' + 'kdata' segments max size
    3233
    3334// boot.elf file temporary buffer
    34 #define BOOT_BASE           0x00100000      // 'boot.elf' file physical base address   
    35 #define BOOT_MAX_SIZE       0x00010000      // 'boot.elf' file max size
     35#define BOOT_BASE           0x00200000      // 'boot.elf' file physical base address   
     36#define BOOT_MAX_SIZE       0x00010000      // 'boot.elf' file max size (64 Kbytes)
    3637
    3738// arch_info file temporary buffer
    38 #define ARCHINFO_BASE       0x00200000      // 'arch_info.bin' file physical base address
    39 #define ARCHINFO_MAX_SIZE   0x00010000      // 'arch_info.bin' file max size
     39#define ARCHINFO_BASE       0x00300000      // 'arch_info.bin' file physical base address
     40#define ARCHINFO_MAX_SIZE   0x00010000      // 'arch_info.bin' file max size (64 Kbytes)
    4041
    4142// kernel.elf file temporary buffer
    42 #define KERN_BASE           0x00300000      // 'kernel.elf' file base address
     43#define KERN_BASE           0x00400000      // 'kernel.elf' file base address
    4344#define KERN_MAX_SIZE       0x00200000      // 'kernel.elf' file max size
    4445
    4546// Temporary stacks segments
    46 #define BOOT_STACK_BASE     0x00504000      // Boot stack base address
     47#define BOOT_STACK_BASE     0x00600000      // Boot stack base address
    4748#define BOOT_STACK_SIZE     0x00004000      // Boot stack size (16Kb)
    4849
Note: See TracChangeset for help on using the changeset viewer.