PinMUX and XM

640 views
Skip to first unread message

f4ctz

unread,
Dec 8, 2010, 9:09:17 AM12/8/10
to Beagle Board
Hello everybody,

I have a beagleboard XM with an installed Angstrom + Enlightenment
(narcissus built) working well.

I would like to modify the pinmux but I can't find any consistent
information especially for XM. The wiki http://elinux.org/BeagleBoardPinMux
explains some points but nothing complete. I'm new to beagleboard
world and my background is microchip microcontrolers.

My project is to design an expansion board with a SD slot on P9 and
multiple RS232 FTDI chip connected to HSUSB on P17 through a USB3320
SMSC PHY chip and a USB2507 SMSC hub.

When I read the wiki, my first question is : which recompilation is
necessary, U-boot only, Kernel only, or both U-boot and kernel ?

Where to find source of the u-boot.bin and kernel of the tar.gz
supplied by angstrom narcissus ?

Is there any tutorial for beagleboard newbies on pinmuxing for XM
version ?

Thanks for your help,
Best regards,
Fabien.

Lioric Z3

unread,
Dec 8, 2010, 10:15:03 AM12/8/10
to beagl...@googlegroups.com
Download the TI's "Pin Mux Tool", it contains all you need to easily select the pix mux configuration and produce a header file to replace in U-Boot

From Ti processor wiki:

-------------------------------------------------
Using the Generated Header Files 

The device-dependent and board-dependent header files are standard C code.  Macros are used for compactness 

and readability. A C function in a higher level source file can make a single macro call (example: MUX_EVM() ) to 

cause all pin configuration register writes to be performed. 



The generated pinmux settings may be used to customize the U-Boot source code.  Before rebuilding U-BOOT for 

your system, the following steps are neccessary: 

1) Replace the mux.h header file with the mux.h output file from Pin Mux Utility 

2) Copy the pinmux.h output file from Pin Mux Utility into the directory containing the evm.h file. 

3) Modify the original evm.h file, commenting out or deleting the original section of code that 

    makes the pin mux programming macro calls. 

4) Replace this code with #include "pinmux.h"
-------------------------------------------------


Lioric

> Date: Wed, 8 Dec 2010 06:09:17 -0800
> Subject: [beagleboard] PinMUX and XM
> From: fpelle...@free.fr
> To: beagl...@googlegroups.com
> --
> You received this message because you are subscribed to the Google Groups "Beagle Board" group.
> To post to this group, send email to beagl...@googlegroups.com.
> To unsubscribe from this group, send email to beagleboard...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/beagleboard?hl=en.
>

f4ctz

unread,
Dec 8, 2010, 10:37:47 AM12/8/10
to Beagle Board
Thanks Lioric for that informations.

Is there a way to pre load in this tool the original configuration of
the Beagleboard XM ?

After generating the .h, which u-boot source files should I use with
XM beagleboard? I have tried denx.de git version without success
(building the original source OK but boot fail after RAM) and
beagleboard validation source (building and booting OK but screen is
red dominant like if one color lines between proc and TFP410was not
correctly mapped).

Fabien.

On 8 déc, 16:15, Lioric Z3 <lioriccaym...@live.com> wrote:
> Download the TI's "Pin Mux Tool", it contains all you need to easily select the pix mux configuration and produce a header file to replace in U-Boot
> From Ti processor wiki:
> -------------------------------------------------Using the Generated Header Files
> The device-dependent and board-dependent header files are standard C code.  Macros are used for compactness
> and readability. A C function in a higher level source file can make a single macro call (example: MUX_EVM() ) to
> cause all pin configuration register writes to be performed.
>
> The generated pinmux settings may be used to customize the U-Boot source code.  Before rebuilding U-BOOT for
> your system, the following steps are neccessary:
> 1) Replace the mux.h header file with the mux.h output file from Pin Mux Utility
> 2) Copy the pinmux.h output file from Pin Mux Utility into the directory containing the evm.h file.
> 3) Modify the original evm.h file, commenting out or deleting the original section of code that
>     makes the pin mux programming macro calls.
> 4) Replace this code with #include "pinmux.h"-------------------------------------------------
> Seehttp://processors.wiki.ti.com/index.php/Pin_Mux_Utility_for_ARM_MPU_P...for more details
> Lioric
>
> > Date: Wed, 8 Dec 2010 06:09:17 -0800
> > Subject: [beagleboard] PinMUX and XM
> > From: fpellet.f4...@free.fr
> > To: beagl...@googlegroups.com
>
> > Hello everybody,
>
> > I have a beagleboard XM with an installed Angstrom + Enlightenment
> > (narcissus built) working well.
>
> > I would like to modify the pinmux but I can't find any consistent
> > information especially for XM. The wikihttp://elinux.org/BeagleBoardPinMux

