Hello all
The Software problem has been found as UDEV problem.
UDEV made the devices in /dev directory have the same minor device ID, While the devices in the sysfs /sys had the right minor numbering.
I found it out by running two commands that should give me the same results.
ls -l /dev/mmcblk*
and
lsblk
The lsblk read the minor device driver number from the sysfs while the ls read it directly from the /dev made by the UDEV.
the UDEV mismatched the numbers. I think that it is something with the caching script.
I found out in the Yocto sources there are two Bitbake scripts for UDEV.
I found out that in the Bitbake recipe I use it only compile the regular UDEV and with out the "udev-extraconf". I use the frame buffer graphical back end. Unlike the X11 graphical back end recipe the add the "udev-extraconf".
I have added the "udev-extraconf" to my recipe and it solved the problem.
I am not really sure why it worked.
For now, I think that the "udev-extraconf" have same workarounds in scripts for known bugs in the UDEV.