We recently received boards which aren't booting (linux/Android) from the production line of an existing design. Following information in the console we've realized the earlier prototypes we built were reporting the existence of the SGX accelerator even in an AM3505 ...
*** From Uboot on the "old" prototype ...
"showCpuRawInfo: cpuFamily=0x3500, cpuType=0xcc0, cpuRev=1, skuID=0x0, deviceType=0x3"
*** From Uboot on the "new" production ...
:"showCpuRawInfo: cpuFamily=0x3500, cpuType=0x4cc0, cpuRev=1, skuID=0x0, deviceType=0x3"
*** And then from the Kernel (2.6.36) - "old" prototype ...
Memory policy: ECC disabled, Data cache writeback
AM3517 ES1.1 (l2cache sgx neon isp )
SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x10000
*** "new" production ...
Memory policy: ECC disabled, Data cache writeback
AM3505 ES1.1 (l2cache neon isp )
SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x10000.
*** The Kernel on the new boards is crashing with the following (3 out of 3 are doing this) ...
adb_open
# davinci_mdio davinci_mdio: resetting idled controller
net eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=ffffffff:01, id=7c0f1)
Unhandled fault: external abort on non-linefetch (0x1008) at 0xd09d8014
Internal error: : 1008 [#1]
last sysfs file: /sys/power/state
Modules linked in: omaplfb pvrsrvkm
CPU: 0 Not tainted (2.6.37-g06ebbba-dirty #1)
PC is at OSReadHWReg+0xc/0x18 [pvrsrvkm]
LR is at SysFinalise+0x9c/0x118 [pvrsrvkm]
pc : [<bf000220>] lr : [<bf013a54>] psr: a0000013
sp : cc1cbe30 ip : cc1cbe40 fp : cc1cbe3c
r10: 00000000 r9 : cc1ca000 r8 : d09d8000
r7 : bf01ff20 r6 : 00000000 r5 : 00000000 r4 : bf01fe60
r3 : 00000002 r2 : 00000000 r1 : 00000014 r0 : d09d8000
Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: 10c5387d Table: 8c1cc019 DAC: 00000015
SP: 0xcc1cbdb0:
bdb0 00000000 00000000 00000000 bf01ff20 cc163000 00000000 ffffffff cc1cbe1c
bdd0 00000000 bf01ff20 cc1cbe3c cc1cbde8 c047d42c c003d274 d09d8000 00000014
bdf0 00000000 00000002 bf01fe60 00000000 00000000 bf01ff20 d09d8000 cc1ca000
be10 00000000 cc1cbe3c cc1cbe40 cc1cbe30 bf013a54 bf000220 a0000013 ffffffff
be30 cc1cbe6c cc1cbe40 bf013a54 bf000220 cc1cbe64 00000012 cc162048 bf01ff20
be50 cc163000 00000000 cc162000 cc163000 cc1cbe84 cc1cbe70 bf00c538 bf0139c4
be70 cc162000 cc163000 cc1cbea4 cc1cbe88 bf01117c bf00c524 cc1aef00 cc1cbed0
be90 00000045 cc162000 cc1cbecc cc1cbea8 bf01035c bf011130 cc1b0cc0 00000433
*** My suspicion is that we've uncovered a bug in the Kernel or Android where its accessing an SGX register that use to function (even in a AM3505) and TI has now removed that silicon and is generating an exception on access which isn't being handled.
Finally, Questions ...
1. Did the AM3505 use to use the AM3517 die, and has TI changed this recently?
"old" part (which works with 2.6.36) is marked
AM3505AZERA (new line) 15ALKKW GI (new line) 532 ZER
"new" part (crashes during boot)
AM3505AZERA (new line) 1CA5FKW GI (new line) 532 ZER
2. Has anyone else reported this issue? (... and I'm reposting this on the Android site to see if anyone responds)
Thanks ... Jim