aboutsummaryrefslogtreecommitdiff
path: root/src/pmm.c
AgeCommit message (Collapse)AuthorFilesLines
2009-12-26Introduce MODESEGMENT define; rename VISIBLE32 to VISIBLE32FLAT.Kevin O'Connor1-8/+8
Prepare for support of segmented 32bit code. Add new MODESEGMENT definition, and clarify existing 32bit mode defs.
2009-11-25Clear unused parts of f-segment.Kevin O'Connor1-0/+4
On coreboot, the unused parts of the f-segment could contain leftover bios tables which may confuse an OS. So clear unused parts of f-segment.
2009-11-25Clear PMMAllocs even if CONFIG_PMM not set.Kevin O'Connor1-61/+61
The pmm based allocations are used for internal allocations now, so be sure to do a full reset even if external PMM not configured.
2009-10-12Use pmm_malloc() for internal allocations.Kevin O'Connor1-64/+51
Using pmm_malloc permits free() to be used on internal allocations. Rework low zone expanding so that it doesn't cause gcc v4.3 error. Allow pmm_malloc to use ZoneTmpLow if ZoneTmpHigh isn't available.
2009-10-04Workaround gcc4.3 compiler error - disable pmm low mem allocations.Kevin O'Connor1-0/+2
For some unknown reason, the 16bit version of low memory expansion is confusing gcc4.3. For now, just disable it as it isn't used in practice.
2009-09-24Add support for permanent low memory allocations.Kevin O'Connor1-8/+92
Support pmm style permanent low-memory allocations. When used, relocate ebda and store permanent memory at top of 640K.
2009-08-30Cleanups for malloc code.Kevin O'Connor1-18/+5
Fix bug where zones over 2gig may fail to allocate. Add memalign_high() and use for acpi facs allocation. Misc code cleanups.
2009-08-22Add initial support for PMM allocations of permanent memory.Kevin O'Connor1-10/+20
Support PCIv3 PMM requests for permanent memory. Only support permanent high memory requests for now.
2009-08-16Add support for using floppy images in CBFS.Kevin O'Connor1-15/+5
Add new "ramdisk" type for disk accesses. Extract out high-mem finding code from pmm into find_high_area(). Fix bug in GDB_BASE and GDT_LIMIT macros (wrong bit shifts).
2009-08-02Fix some PMM corner-cases.Kevin O'Connor1-13/+29
Make sure not to divide by zero when calculating usage percent in debug messages. Make sure high memory zones are aligned; make sure zone is big enough even after loss due to alignment. Be sure to reset ZoneTmpHigh and PMMAllocs on failure paths. Fix corner case in pmm_free() where an allocation might not get freed due to ordering of pmmalloc_s structs.
2009-08-01Add Post Memory Manager (PMM) support.Kevin O'Connor1-13/+320
Complete the initial implementation of PMM. Default new PMM code to be enabled. Move malloc code from memmap.c to pmm.c. Define new malloc zones for PMM (ZoneTmpLow and ZoneTmpHigh). Change default READ/WRITE_SEG macros to use 32bit pointers (the 16bit PMM code use "big real" mode and requires 32bit accesses). Allow pmm allocations to occur during bcv executions also. Add low-memory clearing before boot. Also, align the default f-seg memory.
2009-07-26Add PMM stubs.Kevin O'Connor1-0/+117
Add initial code for Post Memory Manager - it's just the stubs for now. Also, fix PnP entry point not clearing irqs and direction flags.