Changeset View
Changeset View
Standalone View
Standalone View
sys/mips/broadcom/bcm_machdep.c
Show First 20 Lines • Show All 104 Lines • ▼ Show 20 Lines | #ifdef CFE | ||||
*/ | */ | ||||
physmem = 0; | physmem = 0; | ||||
for (i = 0; i < 10; i += 2) { | for (i = 0; i < 10; i += 2) { | ||||
int result; | int result; | ||||
uint64_t addr, len, type; | uint64_t addr, len, type; | ||||
result = cfe_enummem(i / 2, 0, &addr, &len, &type); | result = cfe_enummem(i / 2, 0, &addr, &len, &type); | ||||
if (result < 0) { | if (result < 0) { | ||||
BCM_TRACE("There is no phys memory for: %d\n", i); | BCM_TRACE("There is no phys memory for %d: err = %d\n", | ||||
i, result); | |||||
phys_avail[i] = phys_avail[i + 1] = 0; | phys_avail[i] = phys_avail[i + 1] = 0; | ||||
break; | break; | ||||
} | } | ||||
if (type != CFE_MI_AVAILABLE) { | if (type != CFE_MI_AVAILABLE) { | ||||
BCM_TRACE("phys memory is not available: %d\n", i); | BCM_TRACE("phys memory is not available: %d\n", i); | ||||
continue; | continue; | ||||
} | } | ||||
Show All 10 Lines | for (i = 0; i < 10; i += 2) { | ||||
BCM_TRACE("phys memory is available for: %d\n", i); | BCM_TRACE("phys memory is available for: %d\n", i); | ||||
BCM_TRACE(" => addr = %jx\n", addr); | BCM_TRACE(" => addr = %jx\n", addr); | ||||
BCM_TRACE(" => len = %jd\n", len); | BCM_TRACE(" => len = %jd\n", len); | ||||
phys_avail[i + 1] = addr + len; | phys_avail[i + 1] = addr + len; | ||||
physmem += len; | physmem += len; | ||||
} | } | ||||
if (physmem == 0) { | |||||
/* Don't give up */ | |||||
char memsz[16]; | |||||
int result; | |||||
bzero(memsz, 16); | |||||
result = cfe_getenv("CFE_MEMORYSIZE", memsz, 16); | |||||
BCM_TRACE("CFE_MEMORYSIZE: %d %s\n", result, memsz); | |||||
if (result == 0) { | |||||
physmem = strtoul(memsz, NULL, 10); | |||||
phys_avail[i++] = 0; | |||||
phys_avail[i++] = physmem; | |||||
} | |||||
} | |||||
BCM_TRACE("Total phys memory is : %ld\n", physmem); | BCM_TRACE("Total phys memory is : %ld\n", physmem); | ||||
realmem = btoc(physmem); | realmem = btoc(physmem); | ||||
#endif | #endif | ||||
for (j = 0; j < i; j++) | for (j = 0; j < i; j++) | ||||
dump_avail[j] = phys_avail[j]; | dump_avail[j] = phys_avail[j]; | ||||
physmem = realmem; | physmem = realmem; | ||||
▲ Show 20 Lines • Show All 77 Lines • ▼ Show 20 Lines | #define S5_CLKCFG1_CPUMULT_SHIFT 10 | ||||
printf("refclock = %u\n", refclock); | printf("refclock = %u\n", refclock); | ||||
printf("busmult = %u\n", busmult); | printf("busmult = %u\n", busmult); | ||||
printf("cpumult = %u\n", cpumult); | printf("cpumult = %u\n", cpumult); | ||||
counter_freq = cpumult * refclock; | counter_freq = cpumult * refclock; | ||||
#endif | #endif | ||||
socinfo = bcm_get_socinfo(); | socinfo = bcm_get_socinfo(); | ||||
platform_counter_freq = socinfo->cpurate * 1000 * 1000; /* BCM4718 is 480MHz */ | platform_counter_freq = socinfo->cpurate * 1000 * 1000; | ||||
mips_timer_early_init(platform_counter_freq); | mips_timer_early_init(platform_counter_freq); | ||||
#ifdef CFE | #ifdef CFE | ||||
/* | /* | ||||
* Initialize CFE firmware trampolines before | * Initialize CFE firmware trampolines before | ||||
* we initialize the low-level console. | * we initialize the low-level console. | ||||
* | * | ||||
Show All 15 Lines |