[uClinux-dev] NIOS2: the adventure continues with missing DMA
Robert P. J. Day
rpjday at crashcourse.ca
Fri Oct 26 03:52:01 EDT 2007
the current result of trying a kernel build with my latest patchset:
...
CC arch/nios2nommu/kernel/nios2_ksyms.o
LD arch/nios2nommu/kernel/built-in.o
AS arch/nios2nommu/kernel/head.o
CC arch/nios2nommu/kernel/init_task.o
LDS arch/nios2nommu/kernel/vmlinux.lds
CC arch/nios2nommu/mm/init.o
arch/nios2nommu/mm/init.c: In function `paging_init':
arch/nios2nommu/mm/init.c:147: error: `ZONE_DMA' undeclared (first use in this function)
arch/nios2nommu/mm/init.c:147: error: (Each undeclared identifier is reported only once
arch/nios2nommu/mm/init.c:147: error: for each function it appears in.)
make[2]: *** [arch/nios2nommu/mm/init.o] Error 1
make[1]: *** [arch/nios2nommu/mm] Error 2
make[1]: Leaving directory
`/home/rpjday/nios2/uclinux/uClinux-dist-cvs/linux-2.6.x'
make: *** [linux] Error 1
$
hmmmmm ... the macro ZONE_DMA is defined in include/linux/mmzone.h
thusly:
...
enum zone_type {
#ifdef CONFIG_ZONE_DMA
...
ZONE_DMA,
#endif
...
which means you *need* to have a (selected) Kconfig variable with name
ZONE_DMA, normally defined in the Kconfig file arch/[arch
name]/Kconfig, as in:
$ grep -r "config ZONE_DMA" *
arch/m68k/Kconfig:config ZONE_DMA
arch/s390/Kconfig:config ZONE_DMA
arch/h8300/Kconfig:config ZONE_DMA
arch/blackfin/Kconfig:config ZONE_DMA
arch/frv/Kconfig:config ZONE_DMA
arch/ia64/Kconfig:config ZONE_DMA
arch/i386/Kconfig:config ZONE_DMA
arch/v850/Kconfig:config ZONE_DMA
arch/x86_64/Kconfig:config ZONE_DMA32
arch/x86_64/Kconfig:config ZONE_DMA
arch/mips/Kconfig:config ZONE_DMA
arch/alpha/Kconfig:config ZONE_DMA
arch/m32r/Kconfig:config ZONE_DMA
arch/cris/Kconfig:config ZONE_DMA
arch/arm/Kconfig:config ZONE_DMA
arch/powerpc/Kconfig:config ZONE_DMA
arch/xtensa/Kconfig:config ZONE_DMA
arch/m68knommu/Kconfig:config ZONE_DMA
arch/sparc/Kconfig:config ZONE_DMA
arch/ppc/Kconfig:config ZONE_DMA
notice anything missing? why, yes ... arch/nios2nommu/Kconfig.
that Kconfig entry typically looks simply like:
config ZONE_DMA
bool
default y
is it really as easy as adding that to the nios2 Kconfig file? i'm
not an expert at DMA, so i don't know why it would be missing in the
first place, but it's certainly a reason why the above build attempt
is failing.
or is there a different solution to the above?
rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA
http://crashcourse.ca
========================================================================
More information about the uClinux-dev
mailing list