OSD3358-SM-RED ethernet not working


I follow this page to rebuild a custom system :

But the Ethernet does not work.

I also try to build a system with buildroot, using latest kernel (5.1.5) from mainline with u-boot configured to load the osd3358-bsm-refdesign.dtb.
Phy is correctly initialized, and RJ45 cable correctly detected, but it seem that mac send Tx frame but nether receive nothing.

As default image is working well, I suppose that there is a patch or specific configuration for this board, but impossible to find clear documentation on it.

Does someone as a way to rebuild a image from source for the OSD3358-SM-RED board with ethernet port working ?


System info following :
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2019.04-dirty]:[location: dd MBR]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade ]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal i2c netdev gpio pwm eqep bluetooth admin spi tisdk weston-launch xenomai cloud9ide]
cmdline:[console=ttyO0,115200n8 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait]
dmesg | grep pinctrl-single
[ 0.471698] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper

Sadly my board is in the lab, so i can’t take a look at this till Monday.

Does the v4.19.x-ti branch work better?


I found the solution :
By default the OSD3358-SM-RED board is detected by uboot as a BeagleBone Black and uboot load the /boot/dtbs/4.19.50-bone35/am335x-boneblack.dtb

I just should edit the uEnv.txt and add :
dtb=am335x-osd3358-sm-red.dtb :

I saw that the kernel generation use specific scripts to patch it and build it.
Could this be doing by buildroot ?
It will be very interesting.


Ah good catch, and looking at your 2nd post:

Your eeprom is wrong:


It should be:

Octavo Systems OSD3358-SM-RED:
   0: [aa 55 33 ee 41 33 33 35  42 4e 4c 54 4F 53 30 30 |.U3.A335BNLTOS00|]

I’ve just pushed that eeprom to repo:

You can get that file by:

cd /opt/scripts/
git pull

Next to udpate your eeprom, we need to GND the WP. (Short J1)…


sudo dd if=/opt/scripts/device/bone/osd3358-sm-red-eeprom.dump of=/sys/devices/platform/ocp/44e0b000.i2c/i2c-0/0-0050/eeprom


You are right. Thanks for the instruction.
Why the OSD3358-SM-RED eeprom could not be correctly written in production ? This is all the time or a mistake on my production batch ?

I followed your instruction, but first i had to add the eeprom in device tree.

eeprom declaration seem to be mising on some board :

grep -i -n -r "eeprom" am335x-*.dts
am335x-base0033.dts:91:	eeprom: eeprom@50 {
am335x-boneblue.dts:558:	baseboard_eeprom: baseboard_eeprom@50 {
am335x-cm-t335.dts:353:	/* CM-T335 board EEPROM */
am335x-cm-t335.dts:354:	eeprom: 24c02@50 {
am335x-moxa-uc-8100-me-t.dts:270:	eeprom: eeprom@50 {
am335x-nano.dts:226:	eeprom@53 {
am335x-pdu001.dts:292:	m2_eeprom: m2_eeprom@50 {
am335x-pepper.dts:69:	eeprom: eeprom@50 {
am335x-phycore-rdk.dts:16:&i2c_eeprom {
am335x-pocketbeagle.dts:996:	eeprom: eeprom@50 {
am335x-sl50.dts:468:	eeprom: eeprom@50 {
am335x-wega-rdk.dts:16:&i2c_eeprom {

Add eeprom in bb-kernel/KERNEL/arch/arm/boot/dts/am335x-osd3358-sm-red.dts :

&i2c0 {
	eeprom: eeprom@50 {
		compatible = "atmel,24c256";
		reg = <0x50>;
	tda19988: hdmi-encoder@70 {

Rebuild the linux kernel :

cd bb-kernel/

Edit the build_kernel.sh to unset FULL_REBUILD var




Copy the updated dtb to uSD :

cp bb-kernel/KERNEL/arch/arm/boot/dts/am335x-osd3358-sm-red.dtb /media/${DISK}/rootfs/boot/dtbs/4.19.50-bone35/

Boot the board.
Follow the RobertCNelson

Now the board is correctly detected by uboot :

Board: BeagleBone Black
Model: Octavo Systems OSD3358-SM-RED