nand-flash-writer & clone of BeagleBoneBlack

Hi,

We just received our first prototype of a clone from the BeagleBoneBlack.
For the moment it print CCCCCCCCCCCCCCCCC…

I tried to put a SDCard ( working on the official BeagleBone black ) but nothing happen on the boot, I still have the CCCCCCCC …

Do I need to do something before ? Like using the nand-flash-writer from TI ?

Micka,

What do you have your boot order set to?

Gerald

Sorry, we finally found what was wrong, the SD support was not correctly connected … .

Now, we have this message on the UART 1:

U-Boot SPL 2013.10-00016-g6adb529 (Feb 06 2014 - 14:54:24)
Incorrect magic number (0xffffffff) in EEPROM
Could not get board ID.
Incorrect magic number (0xffffffff) in EEPROM
Could not get board ID.
Unknown board, cannot configure pinmux.### ERROR ### Please RESET the board ###

I’m going to search how to write to the EEPROM …

most of thread that I saw, use the U-Boot to write in the EEPROM … but from what I can see, the UBOOT stop working after :

U-Boot SPL 2013.10-00016-g6adb529 (Feb 06 2014 - 14:54:24)
Incorrect magic number (0xffffffff) in EEPROM
Could not get board ID.
Incorrect magic number (0xffffffff) in EEPROM
Could not get board ID.
Unknown board, cannot configure pinmux.### ERROR ### Please RESET the board ###

So how much of a clone is it?

100%?

DDR3?
TPS?

eMMC/microSD?

Regards,

It’s almost a 100% clone, expect that we removed the eMMC. Normally this shouldn’t be a problem Because I’ve disabled the eMMC in a config file.

