.. | .. |
---|
7 | 7 | */ |
---|
8 | 8 | |
---|
9 | 9 | #include <linux/init.h> |
---|
| 10 | +#include <linux/memblock.h> |
---|
10 | 11 | #include <asm/txx9/generic.h> |
---|
11 | 12 | #include <asm/txx9/rbtx4939.h> |
---|
12 | 13 | |
---|
13 | 14 | void __init rbtx4939_prom_init(void) |
---|
14 | 15 | { |
---|
15 | | - tx4939_add_memory_regions(); |
---|
| 16 | + unsigned long start, size; |
---|
| 17 | + u64 win; |
---|
| 18 | + int i; |
---|
| 19 | + |
---|
| 20 | + for (i = 0; i < 4; i++) { |
---|
| 21 | + if (!((__u32)____raw_readq(&tx4939_ddrcptr->winen) & (1 << i))) |
---|
| 22 | + continue; |
---|
| 23 | + win = ____raw_readq(&tx4939_ddrcptr->win[i]); |
---|
| 24 | + start = (unsigned long)(win >> 48); |
---|
| 25 | + size = (((unsigned long)(win >> 32) & 0xffff) + 1) - start; |
---|
| 26 | + memblock_add(start << 20, size << 20); |
---|
| 27 | + } |
---|
16 | 28 | txx9_sio_putchar_init(TX4939_SIO_REG(0) & 0xfffffffffULL); |
---|
17 | 29 | } |
---|