Results 1 to 10 of 10

Thread: prom location

  1. #1
    Join Date
    Jul 2001
    Posts
    657

    prom location

    using the picture with the numbered chip layout at:
    http://www.9thtee.com/insidetivo.htm

    ... There art 2 flash proms in the tivo. both 39vf010's, numbered 16 and 29.

    which is the boot prom?

  2. #2
    Join Date
    Jul 2001
    Posts
    657
    52 people looked at this thread and nobody knows which one is the boot prom??

    i've searched and seen posts where this seems to be a given. am i missing something? is this too stupid of a question to warrant an answer??


  3. #3
    Join Date
    Nov 2001
    Location
    halfway to paradise
    Posts
    13
    I don't know the answer, but if I were to bet on one of the two, I'd bet on #29.

    But there's one way to find out for sure, and you know it.
    This mind intentionally left blank--

  4. #4
    Join Date
    Jul 2001
    Posts
    657
    thanks, kazymyr

    last resort, eh? hehe.....

    ...sure is, i did, it was!

    i believe 16 is for the modem.

    thanks, bud




    btw, Welcome!! good to see ya!
    Last edited by Fugg; 11-07-2001 at 10:01 AM.

  5. #5
    Join Date
    Nov 2001
    Location
    halfway to paradise
    Posts
    13

    Wink

    Thanks. I've been lurking for a few months, then thought it was time I made a post.
    This mind intentionally left blank--

  6. #6
    Join Date
    Nov 2001
    Posts
    10
    Is this prom memory mapped? Did you find its location in memory?

    Sure would be nice to see what it does during bootup.


  7. #7
    Join Date
    Nov 2002
    Location
    Santa Clara (SF Bay area)
    Posts
    65

    prom location

    Originally posted by loveTivo
    Is this prom memory mapped? Did you find its location in memory?
    The boot prom appears to be at 0x1FC00000 on the series two's.

  8. #8
    Join Date
    May 2002
    Posts
    28
    Yup, #29 is the correct chip. I know, I have swapped a few out.

  9. #9
    Join Date
    Nov 2002
    Location
    Santa Clara (SF Bay area)
    Posts
    65

    Code to access flash:

    [BEGIN]/************************************************************************/
    /* PROCEDURE: ReadSoftwareID */
    /* */
    /* This procedure returns the software ID for the flash device */
    /* */
    /* Input: */
    /* pFlashAddr base address of flash device */
    /* */
    /* Output: */
    /* return software ID */
    /************************************************************************/

    static short ReadSoftwareID(BYTE* pFlashAddr)
    {
    short results;

    if (!pFlashAddr)
    return -1;

    // Software ID Entry
    pFlashAddr[0x5555] = 0xAA;
    msync((void*) &pFlashAddr[0x5555], 1, MS_SYNC);
    pFlashAddr[0x2AAA] = 0x55;
    msync((void*) &pFlashAddr[0x2AAA], 1, MS_SYNC);
    pFlashAddr[0x5555] = 0x90;
    msync((void*) &pFlashAddr[0x5555], 1, MS_SYNC);

    //NanoDelay(150); // 150 nanoSeconds

    // read Software ID
    results = *(short*) pFlashAddr;

    // Software ID Exit
    pFlashAddr[0x5555] = 0xAA;
    msync((void*) &pFlashAddr[0x5555], 1, MS_SYNC);
    pFlashAddr[0x2AAA] = 0x55;
    msync((void*) &pFlashAddr[0x2AAA], 1, MS_SYNC);
    pFlashAddr[0x5555] = 0xF0;
    msync((void*) &pFlashAddr[0x5555], 1, MS_SYNC);

    //NanoDelay(150); // 150 nanoSeconds

    return results;
    }

    int main (int argc, char *argv[])
    {
    int err = 0;
    size_t flash_len = 512 * 1024; // 512 KBytes
    off_t flash_addr = 0x1fc00000;

    printf("\n%8.8llX",flash_addr);

    int myFILE = open("/dev/mem",O_RDWR | O_SYNC);
    void* regionPtr = mmap(NULL, flash_len, PROT_READ|PROT_WRITE, MAP_SHARED, 4, flash_addr);
    close(myFILE);

    if ((void*) -1 == regionPtr)
    {
    fprintf(stderr,"\nmmap error.");
    return -1;
    }
    else
    {
    short softwareID = ReadSoftwareID(regionPtr);
    printf("\nSoftware ID: 0x%4.4X.", softwareID);


    #if 0 // set true to dump first page
    long index,offset;
    for (index = 0; index < 0x200; index += 16)
    {
    printf("\n%8.8lX:",index);
    for (offset = 0; offset < 16; offset++)
    {
    printf(" %2.2X",0xFF & ((char*)regionPtr)[index+offset]);
    }
    }
    #endif
    err = munmap((caddr_t) regionPtr, flash_len);
    if (err)
    {
    err = errno;
    fprintf(stderr, "\nmunmap error: %d",err);
    }
    }

    printf("\nMemDump - done!\n");

    return err;
    }

    [END]
    --
    Enjoy,
    George Warner,
    Schizophrenic Optimization Scientist
    Apple Developer Technical Support (DTS)
    Last edited by geowar; 06-16-2003 at 06:56 PM.

  10. #10
    Join Date
    Mar 2003
    Posts
    42

    Re: Prom Location

    I'll beg forgiveness now...


    But when I saw this thread title, I thought... the Prom is located at your local high school, and if you're missing yours, you need to sell your Tivo.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •