This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello,
I am trying to use UART4 and UART5 on my BeagleBone, and I noticed that they do not exist in the file system. I have seen topics where people edit /linux-dev/KERNEL/arch/arm/mach-omap2/board-am335xevm.c and kernel/arch/arm/mach-omap2/mux33xx.c, but I have no idea where these folders are (clearly they are not in the file system).
Can someone please alert me to their locations and give me an idea as to how to properly edit them without mishap? I would very much appreciate it!
This is result of my kernel (Linux beaglebone 3.2.9)
#dmesg | grep ttyO
Kernel command line: console=ttyO3,115200n8 rootwait root=/dev/mmcblk0p2 rw nohlt dyndbg="file sound/soc/soc-core.c +p"
omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
console [ttyO3] enabled
omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
All UARTs will be initialized automatically. You should only take care of proper pinmux (see struct evm_dev_cfg passages in arch/arm/mach-omap2/board-am335xevm.c)
Pinmuxing is indeed the issue here. I know how to do it in the file system, but since UART4 and UART5 are not available through the file system, I don't know how else to pinmux them. I'm using the Eclipse IDE and the GCC toolchain to compile my programs, before dragging them onto the Angstrom desktop on the 'Bone. As for your suggestion,
rfc2217 said:see struct evm_dev_cfg passages in arch/arm/mach-omap2/board-am335xevm.c
how exactly would I do that? I've seen a number of topics refer to that solution, but no explanation as to how exactly I would do that, or where I can find that file. Where is it located?
Try to clone this repo http://arago-project.org/git/projects/?p=linux-am33x.git;a=summary and checkout v3.2-staging branch. With this kernel I got all ttyOs registered. You should see them in you dmesg output.
I've cloned the repo, built the new kernel and am currently altering mux33xx.c and board-am335xevm.c. The former I think is pretty simple to change, but the latter is not as straightforward. Is there a step-by-step on how to add functionality to these files, as well as what to do after I've rebuilt it?
Have checked out the 3.2-staging branch? I don't know if there is such tutorial, but I just looked at what is already there, compared to my schematics and made my additions/changes to pinmuxes in board-am335xevm.c i.e. mux33xx.c. Learning by doing ;-)