diff options
author | Jon Mason <jon.mason@intel.com> | 2013-11-01 18:08:19 -0400 |
---|---|---|
committer | Jon Mason <jon.mason@intel.com> | 2013-11-20 11:57:33 -0500 |
commit | 58b889206ea4ba75a57986e223da647f91ba1a19 (patch) | |
tree | 82c7010bc3f2bf9258a97efa631768ed15a55d6d /drivers/ntb | |
parent | dcf81964e129da6140ff98a1a772044c62a7aa2e (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.c | 12 |
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 |