I'm working on creating an SDIO driver for some specialized hardware to be used on a Nokia N800 and thought I'd try compiling the SD card example code first. I'm finding that when compiling drivers/sdio/hcd/omap_2420/sdio_hcd_os_2_6.c there are many #defines that are missing. Since the SDIO code is supposed to be compatable with the 2.6.18 kernel I thought perhaps the N800 kernel source (which also happens to be 2.6.18) might be missing some files, but a search through the 2.6.18 kernel code from kernel.org turned up none of the missing #defines. After some further effort I found the missing #defines in TI's linux OMAP 2420 kernel:
This kernel has a directory, include/asm-arm/arch-omap2 which is missing from the other 2.6.18 kernels (which only have an include/asm-arm/arch-omap directory.) Altering the includes in sdio_hcd_os_2_6.c to point to these arch-omap2 files I was able to get it to compile, but I'm wondering why this was necessary (and if the changes I made are sufficient.) Why does sdio_hcd_os_2_6.c reference #defines that are not in the standard 2.6.18 kernel?
If I should use a different kernel for building for an OMAP processor, which OMAP kernel was the SDIO code originally tested with?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
I'm working on creating an SDIO driver for some specialized hardware to be used on a Nokia N800 and thought I'd try compiling the SD card example code first. I'm finding that when compiling drivers/sdio/hcd/omap_2420/sdio_hcd_os_2_6.c there are many #defines that are missing. Since the SDIO code is supposed to be compatable with the 2.6.18 kernel I thought perhaps the N800 kernel source (which also happens to be 2.6.18) might be missing some files, but a search through the 2.6.18 kernel code from kernel.org turned up none of the missing #defines. After some further effort I found the missing #defines in TI's linux OMAP 2420 kernel:
http://focus.ti.com/general/docs/wtbu/wtbusplashcontent.tsp?templateId=6123&contentId=4750
This kernel has a directory, include/asm-arm/arch-omap2 which is missing from the other 2.6.18 kernels (which only have an include/asm-arm/arch-omap directory.) Altering the includes in sdio_hcd_os_2_6.c to point to these arch-omap2 files I was able to get it to compile, but I'm wondering why this was necessary (and if the changes I made are sufficient.) Why does sdio_hcd_os_2_6.c reference #defines that are not in the standard 2.6.18 kernel?
If I should use a different kernel for building for an OMAP processor, which OMAP kernel was the SDIO code originally tested with?
Found the answer myself in the documentation:
OMAP 1610 H2 Development Platform (Kernel 2.6.9 or Kernel 2.4.20)
2.6.9 kernel source for OMAP16xx (linux.omap.com) , requires gcc 3.3.2
2.4.20 kernel development requires MontaVista CEE 3.1 (OMAP1610H2)