Changeset be544ef in mainline


Ignore:
Timestamp:
2006-11-18T16:21:34Z (17 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d4f184f
Parents:
79f119b9
Message:

sparc64 work:

  • fix computation of the frame allocator configuration frame
  • mark the first physical frame unavailable, no matter what is its address

Because of that, we can now boot past the frame_arch_init() on the Ultra 60 now.

File:
1 edited

Legend:

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

    r79f119b9 rbe544ef  
    6565       
    6666                        confdata = ADDR2PFN(start);
    67                         if (confdata == 0)
    68                                 confdata = 2;
     67                        if (confdata == ADDR2PFN(KA2PA(PFN2ADDR(0))))
     68                                confdata = ADDR2PFN(KA2PA(PFN2ADDR(2)));
    6969                        zone_create(ADDR2PFN(start), SIZE2FRAMES(ALIGN_DOWN(size, FRAME_SIZE)), confdata, 0);
    70                
    7170                        last_frame = max(last_frame, start + ALIGN_UP(size, FRAME_SIZE));
    7271                }
    7372        }
    74 
     73       
     74        /*
     75         * On sparc64, physical memory can start on a non-zero address.
     76         * The generic frame_init() only marks PFN 0 as not free, so we
     77         * must mark the physically first frame not free explicitly here,
     78         * no matter what is its address.
     79         */
     80        frame_mark_unavailable(ADDR2PFN(KA2PA(PFN2ADDR(0))), 1);
    7581}
    7682
Note: See TracChangeset for help on using the changeset viewer.