You’re welcome. Please let us know if you have any other queries.
Sounds good.
I understand your concern. Unfortunately, the U-Boot SPLs that are part of the newer BBB images don’t print anything on the UART console if EEPROM is empty.
THERE IS A WORKAROUND FOR THIS. Debian 7.5 (Old version of BBB Image) DOES print U-Boot error message if EEPROM is empty. You can download it from:
       Debian 7.5 (BeagleBone, BeagleBone Black – 2GB SD) 2014-05-14     Â
I tested this image on a board with empty EEPROM. I have attached a picture of the U-Boot error message on UART console. You should get the same thing when you use it on your board.
Hope this helps!
You’re welcome. Please let us know if you have any other queries.
Thank you for the clarification.
Readymade BBB Images will not throw anything on the Serial Debug interface if EEPROM is empty. It’ll be best if you could modify your existing BBB image to bypass EEPROM check.
See response #4733Â by Neeraj Dantu (part of same thread we’re currently discussing on) where he describes how to modify BBB image to bypass EEPROM check.
Please let us know if you have any other queries.
I’m glad the problem is solved. The buffer IC is not mandatory.
Out of curiosity, I would like to know what exactly caused the short. I went back and looked at your schematic again. Your labels are NOT wrong. When 2OE is pulled high and *1OE is pulled low, the buffer IC (SN74LVC2G241) passes data from 2A (UART0_TX) to 2Y (B_UART0_TX) and from 1A(B_UART0_RX) to 1Y(UART0_RX). The pin to signal mapping of the buffer also seems to be correct on schematic. I’ll be glad if you could elaborate a bit more.
It is my pleasure to help you. I believe the absence of buffer U5 is not the problem. We need to first find out if the processor is alive.
1. In the beginning of our discussion, you said “Power led,PMIC_LED_GOOD ,reset_signal all power voltage rails are working fine.” I’m not yet sure if you’ve already tested the voltages on the following test points (corresponding correct voltages are also given below):
VDDS_DDR: 1.5V
VDD_CORE: 1.1V
VDD_MPU: 1.1V
VDDS_PLL:Â 1.8V
By verifying the above voltages we can make sure that AM335x is receiving necessary voltages from PMIC during and after boot.
2. I believe you have already verified boot configuration resistors. Make sure all the resistors are properly populated and resistor values are correct.
3. If all the above two tests pass, use a JTAG cable and try to connect to AM335x using Code Composer Studio. OSD335x Bare Minimum Boot Process Article will help you setup Code Composer Studio and connect to OSD335x using a debugger.Â
If steps 1, 2 pass and JTAG test fails, I would strongly recommend getting a CRO and verifying if OSD335x is receiving proper clock input before debugging the hardware further.
After trying the above steps, I would also recommend going through AM335x Board Bring Up Tips Wiki.
Hello kd,
I didn’t find anything on the schematic that would interfere with UART0 operation. Boot configuration seems to be fine. I don’t think absence of 47pF caps are causing problems either.
We will need a little more information before we proceed further.
1. What is the voltage on the UART0_TX line at the input of buffer U8?
2. Did you actually try connecting UART0 pins to a Serial Client like Putty? Were you able to see any messages?
Hello Paul,
1. It is NOT possible to power this device with just 3.3V input. As given in section 7.1.3 of the OSD335x datasheet, the device will need a nominal input voltage of 3.7V if VIN_BAT input is used and 5V if VIN_AC or VIN_USB is used.
2. The OSD335x will require a falling edge on PMIC_IN_PB_IN (power button) to power up when powered only on battery (VIN_BAT). Once powered up, it is possible to keep the device always on by continuously supplying power through one of the three power inputs (VIN_AC, VIN_USB or VIN_BAT). The OSD335x has the capability to dynamically switch between VIN_AC, VIN_USB and VIN_BAT based on availability.
TI provides a guide on how to boot a bare metal application using the StarterWare boot loader (http://processors.wiki.ti.com/index.php/AM335X_StarterWare_Booting_And_Flashing). However, you can also run Bare Metal applications directly from on board eMMC or SD card of the RED board using U-Boot. To do so:
1. Locate the “.bin” file that was created as part of the build process for the bare metal application in CCS.
2. Boot the OSD3358-SM-RED board. You can either boot directly from the eMMC or you can create an SD Card with the latest image (https://octavosystems.com/files/osd3358-sm-red-linux-image/) and boot from that.
3. Load the “.bin” file of the application on to the eMMC/SD card of the OSD3358-SM-RED. You can use Cloud 9 or an FTP client like WinSCP or similar to transfer the file to the board. Note the location of the file.
4. Connect to the UART0 debug header of the OSD3358-SM-RED board (Jumper J3) using a USB to UART adapter and use a terminal program, like Putty, to communicate with the OSD3358-SM-RED. This will allow you to see the initial boot messages that are put on UART0.
5. Reboot the OSD3358-SM-RED board.
6. As soon as it reboots, you will start seeing U-Boot boot messages on the serial interface. Press “Space bar” to enter U-Boot command line interface.
7.
To load a program from on board eMMC:
>> load mmc 1:1 0x80000000 <path to your app’s .bin file>
>> go 0x80000000
For example,
>> load mmc 1:1 0x80000000 /home/debian/demoApp.bin
>> go 0x80000000
To load a program from SD Card:
>> load mmc 0:1 0x80000000 <path to your app’s .bin file>
>> go 0x80000000
8. This will start your application. If you want to automate this process on boot then you can update the u-boot environment settings to autoboot your application.
You can try this out with the demo applications provided by StarterWare. However, there are a couple of caveats:
1. Currently, the u-boot device tree on the OSD3358-SM-RED does not support Ethernet networking. We will be releasing an updated to fix that in the near future.
2. Depending on the u-boot configuration, the Watch Dog Timer may be enabled. You can make sure you understand the state of the Watch Dog Timer and set it appropriately for your application.
Hello Steve,
Certain registers on the AM335x can be altered only in Privilege mode / System mode. The init.asm file CCS loads by default sets the processor to User mode and that may be causing this error. We have provided a custom init.asm file and AM335x.cmd in OSD335x Bare Minimum Board Boot Process article to overcome this problem. Please make sure you have replaced the default initialization files with custom files.
Hello Steve,
We found few interesting links that talk about loading and running bare metal applications using U-Boot:
Guides:
https://www.cs.sfu.ca/CourseCentral/433/bfraser/other/BareMetalGuide.pdf
https://www.twosixlabs.com/running-a-baremetal-beaglebone-black-part-2/
Forum Posts:
https://e2e.ti.com/support/embedded/starterware/f/790/t/431403
https://groups.google.com/forum/#!topic/beagleboard/eEZVrthmb8w
(4th post from the bottom)
Code:
https://github.com/allexoll/BBB-BareMetal
We will validate these links for the RED board and get back to you beginning of next week.
Octavo Systems LLC all rights reserved
OCTAVO is registered in the U.S. Patent and Trademark Office. OSD, C-SiP, and the Octavo Logo are trademarks of Octavo Systems LLC.
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields