[beagleboard] Building custom kernel/SPI patch on xM rev B

Hi all,
I think I am narrowing down what my problem is. My overall goal is to
get SPI up and running on my beagleboard-xM rev B. I have no issues
pulling down the MLO, u-boot, and uImage from
http://www.angstrom-distribution.org/demo/beagleboard/ and getting it
happily to run. Of course, to get SPI to work I am going to have to
patch a file in the kernel and build my own. Ben Gamari has been kind
enough to supply me with his config for a 2.6.33 kernel and I have
also followed other instructions I have found on the beagleboard sites
with no luck running a custom kernel. Currently it will boot in to a
kernel panic. I am using the u-boot and MLO from the site above. But
it dies here:

[ 14.737365] mmcblk0: mmc0:538f SD04G 3.69 GiB (ro)
[ 14.742523] mmcblk0: p1 p2
[ 14.841369] VFS: Cannot open root device "mmcblk0p2" or unknown-
block(179,2)
[ 14.848480] Please append a correct "root=" boot option; here are
the available partitions:
[ 14.856933] b300 3870720 mmcblk0 driver: mmcblk
[ 14.862243] b301 409626 mmcblk0p1
[ 14.866546] b302 3453975 mmcblk0p2
[ 14.870849] Kernel panic - not syncing: VFS: Unable to mount root
fs on unknown-block(179,2)

Any idea what I am doing wrong?

Thanks,
Brian

Hi Brian,

When I bought my -xm board, it came with a micro SD card that has a demo software in there. I figured out that there is no rootfs in the micro SD card. Instead, it uses ramdisk.gz and ramfs.img. If you read the user.scr file, you will see it. So, I think you need to rename user.scr to something else and put your rootfs in mcblk0p2.

In my micro SD card, I only have MLO u-boot.bin, my uImage in the DOS partition. The 2nd (Linux) partition, I have the rootfs.

-Eric

I am using a new micro SD card. I am not seeing a user.scr file
anywhere. Similar to you, I have MLO, uboot, and uImage in the DOS
partition and the rootfs in the Linux partition. I am just pulling
down the rootfs from the above site.

Do I need to make my own rootfs for my kernel? If so, I am not sure
how. Also, I don't know how to move the rootfs in to mcblk0p2.
Sorry, very new at all of this.

Hi Brian,

It is a typo in "mcblk0p2". It should be mmcblk0p2. The download rootfs is fine. But, you need to have the modules' version matches your kernel's.

-Eric

As I said in the other SPI thread, SPI is enabled by default in the angstrom kernel for the beagleboard. Attach a zippy or zippy2 expansionboard (with the appropiate header) and the SPI ethernet on those will work out of the box.

regards,

Koen

I am not interested in using SPI ethernet. I need SPI and to be able to change clock speed, idle state and clocking setups. I have custom hardware that I want to interface with the Beagle Board.

Thank you for your time,

David

Hi all,
I think I am narrowing down what my problem is. My overall goal is to
get SPI up and running on my beagleboard-xM rev B.

As I said in the other SPI thread, SPI is enabled by default in the angstrom kernel for the beagleboard.

>Attach a zippy or zippy2 expansionboard (with the appropiate header) and the SPI ethernet on those will work out of the box.

Please read this URL:
http://groups.google.com/group/beagleboard/browse_thread/thread/15d9488c1ec314ef/5ca06c67ff438106?q=mcspi3#5ca06c67ff438106

I am in the same boat as David. I am fairly certain I can get this
working if I can just build my own kernel and get it running on the
board.

I am still not sure why it is complaining that it can't find a fs in
mmcblk0p2. I replaced the modules tgz with my own and I still get the
same error (it appears that modules just puts firmware and modules in
the lib directory on the SD card). I am doing the same process (I
have a script) to copy the files over to the SD card so I am not sure
why it would have an issue finding the fs in mmcblk0p2.

Also, annoyingly if I mess with the environment, when I try to saveenv
it attempts to save it to NAND, so it tries to erase NAND...which the
xM board doesn't have...so it just hangs.

I'll check out the URL, but I am still really confused on what I am
doing wrong here.

Thanks,
Brian

I think Brian needs to recover the environment variables in the NAND first. After that, it should work.

mmcdev=1
mmcroot=/dev/mmcblk0p2 rw
mmcrootfstype=ext3 rootwait

-Eric