Am 13.05.2010 18:52, schrieb Bernhard Loos:
> Hello
> Around line 583 in drivers/sbb/scan.c, there should be an if
> (bus->chip_rev >=4).
> Could you remove the if and always execute the code which assigns
> bus->nr_devices?
> This shouldn't be a problem, because the bits for the device number
> should be zero on cores which don't support it.
> I can also provide a new patch, if you like it better.
>
> Bernhard
Hi Bernhard,
I have changed the code to do the same things it did before your changes
at that position. My patch is attached.
With this patch all ssb Cores are found, but I get a oops in b43 driver
now. "Reserved instruction in kernel code"
I have not activated symbols will do now. Here is the log for now:
http://hauke-m.de/fileadmin/openwrt/brcm47xx-log/boot-not-working2.log
Could you please split 952-ai-scan.patch into two patches. One just
reorganizing the existing code without changing any functionality and
one adding the ai scan.
Hauke
--- a/drivers/ssb/scan.c 2010-05-13 17:18:05.347256703 +0200
+++ b/drivers/ssb/scan.c 2010-05-13 20:43:53.887257939 +0200
@@ -545,7 +545,7 @@
{
int err = -ENOMEM;
void __iomem *mmio;
- u32 tmp, chiptype = SSB_CHIPCO_TYPE_SB;
+ u32 tmp, idhi, rev, chiptype = SSB_CHIPCO_TYPE_SB;
bool have_chipcommon = true;
mmio = ssb_ioremap(bus, baseaddr);
@@ -572,6 +572,9 @@
bus->nr_devices = 0;
if (have_chipcommon) {
+ idhi = scan_read32(bus, 0, SSB_IDHIGH);
+ rev = (idhi & SSB_IDHIGH_RCLO);
+ rev |= (idhi & SSB_IDHIGH_RCHI) >> SSB_IDHIGH_RCHI_SHIFT;
tmp = scan_read32(bus, 0, SSB_CHIPCO_CHIPID);
bus->chip_id = (tmp & SSB_CHIPCO_IDMASK);
@@ -580,7 +583,7 @@
bus->chip_package = (tmp & SSB_CHIPCO_PACKMASK) >>
SSB_CHIPCO_PACKSHIFT;
chiptype = tmp & SSB_CHIPCO_TYPE_MASK;
- if (bus->chip_rev >= 4) {
+ if (rev >= 4) {
bus->nr_devices = (tmp & SSB_CHIPCO_NRCORESMASK) >>
SSB_CHIPCO_NRCORESSHIFT;
}
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel