| |   |
| 61 | 61 | static int halibut_ffa; |
| 62 | 62 | module_param_named(ffa, halibut_ffa, int, S_IRUGO | S_IWUSR | S_IWGRP); |
| 63 | 63 | |
| static int banks=1; |
| module_param(banks, int, S_IRUGO | S_IWUSR | S_IWGRP); |
| 66 | 64 | static int adb=1; |
| 67 | 65 | module_param(adb, int, S_IRUGO | S_IWUSR | S_IWGRP); |
| 68 | 66 | |
| … | … | |
| 448 | 448 | msm_clock_init(); |
| 449 | 449 | } |
| 450 | 450 | |
| extern int use_extra_bank; /* From pmem.c */ |
| 451 | 452 | static void __init htcdiamond_fixup(struct machine_desc *desc, struct tag *tags, |
| 452 | 453 | char **cmdline, struct meminfo *mi) |
| 453 | 454 | { |
| … | … | |
| 456 | 456 | mi->bank[0].start = PAGE_ALIGN(PHYS_OFFSET); |
| 457 | 457 | mi->bank[0].node = PHYS_TO_NID(mi->bank[0].start); |
| 458 | 458 | mi->bank[0].size = (107 * 1024 * 1024); // Why 107? See board-htcdiamond.h |
| /* TODO: detect whether a 2nd memory bank is actually present, not all devices have it */ |
| // for now use a kernel parameter |
| if(banks==2) { |
| if(use_extra_bank) { |
| 462 | 460 | mi->nr_banks++; |
| 463 | 461 | mi->bank[1].start = PAGE_ALIGN(PHYS_OFFSET + 0x10000000); |
| 464 | 462 | mi->bank[1].node = PHYS_TO_NID(mi->bank[1].start); |
| mi->bank[1].size = (128 * 1024 * 1024); |
| mi->bank[1].size = 128*1024*1024-(51*1024*1024); |
| 466 | 464 | } |
| 467 | 465 | printk(KERN_INFO "fixup: nr_banks = %d\n", mi->nr_banks); |
| 468 | 466 | printk(KERN_INFO "fixup: bank0 start=%08lx, node=%08x, size=%08lx\n", mi->bank[0].start, mi->bank[0].node, mi->bank[0].size); |