so far :
UART 1 working,
user led working,
I2C 0 working ( because i’m able to read the EEPROM with Code Composer studio + BoardInfoRead function in the eeprom.c

Thx,

Micka.

https://github.com/RobertCNelson/Bootloader-Builder/blob/master/patches/v2015.04/0002-NFM-Production-eeprom-assume-device-is-BeagleBone-Bl.patch

Regards,

Thx for the answer.

Now the boot work as I wanted. And Linux boot without problem … . For the moment, the only thing that I can’t make it work is the Ethernet … :’( … . For some reason, it doesn’t work and no led switch on :

[ 40.459276] net eth0: initializing cpsw version 1.12 (0)
[ 40.463124] net eth0: phy found : id is : 0x7c0f1
[ 40.463154] libphy: PHY 4a101000.mdio:01 not found
[ 40.474550] net eth0: phy 4a101000.mdio:01 not found on slave 1
[ 40.495647] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

It was the same result with the starterware etherecho example.

time to put the scope !

Hi Robert Nelson,

I’m trying to use this u-boot on an other Debian Image. But I couldn’t find the NTFS partition, there is only the rootfs partition. ( I don’t have emmc on my board, so i can’t use the bootloader from the emmc ).

Could u tell me which image should I take ? kernel 3.8 or 4.1 ? The kernel 4.1 looks interesting, is it stable enough ? ( I don’t need the cape manager ).

Thx for the answer,

Hi Robert Nelson,

I'm trying to use this u-boot on an other Debian Image. But I couldn't find
the NTFS partition, there is only the rootfs partition. ( I don't have emmc
on my board, so i can't use the bootloader from the emmc ).

only the "lxde/lxqt" images for beagleboard.org have the 100Mb fat
partition. With our patches, u-boot will load from ext4/rootfs..

Could u tell me which image should I take ? kernel 3.8 or 4.1 ? The kernel
4.1 looks interesting, is it stable enough ? ( I don't need the cape manager
).

i'd use 4.1.0-rcX..

I'm pretty close to dropping 3.8.x completely..

My plan:

follow v4.1.x, cut a stable branch, then follow v4.2.x very closely
(some of v4.1.x's capemgr should it v4.2.x)..

Then with v4.2.x, I will have 3 variants, normal, rt, xenomai...

Regards,

Ok for the kernel 4.1.x,

I’ve installed the image bone-debian-8.0-console-armhf-2015-05-08-2gb.img.xz .

And I’m planning to update the kernel to the version 4.1.x that I will compile by following your instruction on the website.

but for the moment, i’m trying to figure out where is the u-boot.img file ? the folder /media/rootfs/boot/uboot is empty !

Micka,

It's in the master boot record.

Regards,

Those command then :

sudo dd ``if``=./u-boot/MLO of=${DISK} count=``1 seek=``1 bs=128k
sudo dd ``if``=./u-boot/u-boot.img of=${DISK} count=``2 seek=``1 bs=384k

thx,

Ok, that works, the BBB clone boot.

I would like to add devices on the BBB, but i don’t think that using the capemanager would be a great idea ( i saw the capemanager in the device tree from the kernel 4.1 source file : am335x-bone-common.dtsi )

  • I would like to know how to avoid using the capemanager ? I prefer that it’s disabled.
  • How can you add a file to the description of your beagle ? By example, I’ve a RTC mcp7941x. I modified the am335x-cape-rtc-ds-1307.dtsi file . If I’m not wrong this file is used by the capemanager ? How can I include it in the am335x-boneblack.dts file ?

I would like to test #include “am335x-cape-rtc-ds-1307.dtsi” ?

Thx,

Why would I like to avoid the capemanager ? Because I 've have not enough slot to put all my configurations ( RTC, sensors, converter, uart , … )

Ok, that works, the BBB clone boot.

I would like to add devices on the BBB, but i don't think that using the
capemanager would be a great idea ( i saw the capemanager in the device tree
from the kernel 4.1 source file : am335x-bone-common.dtsi )

- I would like to know how to avoid using the capemanager ? I prefer that
it's disabled.

I have a coupe capes that use those pins as can0, so i had to setup
something for this too..

Swap:

#include "am335x-bone-common.dtsi"

For

#include "am335x-bone-common-no-capemgr.dtsi"

- How can you add a file to the description of your beagle ? By example,
I've a RTC mcp7941x. I modified the am335x-cape-rtc-ds-1307.dtsi file . If
I'm not wrong this file is used by the capemanager ? How can I include it in
the am335x-boneblack.dts file ?

I would like to test #include "am335x-cape-rtc-ds-1307.dtsi" ?

Correct!

Regard,

Ok,

Because I’ve many devices on the I2C, I decided to make one dtsi file:

The pinmux part :

&am33xx_pinmux {

i2c2_pins: pinmux_i2c2_pins {

pinctrl-single,pins = <

BONE_P9_20 0x73 /* (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE3) uart1_ctsn.i2c2_sda */

BONE_P9_19 0x73 /* (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE3) uart1_rtsn.i2c2_scl */

;

};

bone_audio_cape_audio_pins: pinmux_bone_audio_cape_audio_pins {

pinctrl-single,pins = <

0x1ac 0x00 /* mcasp0_ahclkx, MODE0 | INPUT */

0x19c 0x22 /* mcasp0_ahclkr, */

0x194 0x20 /* mcasp0_fsx, MODE0 | OUTPUT */

0x190 0x20 /* mcasp0_aclkr.mcasp0_aclkx, MODE0 | OUTPUT_PULLDOWN */

;

};

};

The I2C2 part :

&i2c2 {

pinctrl-names = “default”;

pinctrl-0 = <&i2c2_pins>;

status = “okay”;

clock-frequency = <100000>;

rtc@68 {

compatible = “ignored,mcp7941x”;

reg = <0x68>;

status = “okay”;

};

tlv320aic3x@18 {

compatible = “ti,tlv320aic3x”;

reg = <0x18>;

status = “okay”;

};

};

But I’ve difficulty to include the audio part :
In the cap file I’ve :

fragment@2 {
target = <&mcasp0>;
overlay {
pinctrl-names = “default”;
pinctrl-0 = <&bone_audio_cape_audio_pins>;

status = “okay”;

op-mode = <0>; /* MCASP_IIS_MODE /
tdm-slots = <2>;
num-serializer = <16>;
serial-dir = < /
0: INACTIVE, 1: TX, 2: RX */
2 0 1 0
0 0 0 0
0 0 0 0
0 0 0 0

;
tx-num-evt = <1>;
rx-num-evt = <1>;
};
};
fragment@3 {
target = <&ocp>;
overlay {
sound {
compatible = “ti,da830-evm-audio”;
ti,model = “DA830 EVM”;
ti,audio-codec = <&tlv320aic3x>;
ti,mcasp-controller = <&mcasp0>;
ti,codec-clock-rate = <12000000>;
ti,audio-routing =
“Headphone Jack”, “HPLOUT”,
“Headphone Jack”, “HPROUT”,
“LINE1L”, “Line In”,
“LINE1R”, “Line In”;
};
};
};

Can I do that :

&mcasp0{

pinctrl-names = “default”;

pinctrl-0 = <&bone_audio_cape_audio_pins>;

status = “okay”;

op-mode = <0>; /* MCASP_IIS_MODE */

tdm-slots = <2>;

num-serializer = <16>;

serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */

2 0 1 0

0 0 0 0

0 0 0 0

0 0 0 0

;

tx-num-evt = <1>;

rx-num-evt = <1>;

}

&ocp{

sound {

compatible = “ti,da830-evm-audio”;

ti,model = “DA830 EVM”;

ti,audio-codec = <&tlv320aic3x>;

ti,mcasp-controller = <&mcasp0>;

ti,codec-clock-rate = <12000000>;

ti,audio-routing =

“Headphone Jack”, “HPLOUT”,

“Headphone Jack”, “HPROUT”,

“LINE1L”, “Line In”,

“LINE1R”, “Line In”;

};

}

I have also to find the driver (or code it) for:

Micka,

ok, I figure out where things should be by looking at some example.

But, I can’t understand why I’m getting this error :
ERROR (phandle_references): Reference to non-existent node or label “tlv320aic3x”

normally this node is declared in the i2c.dtsi file !

Any Idea ?

am335x-boneblack.dts (4.05 KB)

am335x-bone-common-no-capemgr.dtsi (9.89 KB)

i2c.dtsi (1.76 KB)

The answer was using tlv320aic3x: tlv320aic3x@18, instead of tlv320aic3x@18

Great !