This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM6437 HPI interface

I'm trying to bring up a DM6437 via the Host Port Interface, accessed from our main processor. I've been able to configure the interface (ie read/write the HPI control register and read the HPI PID register), but when I write or read any other addresses (either registers or ram) I can't access anything.

However - if I connect via CCS, then disconnect, then try to access other addresses - it works with no problems. From this I assume that CCS, and the gel file in partcular, is setting something up that I'm not doing in my software.

There seem to be numerous references to setting up the HPI spread across numerous documents - SPRAAG0D seems to contain the most but it seems to be mixed up with all sorts of other information. Presumably this is a  reasonably straightforward task. Is there any example code anywhere that does the job, or any pointers to where I should be looking?

  • Andy Heaton said:
    However - if I connect via CCS, then disconnect, then try to access other addresses - it works with no problems. From this I assume that CCS, and the gel file in partcular, is setting something up that I'm not doing in my software.

    This would make sense, at least for external memory, but you should be able to access internal memory and registers without running the GEL file initialization. On the other hand there is some HPI specific initialization covered in chapter 2.9 of SPRU998d, in particular the power up of the I/O pins through VDD3P3V_PWDN is not mentioned in the HPI documentation, though if this was not done I am not sure you would ever be able to read anything back from the HPI, so I am not sure this could be the problem.

    You may also want to check for any power and sleep controller settings that need to be activated, by default most peripherals on the DM6437 are turned off so register accesses would fail until powered up (something the GEL will do). There are details on the power and sleep controller within chapter 6 of SPRU978e.

    Andy Heaton said:
    Is there any example code anywhere that does the job, or any pointers to where I should be looking?

    I don't believe there are any specific examples to booting through the HPI for the DM6437, as this is typically host processor centric code, and unique to a given system.

  • Make sure bit 7 of HPIC is 0.

  • Ah - it does look like I was trying to read from something powered down. If I read the PSC PID register I get the value expected, so things are obviously working. Thanks.

    HPIC is set to 0x4. SPRU998 shows bit 7 as reserved. What does it do?

  • Sounds like you're on the right track with PSC...

    Note that the description says the bit should always be written as 0.  I believe it's a reset bit for the HPI, so if it's 1 then the HPI won't work.  When you use the HPI boot mode I believe that bit gets cleared automatically.  I've seen issues with other customers where they were booting the device by some other means (e.g. NOR boot) and wanted the HPI to access the DSP, but could not do so because the DSP had never cleared that bit to 0.