Deleted Added
full compact
28c28
< __FBSDID("$FreeBSD: head/sys/powerpc/booke/platform_bare.c 193492 2009-06-05 09:46:00Z raj $");
---
> __FBSDID("$FreeBSD: head/sys/powerpc/booke/platform_bare.c 209908 2010-07-11 21:08:29Z raj $");
38d37
< #include <machine/bootinfo.h>
47a47,51
> #include <dev/fdt/fdt_common.h>
> #include <dev/ofw/ofw_bus.h>
> #include <dev/ofw/ofw_bus_subr.h>
> #include <dev/ofw/openfirm.h>
>
49d52
< #include <powerpc/mpc85xx/ocpbus.h>
94c97,98
< uint32_t ver;
---
> uint32_t ver, sr;
> int i, law_max, tgt;
101a106,122
> /*
> * Clear local access windows. Skip DRAM entries, so we don't shoot
> * ourselves in the foot.
> */
> law_max = law_getmax();
> for (i = 0; i < law_max; i++) {
> sr = ccsr_read4(OCP85XX_LAWSR(i));
> if ((sr & 0x80000000) == 0)
> continue;
> tgt = (sr & 0x01f00000) >> 20;
> if (tgt == OCP85XX_TGTIF_RAM1 || tgt == OCP85XX_TGTIF_RAM2 ||
> tgt == OCP85XX_TGTIF_RAM_INTL)
> continue;
>
> ccsr_write4(OCP85XX_LAWSR(i), sr & 0x7fffffff);
> }
>
112,113c133,134
< struct bi_mem_region *mr;
< int i;
---
> uint32_t memsize;
> int i, rv;
115,120c136,145
< /* Initialize memory regions table */
< mr = bootinfo_mr();
< for (i = 0; i < bootinfo->bi_mem_reg_no; i++, mr++) {
< if (i == MEM_REGIONS)
< break;
< if (mr->mem_base < 1048576) {
---
> rv = fdt_get_mem_regions(avail_regions, availsz, &memsize);
>
> if (rv != 0)
> return;
>
> for (i = 0; i < *availsz; i++) {
> if (avail_regions[i].mr_start < 1048576) {
> avail_regions[i].mr_size =
> avail_regions[i].mr_size -
> (1048576 - avail_regions[i].mr_start);
122,126d146
< avail_regions[i].mr_size = mr->mem_size -
< (1048576 - mr->mem_base);
< } else {
< avail_regions[i].mr_start = mr->mem_base;
< avail_regions[i].mr_size = mr->mem_size;
129d148
< *availsz = i;
140a160,161
> phandle_t cpus, child;
> pcell_t freq;
141a163,171
> if ((cpus = OF_finddevice("/cpus")) == 0)
> goto out;
>
> if ((child = OF_child(cpus)) == 0)
> goto out;
>
> if (OF_getprop(child, "bus-frequency", (void *)&freq,
> sizeof(freq)) <= 0)
> goto out;
146c176,177
< ticks = bootinfo->bi_bus_clk / 8;
---
> ticks = freq / 8;
> out: