Commit Graph

18621 Commits

Author SHA1 Message Date
gwl
4c27e1d4aa add rtl8723a usb wifi support 2013-04-25 10:22:10 +08:00
xxx
f865ee1dd8 rk: pm_tests: rm auto_wakeup 2013-04-24 18:43:16 +08:00
xxx
78c933a21d rk30: pm: fix usb uart bupass support 2013-04-24 18:43:16 +08:00
ddl
0c3e15f8b6 camera(rk_cam_io:v0.1.0): turn off rk_cam_io log switch 2013-04-24 10:59:51 +08:00
gwl
22e31e8573 fix AP6X VDDIO error, and error name of AP6493. 2013-04-24 10:33:36 +08:00
黄涛
4906177e72 rk: add show cpu and soc interface 2013-04-23 18:58:57 +08:00
wdc
13ae592853 rda5876BT: add tcc_bt_drv for android4.2 2013-04-23 18:13:44 +08:00
xxx
84d839861a add debug function for rk suspend 2013-04-23 11:12:13 +08:00
黄涛
a41d6442f1 rk: only allow root access /proc/clocks and /sys/dvfs 2013-04-22 17:47:44 +08:00
黄涛
b8ec179618 rk3188: ARM errata: no direct eviction
Porting from Samsung.

761320: Full cache line writes to the same memory region from at least two processors
        might deadlock the processor

Status
Affects: Product Cortex-A9 MPCore.
Fault Type: Programmer Category B (Rare)
Fault Status: Present in: All r0, r1, r2 and r3 revisions Fixed in r4p0

Description
Under very rare circumstances, full cache line writes from (at least) 2 processors on cache lines in hazard with
other requests may cause arbitration issues in the SCU, leading to processor deadlock.

Configurations affected
This erratum affects the configurations of the processor with three or more active coherent agents, which is
either:
- Two or more processors if the ACP is present
- Three or more processors

Conditions
To trigger the erratum, at least three agents need to be working in SMP mode, and accessing coherent memory
regions.
Two or more processors need to perform full cache line writes, to cache lines which are in hazard with other
access requests in the SCU. The hazard in the SCU happens when another processor, or the ACP, is
performing a read or a write of the same cache line.
The following example describes one scenario that might cause this deadlock:
- CPU0 performs a full cache line write to address A, then a full cache line write to address B
- CPU1 performs a full cache line write to address B, then a full cache line write to address A
- CPU2 performs read accesses to addresses A and B
Under certain rare timing circumstances, the requests might create a loop of dependencies, causing a
processor deadlock.

Implications
When the erratum happens, it leads to system deadlock.
It is important to note that any scenario leading to this deadlock situation is uncommon. It requires two
processors writing full cache lines to a coherent memory region, without taking any semaphore, with another
processor or the ACP accessing the same lines at the same time, meaning that these latter accesses are not
deterministic. This, combined with the extremely rare microarchitectural timing conditions under which the defect
can happen, explains why the erratum is not expected to cause any significant malfunction in real systems.

Workaround
This erratum can be worked round by setting bit[21] of the undocumented Diagnostic Control Register to 1. This
register is encoded as CP15 c15 0 c0 1.
The bit can be written in Secure state only, with the following Read/Modify/Write code sequence:
	MRC p15,0,rt,c15,c0,1
	ORR rt,rt,#0x200000
	MCR p15,0,rt,c15,c0,1
When this bit is set, the “direct eviction” optimization in the Bus Interface Unit is disabled, which means this
erratum cannot occur.
Setting this bit might prevent the Cortex-A9 from utilizing the full bandwidth when performing intensive full cache
line writes, and therefore a slight performance drop might be visible.
In addition, this erratum cannot occur if at least one of the following bits in the Diagnostic Control Register is set
to 1:
- bit [23] – Disable Read-Allocate mode
- bit [22] – Disable Write Allocate Wait mode
2013-04-22 16:15:23 +08:00
zyk
c55fa689a6 rk3188 LR097 : change size of memory reserved for mali ump 2013-04-22 11:33:42 +08:00
陈金泉
1dea2c8c07 change for codec 2013-04-21 20:08:24 +08:00
yxj
4cefcadcc1 board jettaB:add hdmi irq pin 2013-04-19 22:16:15 +08:00
yxj
177f0be2cf add board jettaB 2013-04-18 22:46:36 +08:00
黄涛
1a2a596125 rk: set CONSISTENT_DMA_SIZE to 8M 2013-04-18 17:05:37 +08:00
hwg
472fefde56 modify rfkill cts iomux define 2013-04-17 23:11:21 +08:00
chenxing
fc0032371b rk3168: dvfs-rk3066b.c set some variables to static 2013-04-17 14:15:15 +08:00
chenxing
8d28fe9b41 rk3168: update dvfs table to set gpu voltage all 1.2V 2013-04-17 14:09:00 +08:00
chenxing
3ac8792230 rk3168: dvfs with uoc optimization 2013-04-17 14:09:00 +08:00
邱建斌
addc93ff1f rt5640 && rt5642 : support audio codec rt5642 rt5640 2013-04-16 11:22:14 +08:00
ddl
4a4960b9c5 camera: update board-rk30-ds975.c for new_camera struct 2013-04-15 15:26:28 +08:00
ddl
e0530fac75 camera: invalidate ov2659 register in rk3168 board 2013-04-12 11:24:06 +08:00
ddl
f37ee5ed2b camera: modify camera sensor device register method for each board file 2013-04-12 09:55:02 +08:00
xxx
1ef7299e1f dvfs add disable clk interfacet 2013-04-11 15:16:00 +08:00
ddl
c07951d843 add new_camera struct in each board file 2013-04-10 17:59:37 +08:00