On 1 October 2012 19:33, Dave Martin dave.martin@linaro.org wrote:
On Thu, Sep 27, 2012 at 07:06:20PM +0100, Jon Medhurst (Tixy) wrote:
/* Turn on CCI snoops and DVM messages */
io32(cci+0x4000) = 0x3; /* A15 cluster */
io32(cci+0x5000) = 0x3; /* A7 cluster */
Ultimately, CCI slave port assignments will be deducible from the DT topology, but we don't have this yet, so I guess this is OK for now.
For the intergrated switcher work we can have a simple local patch for this until/unless this (or the switcher) becomes more generic.
Would the local patch be for the bootwrapper or the integrated switcher kernel? The latter would be nice, as it would allow "one bootwrapper for everything". With the former we could still have an ifdef and build both bootwrappers from same source.
Riku
/* Wait while change pending bit of status register is set */
while(io32(cci+0xc) & 0x1)
{}
+}
+static void configure_from_fdt(struct loader_info *info) +{
void *fdt = (void *)info->fdt_start;
uint32_t const *p;
int addrcells, sizecells;
int offset, len;
if(!fdt)
return;
_fdt_address_and_size_cells(fdt, &addrcells, &sizecells);
/* See if there is a CCI device to initialise */
offset = fdt_node_offset_by_compatible(fdt, 0, "arm,cci");
I'm guessing this binding isn't official yet, but it'll do for now...
if (offset >= 0) {
p = fdt_getprop(fdt, offset, "reg", &len);
if(len != (addrcells + sizecells) * 4)
info("Failed parsing device-tree node for CCI\n");
else
init_cci(fdt32_to_cpu(p[addrcells - 1]));
I think this is worth a comment. I presume you're trying to get the low 32 bits of the address here (and assuming that the high 32 bits are zero).
Cheers ---Dave
}
return;
+}
static int is_space(char c) { return c == ' '; @@ -598,4 +646,6 @@ args_done: atag_append(&atagp, ATAG_NONE, 0, 0);
update_fdt(&phys, info);
configure_from_fdt(info);
}
1.7.10.4
linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev