aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ntb
diff options
context:
space:
mode:
authorJon Mason <jon.mason@intel.com>2013-11-01 18:08:19 -0400
committerJon Mason <jon.mason@intel.com>2013-11-20 11:57:33 -0500
commit58b889206ea4ba75a57986e223da647f91ba1a19 (patch)
tree82c7010bc3f2bf9258a97efa631768ed15a55d6d /drivers/ntb
parentdcf81964e129da6140ff98a1a772044c62a7aa2e (diff)
NTB: Document HW errata
Add a comment describing the necessary ordering of modifications to the NTB Limit and Base registers. Signed-off-by: Jon Mason <jon.mason@intel.com>
Diffstat (limited to 'drivers/ntb')
-rw-r--r--drivers/ntb/ntb_hw.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/ntb/ntb_hw.c b/drivers/ntb/ntb_hw.c
index fa97948e66ad..391c377a5d38 100644
--- a/drivers/ntb/ntb_hw.c
+++ b/drivers/ntb/ntb_hw.c
@@ -689,6 +689,12 @@ static int ntb_xeon_setup(struct ntb_device *ndev)
689 */ 689 */
690 writeq(ndev->mw[1].bar_sz + 0x1000, ndev->reg_base + 690 writeq(ndev->mw[1].bar_sz + 0x1000, ndev->reg_base +
691 SNB_PBAR4LMT_OFFSET); 691 SNB_PBAR4LMT_OFFSET);
692 /* HW errata on the Limit registers. They can only be
693 * written when the base register is 4GB aligned and
694 * < 32bit. This should already be the case based on the
695 * driver defaults, but write the Limit registers first
696 * just in case.
697 */
692 } else { 698 } else {
693 ndev->limits.max_mw = SNB_MAX_MW; 699 ndev->limits.max_mw = SNB_MAX_MW;
694 700
@@ -707,6 +713,12 @@ static int ntb_xeon_setup(struct ntb_device *ndev)
707 * something silly 713 * something silly
708 */ 714 */
709 writeq(0, ndev->reg_base + SNB_PBAR4LMT_OFFSET); 715 writeq(0, ndev->reg_base + SNB_PBAR4LMT_OFFSET);
716 /* HW errata on the Limit registers. They can only be
717 * written when the base register is 4GB aligned and
718 * < 32bit. This should already be the case based on the
719 * driver defaults, but write the Limit registers first
720 * just in case.
721 */
710 } 722 }
711 723
712 /* The Xeon errata workaround requires setting SBAR Base 724 /* The Xeon errata workaround requires setting SBAR Base