daicav

unread,
Dec 10, 2010, 3:34:55 PM12/10/10
to Beagle Board
Lioric Z3.

I have a BB-C4 and i'm trying to change pin values.

I downloaded the pin mux utility and read the manual.

I have two questions:

1- All the changes to do (mux.h and pinmux.h) are on the u-boot
source. Am I right?.

2- If the answer to the first question was yes, Should we not consider
that "CONFIG_OMAP_MUX" is not set in kernel source?...I'm very
lost!!!...

daniel.
> > Seehttp://processors.wiki.ti.com/index.php/Pin_Mux_Utility_for_ARM_MPU_P...more details

Lioric Z3

unread,
Dec 17, 2010, 11:07:06 AM12/17/10
to beagl...@googlegroups.com
Ok, you can do PinMux in U-Boot (default) or kernel side, whatever fit your needs

>1- All the changes to do (mux.h and pinmux.h) are on the u-boot
> source. Am I right?.

Yes, the PInMux TI tool is intended to work with the u-boot sources

> 2- If the answer to the first question was yes, Should we not consider
> that "CONFIG_OMAP_MUX" is not set in kernel source?

In Default configuration (mux set by u-boot only) the CONFIG_OMAP_MUX flag is not set

You need to enable this flag to work with mux in the kernel

> > Is there a way to pre load in this tool the original configuration of
> > the Beagleboard XM ?

You can start with the Am37xx configuration and then just change whatever is needed then save it, see the Dm37xx TRM for the deault values and the u-boot sources to see what is set by default for the xM

Lioric


> Date: Fri, 10 Dec 2010 12:34:55 -0800
> Subject: [beagleboard] Re: PinMUX and XM
> From: dai...@gmail.com
> To: beagl...@googlegroups.com

vasilli...@gmail.com

unread,
Feb 23, 2015, 2:20:43 PM2/23/15
to beagl...@googlegroups.com, fpelle...@free.fr
Friends... I'm also new to Linux/Beagle and I'm breaking my head trying to do the same thing. I will share my progress.

I realize that there are multiple ways to change the pin mux. You can do it via Linux kernel mode or from u-boot. I chose to rebuild the u-boot.

It contains the u-boot source, among other (helpful) things. 

I used the Ti's Pin Mux Utility to create mux.h and pinmux.h w/ my required mux settings.

PROBLEM: instructions on TI's site to replace the #define MUX_EVM() in evm.h are INCORRECT. If you're working w/ the beagle board you need to change a different file. Rename the macro in pinmux.h to MUX_BEAGLE() and replace #define MUX_BEAGLE() in /board/ti/beagle.h w/ include "pinmux.h". Of course, you have to move the pinmux.h to same location.

I've gone this far. It's still not compiling b/c some defines are missing. I hope this helps you. Feel free to comment. You may call me if you need better explanation. ask.

vasilli...@gmail.com

unread,
Feb 24, 2015, 11:11:39 AM2/24/15
to beagl...@googlegroups.com, fpelle...@free.fr, vasilli...@gmail.com
One more thing I needed to change in order for it to compile. The new mux.h from TI's Pin Mux Utility redefines the PD, PU, IEN, IDIS values. You need to redefine the old ones from original mux.h b/c some code from beagle.c/h needs them.

After that it should build.
Reply all
Reply to author
Forward
0 new messages