#include <asm/abs_addr.h>
#include <asm/bitops.h>
-struct lmb lmb __initdata;
+struct lmb lmb;
+
+#undef DEBUG
+
+void lmb_dump_all(void)
+{
+#ifdef DEBUG
+ unsigned long i;
+ struct lmb *_lmb = &lmb;
+
+ udbg_printf("lmb_dump_all:\n");
+ udbg_printf(" memory.cnt = 0x%lx\n",
+ _lmb->memory.cnt);
+ udbg_printf(" memory.size = 0x%lx\n",
+ _lmb->memory.size);
+ for (i=0; i < _lmb->memory.cnt ;i++) {
+ udbg_printf(" memory.region[0x%x].base = 0x%lx\n",
+ i, _lmb->memory.region[i].base);
+ udbg_printf(" .physbase = 0x%lx\n",
+ _lmb->memory.region[i].physbase);
+ udbg_printf(" .size = 0x%lx\n",
+ _lmb->memory.region[i].size);
+ }
+
+ udbg_printf("\n reserved.cnt = 0x%lx\n",
+ _lmb->reserved.cnt);
+ udbg_printf(" reserved.size = 0x%lx\n",
+ _lmb->reserved.size);
+ for (i=0; i < _lmb->reserved.cnt ;i++) {
+ udbg_printf(" reserved.region[0x%x].base = 0x%lx\n",
+ i, _lmb->reserved.region[i].base);
+ udbg_printf(" .physbase = 0x%lx\n",
+ _lmb->reserved.region[i].physbase);
+ udbg_printf(" .size = 0x%lx\n",
+ _lmb->reserved.region[i].size);
+ }
+#endif /* DEBUG */
+}
static unsigned long __init
lmb_addrs_overlap(unsigned long base1, unsigned long size1,
void __init
lmb_init(void)
{
- unsigned long offset = reloc_offset();
- struct lmb *_lmb = PTRRELOC(&lmb);
+ struct lmb *_lmb = &lmb;
/* Create a dummy zero size LMB which will get coalesced away later.
* This simplifies the lmb_add() code below...
unsigned long i;
unsigned long mem_size = 0;
unsigned long size_mask = 0;
- unsigned long offset = reloc_offset();
- struct lmb *_lmb = PTRRELOC(&lmb);
+ struct lmb *_lmb = &lmb;
#ifdef CONFIG_MSCHUNKS
unsigned long physbase = 0;
#endif
long __init
lmb_add(unsigned long base, unsigned long size)
{
- unsigned long offset = reloc_offset();
- struct lmb *_lmb = PTRRELOC(&lmb);
+ struct lmb *_lmb = &lmb;
struct lmb_region *_rgn = &(_lmb->memory);
/* On pSeries LPAR systems, the first LMB is our RMO region. */
long __init
lmb_reserve(unsigned long base, unsigned long size)
{
- unsigned long offset = reloc_offset();
- struct lmb *_lmb = PTRRELOC(&lmb);
+ struct lmb *_lmb = &lmb;
struct lmb_region *_rgn = &(_lmb->reserved);
return lmb_add_region(_rgn, base, size);
{
long i, j;
unsigned long base = 0;
- unsigned long offset = reloc_offset();
- struct lmb *_lmb = PTRRELOC(&lmb);
+ struct lmb *_lmb = &lmb;
struct lmb_region *_mem = &(_lmb->memory);
struct lmb_region *_rsv = &(_lmb->reserved);
unsigned long __init
lmb_phys_mem_size(void)
{
- unsigned long offset = reloc_offset();
- struct lmb *_lmb = PTRRELOC(&lmb);
+ struct lmb *_lmb = &lmb;
#ifdef CONFIG_MSCHUNKS
return _lmb->memory.size;
#else
unsigned long __init
lmb_end_of_DRAM(void)
{
- unsigned long offset = reloc_offset();
- struct lmb *_lmb = PTRRELOC(&lmb);
+ struct lmb *_lmb = &lmb;
struct lmb_region *_mem = &(_lmb->memory);
int idx = _mem->cnt - 1;
lmb_abs_to_phys(unsigned long aa)
{
unsigned long i, pa = aa;
- unsigned long offset = reloc_offset();
- struct lmb *_lmb = PTRRELOC(&lmb);
+ struct lmb *_lmb = &lmb;
struct lmb_region *_mem = &(_lmb->memory);
for (i=0; i < _mem->cnt; i++) {