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.

OMAP3 EVM board, Ethernet MAC and Flash Partitions / NAND support

I just tested the OMAP3 EVM board with 2.6.33 and uboot 2010-03 rc2.

My observations:

- the MAC address in uboot is not handover properly to LINUX. While bootprocess it gets a completly different MAC, don't know where from. Can someone explain me a proper way to handover this (maybe as commandline parameter?)

- uboot configs doesn't contain settings for NAND (instead of ONENAND).

- In Linux there are no partitions prepared in flash as it has been before

 

 

  • I have seen it too.

    i wasn't able to pass the MAC address to kernel. you could set it while in kernel. another way that I have seen was to use 'ping' in u-boot (which configures the MAC address correctly). the problem is that in the end of the ping, a soft-reset occurs, so you need to disable it in the code.

    There should be a cmdline parameter, but it didn't work for me.

    Regarding the partitions - for some reason it's not implemented in the file board-omap3evm.c, but there is a patch in the PSPwhich make it work.

    there is also a U-boot patch in the PSP that replaces the ONENAND with NAND.

     

    Jose.

  • Thanks Jose.

    Best would be a commandline parameter. Others is a hack - I used in previous versions already. But now I do have a MAC, but a wrong one!

    Right now, I don't know how to read commandline parameters  and to set the MAC properly. Does someone knows? Hope one of the developers might help.

    About the patches - they should work only for a certain version of uboot/kernel - so it is unlikely working in a recent version, isn't it? I don't understand why this code is out of main tree now. It is easy to adjust the config file to use NAND or ONENAND - this is what I expect it works. In general I don't want to patch uboot and kernel ...

  • In past u-boots I have worked on, the Ethernet driver in u-boot would read the MAC address and compare the the 'ethaddr' environment variable.  It would print a warning if they were not the same.  I gues this driver doesn't, but I haven't looked at it in detail.  The MAC address printed out when you boot the Linux kernel is the correct MAC that the Linux driver reads.  What I would do is boot the kernel, write down the MAC address, then reboot and setenv ethaddr to that same address in u-boot and saveenv.

    Steve K.

  • Arno Steffens said:

    Thanks Jose.

    Best would be a commandline parameter. Others is a hack - I used in previous versions already. But now I do have a MAC, but a wrong one!

    Right now, I don't know how to read commandline parameters  and to set the MAC properly. Does someone knows? Hope one of the developers might help.

    About the patches - they should work only for a certain version of uboot/kernel - so it is unlikely working in a recent version, isn't it? I don't understand why this code is out of main tree now. It is easy to adjust the config file to use NAND or ONENAND - this is what I expect it works. In general I don't want to patch uboot and kernel ...

     

     

    the command line parameter 'ethaddr' didn't work for me, but i didn't investigate it.

    about the patches: if you use PSP03.00.00.04 ( kernel 2.6.32) then it's not far from your current kernel.

    Anyway, the U-boot patch is very simple, so you could just read it and fix a few lines in the config file. the kernel patch worked for me, but it wasn't able to patch the first file out of five (i guess there were some changes in the file), but you can also read the relevant part and change the relevant few lines.

    I was wondering myself why these patches(the mtd partitions) are not in the main tree.

     

    Steve Kipisz said:

    In past u-boots I have worked on, the Ethernet driver in u-boot would read the MAC address and compare the the 'ethaddr' environment variable.  It would print a warning if they were not the same.  I gues this driver doesn't, but I haven't looked at it in detail.  The MAC address printed out when you boot the Linux kernel is the correct MAC that the Linux driver reads.  What I would do is boot the kernel, write down the MAC address, then reboot and setenv ethaddr to that same address in u-boot and saveenv.

    Steve K.

    I think that the MAC address printed by the kernel is garbage. it sometimes changes after a reset, and it is not the address written on the the board.. i think it reads something that is not initialized, because after i use "ping" in u-boot (and disabling the soft reset), it reads the right MAC address.

     

    Jose

  • Where can I find the PSP03.00.00.04 you refer to which is based on kernel 2.6.32? At http://www.ti.com/omapsoftwareupdates (mentioned in the GettingStarted.pdf), I only see OMAP35x-PSP-SDK-setuplinux-02.01.03.11.bin, which is the same one I already have and is based on 2.6.29-rc3.  I would like to find these patches to get flash working on a 2.6.32 kernel.

  • You probalby have found it,. as posted last hours in a different thread:

    http://software-dl.ti.com/dsps/dsps_public_sw/psp/omap3_00/03_00_00_04/index_FDS.html

     

    I could manage almost all for the 33 kernel, with 2 exceptions:

    JFFS2: Although I copied/adopted a lot from the beagleboard (which contains jffs2 partitions) I get tons of messages while booting from flash.

    uncorrectable error :
    mtd->read(0x6ad bytes from 0x2226fc) returned ECC error
    but after some minutes it is mounted. After access to fs I get again error messages but in general it works. Does someone know, what is misconfigured? The JFFS2 is the same as with my older 28 kernel, so it is not corrupted.

    The other is
    PID HASH order -1?! in kernel boot log. To be honest, I have no idea what it is mean, but before it was order 9 or around. -1 sounds to be a failure.
    ID hash table entries: 512 (order: -1, 2048 bytes)