Tips on customizing the kernel for a board based on the BeagleBoard?

Hi, I'm relatively new to Linux so I'm looking for some advice. We
have a custom board that is based on the Beagleboard reference
design. For the most part (90%), it uses the peripherals identical to
the BeagleBoard. The major difference is that it uses the TPS65920
power controller instead of the TWL4030; the audio device is the TI
AIC33 instead of the one builtin on the TWL4030. The custom board
also has an additional ISP1504 USB phy chip. I want to use the
BeagleBoard BSP as a starting point (arch/arm/mach-omap2). Can anyone
please help point me in the right direction to "cloning" an existing
BSP to use for customizing for my custom board? I'm tempted to just
go "hack" the existing BeagleBoard-related BSP files for my custom
board but I know that's not the correct and proper way of bringing up
a board. Similarly, this will apply to u-boot customization.

In terms of the hardware differences I mentioned above, I see the
TPS65920 power controller is used in the TI OMAP EVM board; is it as
simple as "taking" the code from that BSP and porting it into my
BeagleBoard-based BSP? I have not seen anyone used the AIC33 codec in
combination with the OMAP3530 but I have used that codec on the TI
Davinci board a few years ago; the kernel was 2.6.23 and back then,
the audio driver was OSS and not ALSA. Is getting the AIC33 codec to
work with the OMAP3530 as simple as taking the audio-related code from
the Davinci platform (arch/arm/mach-davinci) and bringing it over to
my custom board BSP and customizing the I2C/McBSP settings
accordingly? I will have a custom board in a few weeks so I want to
start creating this new BB-based custom BSP. Thanks!!!

Regards,
Andy

Hey Andy!

I guess first you just need to boot conventional Beagleboard u-boot at your board. I can see that your design must be vital in a purpose of BeagleBoard-related BSP. I would start from bringing up a console in Linux. Everything the rest is after that.

Don’t forget that PinMux setup is performed in u-boot. I don’t know why it is so, but it is. Actually I used to that a bootloader makes everything possible to boot high-level OS and not preparing anything for it. In Beagleboard u-boot and Linux kernel are tight together.

2010/3/23 Andy Ngo <ndno72-omap@yahoo.com>