Thank you!!!
I followed all these steps and all files are created. But when checking not getting. I linked pin 24 to 26 and run putty software. I tried to type in coming window. But i failed… Any more settings are needed?
It works for me on my AI64
Are you running putty on the AI64 ?
Also check the user permissions for the device. think you need to be in the dialout group
Ok…Thank You!!! I will try…
Hai…
debian@BeagleBone:/dev$ ls tty*
tty tty16 tty24 tty32 tty40 tty49 tty57 tty8 ttyS6 ttyp5 ttype
tty0 tty17 tty25 tty33 tty41 tty5 tty58 tty9 ttyS7 ttyp6 ttypf
tty1 tty18 tty26 tty34 tty42 tty50 tty59 ttyGS0 ttyS8 ttyp7
tty10 tty19 tty27 tty35 tty43 tty51 tty6 ttyS0 ttyS9 ttyp8
tty11 tty2 tty28 tty36 tty44 tty52 tty60 ttyS1 ttyp0 ttyp9
tty12 tty20 tty29 tty37 tty45 tty53 tty61 ttyS2 ttyp1 ttypa
tty13 tty21 tty3 tty38 tty46 tty54 tty62 ttyS3 ttyp2 ttypb
tty14 tty22 tty30 tty39 tty47 tty55 tty63 ttyS4 ttyp3 ttypc
tty15 tty23 tty31 tty4 tty48 tty56 tty7 ttyS5 ttyp4 ttypd
when i listed devices. Above mentioned item displayed. How to find device coresponds to my UART configuration. Please reply…
Thank You!!!
None of the UARTS as enabled have hardware flow control. You would need to setup the correct pin muxing if you need that.
It is up to your software to make sure it does not try to use hardware flow control.
There is no loopback mode as far as I know for the UARTS, thats why I suggested connecting pins 24 and 26 together. Unless you mean echoing back characters received to another device. Again that would be down to your software.
just do ls -al /dev/bone/uart/*to see what ttySx devices the uarts are actually. It might not be consistent between boots, so best to use /dev/bone/uart/x
They way I do this is to use the USB port with a usb to ttl adapter. That is always hot and you can test and debug your code with a known and working interface.
Then when the code is proven working move it to the UART address. This also allows you to use the host for building the code, much faster than using the target.
Hello @benedict.hewson ,
I was trying to install some ideas in DTS format and port it to the BBAI-64…
It seems I am having trouble with sudo permissions on the build from /opt/source/dtb-5.10-ti/ but when I type it, it works. It works!
I am e-learning about DTS slowly. I can see how things have transpired and changed over time and how things are working at times now! Processes…hmm.
Seth
P.S. I see the Servo Cape is available in a .dtbo too for arm64 in a .dtbo file. This is neat. I am still waiting on more Capes in time, i.e. as I like to learn the hardware, read about the chips onboard, and then try to accumulate some in time while learning about them, e.g. L298 for driving bidirectional DC motors or one stepper motors and so on… Anyway, off to test the ideas you have made clear!
Update
Speaking of DTS, I am learning slowly still. Anyway, thank you for an example. I will be trying other ways too…
Also, how are things going for the compatibility layer specification for the boards? I am not sure who is in charge of those ideas for now but I would love to hear from you or them about the specification for BONE-*.
Thank You!!!
Hey You and Everyone,
Me here. Does this work with kernel 6.1.x? I will be trying it again soon so I can answer that specifically sooner than later…
Anyway, I was thinking that I could keep UART0/1 for debugging the u-boot logs and right before the kernel starts. Um, is this possible to this day with kernel 6.1.x?
Seth
P.S. Sorry for my scary photo these days. I am testing with old photos and AI these days…
Update
I have time now. I will test again. If I come across error, I will reattempt this conversation.
Also, is it possible with a Cape onboard? I was testing with the Motor Cape and wanted to keep it on the BBAI-64.
More and More
sudo ./build_n_install.sh reports output as Error: src/arm64/overlays/UART-ONE.dts:15.17-18 syntax error.
My errors seem to be not associated with kernel 5.10 or 6.1 because I am on kernel 6.6.
Anyway, this is how it looks so far for kernel 6.6.
/dts-v1/;
/plugin/;
#include "ti/k3-pinctrl.h"
&{/chosen} {
overlays {
UART-ONE = __TIMESTAMP__;
};
};
&main_pmx0 {
uartx5_2_pins_default:uartx5_2-pins-default {
pinctrl-single,pins = <
P9_24A(PIN_OUTPUT, 3) /* UART2 TX */
P9_26A(PIN_INPUT, 3) /* UART2 RX */
P9_24B(PIN_INPUT, 7)
P9_26B(PIN_INPUT, 7)
>;
};
};
&main_uart2 {
pinctrl-names = "default";
pinctrl-0 = <&uartx5_2_pins_default>;
symlink = "bone/uart/2";
status = "okay";
};
The issue I am coming across is due to the two pins associated with UART2 or /dev/bone/uart/2 or wherever it may be located once I find the correct placement and file usage…
So, this is what I was thinking:
#include <dt-bindings/gpio/gpio.h>
P9_24A_uart2_txd: P9-24A-uart2-txd-pins {
pinctrl-single,pins = <
J721E_IOPAD(0x1E0, PIN_OUTPUT, 3) /* (Y5) SPI1_D0.UART2_TXD */
>;
};
P9_26A_uart2_rxd: P9-26A-uart2-rxd-pins {
pinctrl-single,pins = <
J721E_IOPAD(0x1DC, PIN_INPUT, 3) /* (Y1) SPI1_CLK.UART2_RXD */
>;
};
I just do not know how to handle the DTS under UART during the /bone/ or /extlinux.conf files. Please provide some feedback.
Some Type of Update
I am beat. Nooooooo!
k3.h is missing in kernel 6.6.x. anyway, if anyone has this figured out, please do reply.
I understand I am missing one or many valuable items at hand to get UART 2 or UART 5 working…
Anyway, thank you for reading. Until next time!
You will have to drop your .dts into the RCN tree and build it. dtc does not handle linking. cpp does and it is much easier to use his tools for this. You also have a macro that is not expanded, not placing it in the tree and building using make dtbs it will never work. Also make sure you checkout the correct version.
What is an RCN tree? sh scripts to build my appliance is needed and I think RCN handles it correctly in his builds with Linux and sh scripting to port the existing u-boot, firmware, and tispl, and kernel.
But, I am at a loss here. I have kernel 6.6.x.
So, something like make ARCH=arm64 menuconfig && make -j2?
See, this is it. I once broke my lower back trying to replicate whatever it is that RCN does. I never fully figured out how to enable things in the build the way I was supposed to enable them…
Um, do you have any pointers that I can follow?
Seth
Update and p.s.
So, I would have to enable my .dtso file(s) in the build each time I build and that is mandatory. Okay, is or are there any surefire ways to handle building without error or at least know when error(s) are occuring? Blah.
Wait!
Are you telling me I need to purpose my .dts, .dtso, and .dtsi files prior to porting the kernel build?
If so and if I need to place my DTS files in locations, where are these file locations, at what point in menuconfig do I relay the DTS to the menuconfig, and then guess from then on?
Seth
P.S. Here:
&main_gpio0 {
gpio-line-names = "", "", "", "", "P8_18", /* 0-4 */
"", "", "", "", "", /* 5-9 */
"", "", "", "", "", /* 10-14 */
"", "", "", "", "", /* 15-19 */
"", "", "", "", "", /* 20-24 */
"", "", "", "", "", /* 25-29 */
"", "", "", "", "", /* 30-34 */
"", "", "", "", "", /* 35-39 */
See my dilemma. There are many files and associated paths of excelling but none are listed.
My built kernel(s) do not have the required files that I understand and I cannot move forward.
Also:
There are tricks to the trade I am highly unaware of currently.
- There is something going on around here.
- I am not in charge.
- I know little about what the beagleboard.org fellows/ladies are doing to handle builds.
I know some stuff but few things are apparent now. Like, the kernels build. Nice. There is nothing wrong with a suitable built kernel. One can hack if necessary and/or gdb to find clues but there is always a wait. Timing queue! I get some frustration from me being impatient at times. Other times, I plain do not understand the environment (Linux builds and overall satisfactory attitude towards Linux builds).
Anyway, long story short here…
I shall go back to my corner.
I have done too much without application. So, there is no evidence of me doing anything. It is a bummer really. I am too afraid to break my prized possession.
update
Also…I remember that people, some people on the WWW, were stating that UART has seen its hay day. So, maybe it is only for debugging now. I am not quite sure as of now.
I cannot find it, if I can find the clone of it I will post a link. @RobertCNelson might be able to help on that one.
UPDATE:
Here it is: Making sure you're not a bot!
git clone https://openbeagle.org/beagleboard/BeagleBoard-DeviceTrees.git
Go into src >> arm64 for the base .dtsi, go into overlays for the .dts.
If you only need to use “okay” just use dtc on your overlay. If you have to pinmux you must use the tree to expand the macros.
It would be recommended to checkout your own branch that is a clone of the branch you intend to work on. Don’t pollute the original tree, if your work fails just delete your branch and create a fresh branch. This is will make life easier on you.
git checkout -b <new-branch-name>
Might look at this script, I have not used it an just looked at it and it might help you with the mux.
bbai64.sh