From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCHv4 0/3] drivers/ddr/altera: Add the DDR controller driver for SoCFPGA
Date: Wed, 22 Jul 2015 11:00:53 +0200 [thread overview]
Message-ID: <201507221100.53253.marex@denx.de> (raw)
In-Reply-To: <55AF53DE.7020003@opensource.altera.com>
On Wednesday, July 22, 2015 at 10:27:10 AM, Dinh Nguyen wrote:
> On 7/20/15 2:40 PM, Marek Vasut wrote:
> > On Monday, July 20, 2015 at 09:31:39 PM, Dinh Nguyen wrote:
> > [...]
> >
> >>>>> Hi,
> >>>>>
> >>>>> yeah, I have some insane amount of cleanup patches and fixes already.
> >>>>> I will post them once I'm done. What I am sorely missing is the
> >>>>> UniPHY register interface documentation, it looks like that is not
> >>>>> public, so I don't exactly know if what sequencer.c does is really
> >>>>> correct. Sometimes I have serious doubts about that too . Can you
> >>>>> give me the documentation please ?
> >>>>
> >>>> Have you seen this link[1]?
> >>>
> >>> Yes, but that is by far not all of the registers used in the
> >>> sequencer.c, is it ?
> >>
> >> Looks like it's in the entire emi.pdf file[1]. Please look at volume 3,
> >> or page 531 of 895. The section for the UniPHY.
> >
> > I extracted all the possible addresses used in the sequencer while
> > cleaning it up, they're below. I cannot find these in any documentation.
> > I checked the EMI RM, sure, but there seems to be many more registers
> > all around the place than what are described in the EMI RM. Any ideas
> > please ? Maybe this is not even the UniPHY anymore ?
>
> What I've been told was that the UniPHY was not really properly
> documented, and that when anyone needed to modify the registers, they
> would have to go back to the RTL to figure out exactly what's going on.
I guess you cannot provide me with the RTL, right ?
> So I've only been able to get the following information on the registers
> below:
>
> [Read/Write manager - this is a small accelerator that can be programmed
> with custom microcode to "play" sequences of commands to the memory
> interface at memory speeds]
This makes sense from what I saw in the code, yeah. Is there any documentation?
Thanks!
> [This register will execute a specific RW MGR command for a single DQS
> group]
> 9 #define RW_MGR_RUN_SINGLE_GROUP_OFFSET 0x0
> [This register will execute a specific RW MGR command for all DQS groups
> in the memory in parallel]
> 20 #define RW_MGR_RUN_ALL_GROUPS_OFFSET 0x0400
> [Resets the read datapath to clear out any corrupted data]
> 21 #define RW_MGR_RESET_READ_DATAPATH_OFFSET 0x1000
> [Configurable mask to specify which chip select should be asserted and
> what the value of ODT should be when CS is asserted]
> 22 #define RW_MGR_SET_CS_AND_ODT_MASK_OFFSET 0x1400
> [Write pointer into the instruction microcode rom]
> 23 #define RW_MGR_INST_ROM_WRITE_OFFSET 0x1800
> [Write pointer into the address ROM that is indexed via instruction
> microcode]
> 24 #define RW_MGR_AC_ROM_WRITE_OFFSET 0x1C00
>
> [The Scan-Chain Control manager is a piece of hardware that interfaces
> to the serial scan chain configuration bus of the PHY. It is used to
> program and modify delay values during calibration and sometimes during
> operation for things like DQS tracking]
> [which DQS group the SCC_MGR is talking to]
> 80 #define SCC_MGR_GROUP_COUNTER_OFFSET 0x0000
> [Offset for DQS input delay]
> 81 #define SCC_MGR_DQS_IN_DELAY_OFFSET 0x0100
> [Offset for DQS Enable Coarse input Phase register]
> 82 #define SCC_MGR_DQS_EN_PHASE_OFFSET 0x0200
> [Offset for DQS Enable Phase fine-grained delay]
> 83 #define SCC_MGR_DQS_EN_DELAY_OFFSET 0x0300
> [Offset for DQ/DQS coarse output phase register]
> 84 #define SCC_MGR_DQDQS_OUT_PHASE_OFFSET 0x0400
> [Offset for termination control delay setting register]
> 85 #define SCC_MGR_OCT_OUT1_DELAY_OFFSET 0x0500
> [Don't know]
> 86 #define SCC_MGR_IO_OUT1_DELAY_OFFSET 0x0700
> [Input delay register]
> 87 #define SCC_MGR_IO_IN_DELAY_OFFSET 0x0900
>
> [It seems these are added specifically for 28nm handshaking with HPS
> only. I'm strictly guessing here]
> [DQS enable gating delay register]
> 90 #define SCC_MGR_DQS_EN_DELAY_GATE_OFFSET 0x0600
> [Output enable timing register]
> 91 #define SCC_MGR_IO_OE_DELAY_OFFSET 0x0800
> [Not sure]
> 92 #define SCC_MGR_HHP_GLOBALS_OFFSET 0x0A00
> [Not sure]
> 93 #define SCC_MGR_HHP_RFILE_OFFSET 0x0B00
> [Probably a register to query whether or not the AFI bus is still in
> calibration mode or if the HPS has control]
> 94 #define SCC_MGR_AFI_CAL_INIT_OFFSET 0x0D00
> 95
>
>
> Dinh
Best regards,
Marek Vasut
next prev parent reply other threads:[~2015-07-22 9:00 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-03 3:52 [U-Boot] [PATCHv4 0/3] drivers/ddr/altera: Add the DDR controller driver for SoCFPGA dinguyen at opensource.altera.com
2015-06-03 3:52 ` [U-Boot] [PATCHv4 1/3] driver/ddr/altera: Add DDR driver for Altera's SDRAM controller dinguyen at opensource.altera.com
2015-06-09 11:55 ` Pavel Machek
2015-06-09 12:58 ` Wolfgang Denk
2015-06-09 15:51 ` Dinh Nguyen
2015-06-22 9:38 ` Chin Liang See
2015-06-22 10:56 ` Pavel Machek
2015-06-03 3:52 ` [U-Boot] [PATCHv4 2/3] driver/ddr/altera: Add the sdram calibration portion dinguyen at opensource.altera.com
2015-06-09 12:21 ` Pavel Machek
2015-06-03 3:52 ` [U-Boot] [PATCHv4 3/3] arm: socfpga: enable the Altera SDRAM controller driver dinguyen at opensource.altera.com
2015-06-09 12:25 ` Pavel Machek
2015-06-26 16:43 ` [U-Boot] [PATCHv4 0/3] drivers/ddr/altera: Add the DDR controller driver for SoCFPGA Marek Vasut
2015-06-26 20:01 ` Marek Vasut
2015-07-12 19:50 ` Marek Vasut
2015-07-17 19:58 ` Dinh Nguyen
2015-07-17 20:22 ` Marek Vasut
2015-07-18 23:51 ` Marek Vasut
2015-07-20 13:40 ` Dinh Nguyen
2015-07-20 18:36 ` Marek Vasut
2015-07-20 19:31 ` Dinh Nguyen
2015-07-20 19:40 ` Marek Vasut
2015-07-21 22:46 ` Dinh Nguyen
2015-07-22 3:24 ` Marek Vasut
2015-07-23 18:29 ` Dinh Nguyen
2015-07-24 3:57 ` Marek Vasut
2015-07-22 8:27 ` Dinh Nguyen
2015-07-22 9:00 ` Marek Vasut [this message]
2015-07-22 12:57 ` Dinh Nguyen
2015-07-22 13:01 ` Marek Vasut
2015-07-23 4:03 ` Dinh Nguyen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201507221100.53253.marex@denx.de \
--to=marex@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox