| Summary: | Boot fails on IBM 7028-6E1 (heap memory claim failed) | ||
|---|---|---|---|
| Product: | Base System | Reporter: | Lyubomir Grigorov <lyubomir> |
| Component: | powerpc | Assignee: | Mark Linimon <linimon> |
| Status: | Closed Overcome By Events | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | 9.0-RELEASE | ||
| Hardware: | Any | ||
| OS: | Any | ||
On 01/16/12 16:46, Lyubomir Grigorov wrote:
>> Number: 164225
>> Category: powerpc
>> Synopsis: Boot fails on IBM 7028-6E1 (heap memory claim failed)
>> Confidential: no
>> Severity: non-critical
>> Priority: low
>> Responsible: freebsd-ppc
>> State: open
>> Quarter:
>> Keywords:
>> Date-Required:
>> Class: sw-bug
>> Submitter-Id: current-users
>> Arrival-Date: Mon Jan 16 22:50:06 UTC 2012
>> Closed-Date:
>> Last-Modified:
>> Originator: Lyubomir Grigorov
>> Release: 9.0-RELEASE
>> Organization:
>> Environment:
> n/a
>> Description:
> When booting 9.0-RELEASE (32bit ppc) on IBM pSeries 610 (7028-6E1), going to SMS, choosing install device CD-ROM, choosing FreeBSD 9.0, it fails with:
> Heap memory claim failed!
Thanks for debugging it this far! Could you also send a copy of the Open
Firmware device tree and the contents of the properties under the
/memory nodes?
-Nathan
For bugs matching the following criteria: Status: In Progress Changed: (is less than) 2014-06-01 Reset to default assignee and clear in-progress tags. Mail being skipped We later determined that we have insufficient support for the 7028. 7029s run but very slowly. I am currently running a 9133, however. |
When booting 9.0-RELEASE (32bit ppc) on IBM pSeries 610 (7028-6E1), going to SMS, choosing install device CD-ROM, choosing FreeBSD 9.0, it fails with: Heap memory claim failed! I traced the source to the following 3 files: sys/boot/ofw/common/main.c .. .. 48 #define HEAP_SIZE 0x80000 .. 52 void 53 init_heap(void) 54 { 55 void *base; 56 ihandle_t stdout; 57 58 if ((base = ofw_alloc_heap(HEAP_SIZE)) == (void *)0xffffffff) { 59 OF_getprop(chosen, "stdout", &stdout, sizeof(stdout)); 60 OF_puts(stdout, "Heap memory claim failed!\n"); 61 OF_enter(); 62 } 63 64 setheap(base, (void *)((int)base + HEAP_SIZE)); 65 } .. .. sys/boot/ofw/libofw/ofw_memory.c .. .. 119 ofw_alloc_heap(unsigned int size) 120 { 121 phandle_t memoryp, root; 122 cell_t available[4]; 123 cell_t acells; 124 125 root = OF_finddevice("/"); 126 acells = 1; 127 OF_getprop(root, "#address-cells", &acells, sizeof(acells)); 128 129 memoryp = OF_instance_to_package(memory); 130 OF_getprop(memoryp, "available", available, sizeof(available)); 131 132 heap_base = OF_claim((void *)available[acells-1], size, 133 sizeof(register_t)); 134 135 if (heap_base != (void *)-1) { 136 heap_size = size; 137 } 138 139 return (heap_base); 140 } .. .. sys/boot/ofw/libofw/openfirm.c .. .. 617 /* Claim an area of memory. */ 618 void * 619 OF_claim(void *virt, u_int size, u_int align) 620 { 621 static struct { 622 cell_t name; 623 cell_t nargs; 624 cell_t nreturns; 625 cell_t virt; 626 cell_t size; 627 cell_t align; 628 cell_t baseaddr; 629 } args = { 630 (cell_t)"claim", 631 3, 632 1, 633 }; 634 635 args.virt = (cell_t)virt; 636 args.size = size; 637 args.align = align; 638 if (openfirmware(&args) == -1) 639 return ((void *)-1); 640 return ((void *)args.baseaddr); 641 } .. .. I noticed that the NetBSD version only does: sys/arch/macppc/stand/ofwboot/Locore.c .. 442 return args.baseaddr; .. How-To-Repeat: Boot from FreeBSD 9.0 CD on an IBM 7028-6E1 or 7028-6C1.