summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan Rossi <nathan.rossi@xilinx.com>2013-06-13 12:40:41 +1000
committerNathan Rossi <nathan.rossi@xilinx.com>2013-06-19 14:26:09 +1000
commitb065f091f10060f2bb68b58f1d618e26a966fee2 (patch)
tree04da5998936695c176cc63024973b7dea3544c18
parentea421c57de200dc6b02e1ad025186d32b8f72ad0 (diff)
downloadmeta-xilinx-b065f091f10060f2bb68b58f1d618e26a966fee2.tar.gz
qemu: Added patches for Zynq work-arounds
Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com>
-rw-r--r--recipes-devtools/qemu/files/HACK_target-arm_Harcode_the_SCU_offset.patch22
-rw-r--r--recipes-devtools/qemu/files/HACK_zynq_slcr_Bring_SLCR_out_of_reset_in_kernel_state.patch48
-rw-r--r--recipes-devtools/qemu/qemu_1.5.0.bbappend2
3 files changed, 72 insertions, 0 deletions
diff --git a/recipes-devtools/qemu/files/HACK_target-arm_Harcode_the_SCU_offset.patch b/recipes-devtools/qemu/files/HACK_target-arm_Harcode_the_SCU_offset.patch
new file mode 100644
index 00000000..68c8dfaa
--- /dev/null
+++ b/recipes-devtools/qemu/files/HACK_target-arm_Harcode_the_SCU_offset.patch
@@ -0,0 +1,22 @@
1From: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
2Date: Fri, 15 Feb 2013 07:08:24 +0000
3Subject: HACK: target-arm: Harcode the SCU offset
4
5Becuase the QOM framework to drive this from a property isnt there yet.
6
7Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
8---
9diff --git a/target-arm/cpu.c b/target-arm/cpu.c
10index 496a59f..705688b 100644
11--- a/target-arm/cpu.c
12+++ b/target-arm/cpu.c
13@@ -531,7 +531,7 @@ static void cortex_a9_initfn(Object *obj)
14 {
15 ARMCPRegInfo cbar = {
16 .name = "CBAR", .cp = 15, .crn = 15, .crm = 0, .opc1 = 4,
17- .opc2 = 0, .access = PL1_R|PL3_W, .resetvalue = cpu->reset_cbar,
18+ .opc2 = 0, .access = PL1_R|PL3_W, .resetvalue = 0xf8f00000,
19 .fieldoffset = offsetof(CPUARMState, cp15.c15_config_base_address)
20 };
21 define_one_arm_cp_reg(cpu, &cbar);
22--
diff --git a/recipes-devtools/qemu/files/HACK_zynq_slcr_Bring_SLCR_out_of_reset_in_kernel_state.patch b/recipes-devtools/qemu/files/HACK_zynq_slcr_Bring_SLCR_out_of_reset_in_kernel_state.patch
new file mode 100644
index 00000000..527422b5
--- /dev/null
+++ b/recipes-devtools/qemu/files/HACK_zynq_slcr_Bring_SLCR_out_of_reset_in_kernel_state.patch
@@ -0,0 +1,48 @@
1From: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
2Date: Wed, 27 Mar 2013 02:00:09 +0000
3Subject: HACK: zynq_slcr: Bring SLCR out of reset in kernel state
4
5Reset the zynq_slcr into something more closely resembling the post
6FSBL handoff state. Needed to keep the Linux clock framework happy.
7
8I can only apply this patch (in its current form), to the workarounds
9branch but I am RFCing it, as if there are any other things I should
10be changing, let me know! I'll factor them into a real solution.
11
12Cc: sorenb@xilinx.com
13Cc: michal.simek@xilinx.com
14Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
15---
16diff --git a/hw/misc/zynq_slcr.c b/hw/misc/zynq_slcr.c
17index 872ba3f..8f3e614 100644
18--- a/hw/misc/zynq_slcr.c
19+++ b/hw/misc/zynq_slcr.c
20@@ -243,19 +243,19 @@ static void zynq_slcr_reset(DeviceState *d)
21
22 s->lockval = 1;
23 /* 0x100 - 0x11C */
24- s->pll[ARM_PLL_CTRL] = 0x0001A008;
25- s->pll[DDR_PLL_CTRL] = 0x0001A008;
26- s->pll[IO_PLL_CTRL] = 0x0001A008;
27+ s->pll[ARM_PLL_CTRL] = 0x00028008;
28+ s->pll[DDR_PLL_CTRL] = 0x00020008;
29+ s->pll[IO_PLL_CTRL] = 0x0001e008;
30 s->pll[PLL_STATUS] = 0x0000003F;
31- s->pll[ARM_PPL_CFG] = 0x00014000;
32- s->pll[DDR_PLL_CFG] = 0x00014000;
33- s->pll[IO_PLL_CFG] = 0x00014000;
34+ s->pll[ARM_PPL_CFG] = 0x000fa220;
35+ s->pll[DDR_PLL_CFG] = 0x0012c220;
36+ s->pll[IO_PLL_CFG] = 0x001452c0;
37
38 /* 0x120 - 0x16C */
39- s->clk[ARM_CLK_CTRL] = 0x1F000400;
40+ s->clk[ARM_CLK_CTRL] = 0x1F000200;
41 s->clk[DDR_CLK_CTRL] = 0x18400003;
42 s->clk[DCI_CLK_CTRL] = 0x01E03201;
43- s->clk[APER_CLK_CTRL] = 0x01FFCCCD;
44+ s->clk[APER_CLK_CTRL] = 0x01ed044d;
45 s->clk[USB0_CLK_CTRL] = s->clk[USB1_CLK_CTRL] = 0x00101941;
46 s->clk[GEM0_RCLK_CTRL] = s->clk[GEM1_RCLK_CTRL] = 0x00000001;
47 s->clk[GEM0_CLK_CTRL] = s->clk[GEM1_CLK_CTRL] = 0x00003C01;
48--
diff --git a/recipes-devtools/qemu/qemu_1.5.0.bbappend b/recipes-devtools/qemu/qemu_1.5.0.bbappend
index 28c67341..584c2540 100644
--- a/recipes-devtools/qemu/qemu_1.5.0.bbappend
+++ b/recipes-devtools/qemu/qemu_1.5.0.bbappend
@@ -3,4 +3,6 @@ QEMU_TARGETS += "microblazeel"
3FILESEXTRAPATHS_append := "${THISDIR}/files:" 3FILESEXTRAPATHS_append := "${THISDIR}/files:"
4SRC_URI_append += " \ 4SRC_URI_append += " \
5 file://microblaze-Add-support-for-loading-initrd-images.patch \ 5 file://microblaze-Add-support-for-loading-initrd-images.patch \
6 file://HACK_target-arm_Harcode_the_SCU_offset.patch \
7 file://HACK_zynq_slcr_Bring_SLCR_out_of_reset_in_kernel_state.patch \
6 " 8 "