diff options
-rw-r--r-- | SITE1/HBI0249A/board.txt | 2 | ||||
-rw-r--r-- | SITE1/HBI0249A/dbb_v107.ebf | bin | 29012 -> 0 bytes | |||
-rw-r--r-- | SITE1/HBI0249A/dbb_v110.ebf | bin | 0 -> 31284 bytes | |||
-rw-r--r-- | SITE1/HBI0249A/images.txt | 2 | ||||
-rw-r--r-- | SOFTWARE/bm_v519r.axf (renamed from SOFTWARE/bm_v517r.axf) | bin | 197828 -> 199000 bytes | |||
-rw-r--r-- | readme.txt | 161 |
6 files changed, 163 insertions, 2 deletions
diff --git a/SITE1/HBI0249A/board.txt b/SITE1/HBI0249A/board.txt index ae53571..48e17f2 100644 --- a/SITE1/HBI0249A/board.txt +++ b/SITE1/HBI0249A/board.txt @@ -3,7 +3,7 @@ TITLE: V2P-CA15_A7 Configuration File [DCCS]
TOTALDCCS: 1 ;Total Number of DCCS
-M0FILE: dbb_v107.ebf ;DCC0 Filename
+M0FILE: dbb_v110.ebf ;DCC0 Filename
M0MODE: MICRO ;DCC0 Programming Mode
[FPGAS]
diff --git a/SITE1/HBI0249A/dbb_v107.ebf b/SITE1/HBI0249A/dbb_v107.ebf Binary files differdeleted file mode 100644 index f26716b..0000000 --- a/SITE1/HBI0249A/dbb_v107.ebf +++ /dev/null diff --git a/SITE1/HBI0249A/dbb_v110.ebf b/SITE1/HBI0249A/dbb_v110.ebf Binary files differnew file mode 100644 index 0000000..0635c9a --- /dev/null +++ b/SITE1/HBI0249A/dbb_v110.ebf diff --git a/SITE1/HBI0249A/images.txt b/SITE1/HBI0249A/images.txt index e9da24e..d03cf9f 100644 --- a/SITE1/HBI0249A/images.txt +++ b/SITE1/HBI0249A/images.txt @@ -5,7 +5,7 @@ TOTALIMAGES: 4 ;Number of Images (Max: 32) NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR0ADDRESS: BOOT ;Image Flash Address
-NOR0FILE: \SOFTWARE\bm_v517r.axf ;Image File Name
+NOR0FILE: \SOFTWARE\bm_v519r.axf ;Image File Name
NOR1UPDATE: AUTO ;IMAGE UPDATE:NONE/AUTO/FORCE
NOR1ADDRESS: 00000000 ;Image Flash Address
diff --git a/SOFTWARE/bm_v517r.axf b/SOFTWARE/bm_v519r.axf Binary files differindex f9f1fde..8956ab1 100644 --- a/SOFTWARE/bm_v517r.axf +++ b/SOFTWARE/bm_v519r.axf diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..9569a32 --- /dev/null +++ b/readme.txt @@ -0,0 +1,161 @@ +This patch to Versatile Express DVD version 5.0 provides +an updated Boot Monitor as well as updated DCC firmware +for the CoreTile Express A15x2 A7x3 (V2P-CA15-A7) processor +board. + +The updates are mandatory to be able to use the unified power +management support for the big.LITTLE MP & CPU migration mode +of operation in the Linaro Linux kernel. These changes will be +introduced in version 13.01 of the kernel. + +The patch contains the following files: + +bm_v519r.axf - Boot Monitor +dbb_v110.ebf - DCC firmware +readme.txt - the text file you are reading now + +------------ +DCC Firmware +------------ + +This release of the DCC firmware is not compatible with pre-13.01 +kernels (i.e. existing releases of the Linaro Linux kernel). +However, the previous version of the DCC firmware (dbb_v107.ebf) +and pre-13.01 releases of the kernel may be used with this release +of the Boot Monitor as mentioned below. + +------------ +Boot Monitor +------------ + +1. Compatibility with Linaro Linux kernel releases. + + Power management support for the TC2 coretile has been reworked for the + 13.01 kernel release. Broadly, this means that per-cpu mailbox registers + are used to a) bringup secondary cpus during smp bringup & b) implement + warm resets. Linux kernel releases prior to 13.01 used the sys_flags + registers (part of the versatile express motherboard memory map) to do + the same. + + The Bootmon firmware is compatible with both 13.01 and the releases + preceding it. Comptability with pre 13.01 Linaro Linux kernels is + referred to as 'backward compatibility'. The mode of operation of + bootmon can be configured by manipulating bit[12] in the SCC register + offset 0x700 (SCC System Information Register) in the board.txt file. + + a. bit[12]=1: Bootmon is compatible with the 13.01 release of the + Linaro linux kernel. It uses per-cpu mailboxes to + implement warm resets & for secondary cpu bringup. + + b. bit[12]=0: Bootmon is compatible with pre 13.01 releases of the + Linaro linux kernel. It uses sys_flags register to + implement warm resets for secondary cpu bringup. + + This bit should be set to 0 if power management support + has been disabled in the Linux kernel configuration. + + To summarize, the following combinations of the firmware and the + linux kernel are expected to be compatible: + + a. dbb_v107.ebf (dcc fw) + bm_v519r.axf (bootmon fw) + pre-13.01 + release of the Linaro linux kernel + board.txt which has bit[12] + of SCC register offset 0x700 unset. + + b. dbb_v110.ebf (dcc fw) + bm_v519r.axf (bootmon fw) + 13.01 release + of the Linaro linux kernel + board.txt which has bit[12] of SCC + register offset 0x700 set. + +2. Support for TC2 coretile event propagation errata + + The TC2 coretile has a bug in the implementation of the logic + that's responsible for delivering events (e.g. generated by the + 'sev' instruction) across the A15 and A7 clusters. Inter-cluster + events can be lost if the two clusters are operating at certain + OPP (operating point) combinations. This can cause a CPU to wait + for an event ('wfe' instruction) indefinitely e.g. while trying to + acquire a spin lock in the linux kernel. + + Bootmon can be configured to work around this issue. This is done + by generating a periodic event stream (every 32K cycles) on each CPU + to make up for any lost events. Configuration is done by manipulating + the following bits of the SCC register offset 0x700 (SCC System + information register) in the board.txt as follows: + + a. bit[14]=1: Each A15 cpu generates an event stream every 32K cycles. + + b. bit[14]=0: Event stream generation is not configured on the A15 cpus. + + c. bit[15]=1: Each A7 cpu generates an event stream every 32K cycles. + + f. bit[15]=0: Event stream generation is not configured on the A7 cpus. + + Setting both the bits in the SCC register is expected to provide a reliable + workaround of the errata. + +3. Support for powering down the non-boot cluster. + + To save power it might be desirable to keep the non-boot cluster powered + down till the operating system (Linux) does not explicitly bringup cpus + in that cluster either as a part of smp bringup or through a hotplug request. + + Bootmon can be configured to power down the non-boot cluster by manipulating + the SCC register offset 0x700 (SCC System information register) in the + board.txt as follows: + + a. bit[13]=1: Bootmon powers down the non-boot cluster. + + b. bit[13]=0: Bootmon does not power down the non-boot cluster. + + +------------ +Installation +------------ + +There is no automatic installation method for this patch. +To install the patch you must manually copy the files on +to the Micro-SD card of your Versatile Express motherboard, +and then update the relevant image.txt and board.txt files +so that they point to the updated firmware and Boot Monitor. + +Proceed as follows: + +1) copy bm_v519r.axf to the motherboard in this location: + + \SOFTWARE\bm_v519r.axf + + +2) copy dbb_v110.ebf to the motherboard in this location: + + \SITE1\HBI0249A\dbb_v110.ebf + + +3) edit the file on the motherboard: + + \SITE1\HBI0249A\board.txt + + to change the line: + + M0FILE: dbb_v107.ebf ;DCC0 Filename + + so that it becomes: + + M0FILE: dbb_v110.ebf ;DCC0 Filename + + +4) edit the file on the motherboard: + + \SITE1\HBI0249A\images.txt + + to change the line: + + NOR0FILE: \SOFTWARE\bm_v517r.axf ;Image File Name + + so that it becomes: + + NOR0FILE: \SOFTWARE\bm_v519r.axf ;Image File Name + + +It is possible that additional changes to these text +files will be needed - please see the instructions that +come with the Linaro kernel for details of any further +changes that are necessary. |