Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/src/mm/sun4v/frame.c

    r720db0c rb781cb29  
    4747void frame_arch_init(void)
    4848{
     49        unsigned int i;
     50        pfn_t confdata;
     51
    4952        if (config.cpu_active == 1) {
    50                 unsigned int i;
    51                
    5253                for (i = 0; i < memmap.cnt; i++) {
    53                         /* To be safe, make the available zone possibly smaller */
    54                         uintptr_t new_start = ALIGN_UP((uintptr_t) memmap.zones[i].start,
    55                             FRAME_SIZE);
    56                         size_t new_size = ALIGN_DOWN(memmap.zones[i].size -
    57                             (new_start - ((uintptr_t) memmap.zones[i].start)), FRAME_SIZE);
    58                        
     54                        uintptr_t start = (uintptr_t) memmap.zones[i].start;
     55                        size_t size = memmap.zones[i].size;
     56
    5957                        /*
    6058                         * The memmap is created by HelenOS boot loader.
    6159                         * It already contains no holes.
    6260                         */
    63                        
    64                         pfn_t confdata = ADDR2PFN(new_start);
    65                        
     61
     62                        confdata = ADDR2PFN(start);
    6663                        if (confdata == ADDR2PFN(KA2PA(PFN2ADDR(0))))
    6764                                confdata = ADDR2PFN(KA2PA(PFN2ADDR(2)));
    68                        
    69                         zone_create(ADDR2PFN(new_start), SIZE2FRAMES(new_size),
     65                        zone_create(ADDR2PFN(start),
     66                            SIZE2FRAMES(ALIGN_DOWN(size, FRAME_SIZE)),
    7067                            confdata, 0);
    7168                }
    72                
     69
    7370                /*
    7471                 * On sparc64, physical memory can start on a non-zero address.
Note: See TracChangeset for help on using the changeset viewer.