Commit Graph

270971 Commits

Author SHA1 Message Date
张晴
bde565f96a rk808:support dcdc1\2 raise voltage by step 2013-04-22 17:20:54 +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
yxj
93d60a31ca mfd:rk616:core:modify pll config,make register dump more pretty 2013-04-22 12:26:04 +08:00
yxj
7c183c03c9 mfd:rk616:hdmi:make reg dump looks more pretty 2013-04-22 12:26:03 +08:00
yxj
601de0bf05 mfd:rk616:support lcd1 as RGB output port 2013-04-22 12:26:03 +08:00
yxj
ae21e9c281 mfd:rk616:core:set vif vst hst to 1 2013-04-22 12:26:03 +08:00
yxj
7633432049 mfd:rk616:core:add pll config 2013-04-22 12:26:03 +08:00
陈金泉
13e28f85da fix codec pop noise 2013-04-22 12:12:13 +08:00
陈金泉
347552c11e add work and route for codec rk616 2013-04-22 11:35:47 +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
yzq
90eeb0e216 mfd:rk616: support irq mode 2013-04-21 19:05:02 +08:00
yzq
8987772dd9 mfd:rk616:hdmi: display ok 2013-04-20 20:47:00 +08:00
yxj
c65e706d4b mfd:rk616:hdmi:use threaded irq,hot pulg ok 2013-04-20 12:40:45 +08:00
yxj
4cefcadcc1 board jettaB:add hdmi irq pin 2013-04-19 22:16:15 +08:00
yxj
725088ece4 mfd:rk616:dhmi:fix register msk bug 2013-04-19 21:50:22 +08:00
yxj
0070281c14 mfd rk616 hdmi:fix register config bug 2013-04-19 15:23:17 +08:00
yxj
177f0be2cf add board jettaB 2013-04-18 22:46:36 +08:00
yxj
b9d5fbdaed screen b101ew05:support rk616 lvds 2013-04-18 22:46:35 +08:00
yxj
0ae1d938a4 mfd:rk616:lvds function ok 2013-04-18 22:46:35 +08:00
yxj
8d92ce4b1b mfd:rk616:hdmi:fix g_rk616_hdmi initial bug 2013-04-18 22:46:35 +08:00
黄涛
1a2a596125 rk: set CONSISTENT_DMA_SIZE to 8M 2013-04-18 17:05:37 +08:00
yxj
7e47f8bd4b fix bug of rk_fb_set_par in hdmi mode 2013-04-18 15:33:22 +08:00
yxj
1bac773778 rk screen:add SCREEN_TYPE SCREEN_MIPI 2013-04-18 15:33:22 +08:00
陈金泉
23c49bc23c add rk616 codec driver 2013-04-18 10:42:32 +08:00
hwg
472fefde56 modify rfkill cts iomux define 2013-04-17 23:11:21 +08:00
hwg
71bdafdf30 NL80211_TESTMODE depends on CFG80211 && (MT5931 || MT5931_MT6622) 2013-04-17 20:02:40 +08:00
Zhaoyifeng
a8458c6cfe MTD:MTD MERGE READ AND WRITE FOR ONE REQ. ZYF 2013-04-17 15:59:10 +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
zsq
e00d7ceccb fix sysc wait queue error 2013-04-16 17:45:12 +08:00
hhb
3fbf432a9f rk_serial:1.fix bug dma buffer free error 2013-04-16 17:10:09 +08:00
邱建斌
addc93ff1f rt5640 && rt5642 : support audio codec rt5642 rt5640 2013-04-16 11:22:14 +08:00
ddl
214788e47b camera(generic_sensor v0.1.1): add sensor_focus_af_const_pause_usr_cb 2013-04-15 17:27:18 +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
ddl
720ea6ad51 camera: add notice message when sensor driver is new,but sensor device registered in board file by old 2013-04-11 17:56:20 +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
yxj
bea20face3 rk2928 lcdc:fix bug in win1_set_par 2013-04-10 16:31:27 +08:00
yxj
ae45583684 edp anx:create debug node under dir debug/edp/ 2013-04-10 16:31:27 +08:00
yxj
4469e01255 mfd:rk616:create debug node rk616-reg under dir debugfs/rk616/ 2013-04-10 16:31:27 +08:00
ddl
dc821c04f3 camera(v0.4.1): cif:v0.4.1 generic_sensor:v0.1.0 rk_camera:v0.1.0 2013-04-10 16:27:20 +08:00
yxj
2657d433ee mfd:rk616:add clk common init,add debug interface 2013-04-10 12:23:19 +08:00
黄涛
16c8142b0b remove kxtf9 gsensor driver for GPL v3 licence 2013-04-10 11:20:41 +08:00
CMY
091fd568b4 support broadcom AP6x serials BT 2013-04-09 18:55:09 +08:00
黄涛
eccdc1ebf0 rk3188: clock: print dpll/cpll con2 when boot 2013-04-09 18:23:59 +08:00
yxj
c2020ab7d6 rk616:add more control register defination 2013-04-08 14:31:21 +08:00