[U-Boot] [PATCH] The cache flush using coprocessor must be in lib_arm/cache-cp15.c

Dirk Behme dirk.behme at googlemail.com
Fri May 29 09:07:19 CEST 2009


Hi riverful,

Kim, Heung Jun wrote:
> Thanks to point. Dirk.
> 
> And call me "riverful" next time, plz :)
> 
>> Kim mentioned that he shuffles around the code due to compile errors while
>> adding his new code. So we have to see if we can stay with the current
>> implementation or have to change something.
> Yes. I shuffles around a little now.
> 
>> Kim: What compile errors do you get for cache_flush()? Could you check if
>> you really don't need it? Why don't you get compile errors if you move it
>> from cpu/arm_cortexa8/cpu.c to lib_arm/cache-cp15.c?
> The compile errors are two.
> 
> 1. First error occured cause of omap3 dependent definition CPU_3XX_ES20.
> 
> cpu.c:99: warning: function declaration isn't a prototype
> cpu.c: In function 'l2cache_enable':
> cpu.c:104: warning: implicit declaration of function 'get_cpu_rev'
> cpu.c:104: error: 'CPU_3XX_ES20' undeclared (first use in this function)
> cpu.c:104: error: (Each undeclared identifier is reported only once
> cpu.c:104: error: for each function it appears in.)
> cpu.c: At top level:
> cpu.c:129: warning: function declaration isn't a prototype
> cpu.c: In function 'l2cache_disable':
> cpu.c:134: error: 'CPU_3XX_ES20' undeclared (first use in this function)
> make[1]: *** [cpu.o] Error 1

Ok, this looks to me that we have to move l2cache_enable() and 
l2cache_disable() to cpu/arm_cortexa8/omap3/board.c and rename them to 
cortexa8_l2cache_enable()/disable() as asked in

http://lists.denx.de/pipermail/u-boot/2009-May/053405.html

But it doesn't seem that we have to touch cache_flush()? Then it can 
stay in cpu/arm_cortexa8/cpu.c as requested by Jean-Christophe?

> 2. After upper error was resolved, linking error occured.
> The definition PRM_RSTCTRL is also omap3 dependent.
> It is used in the cpu/arm_cortexa8/start.S, and defined
> in the include/asm-arm/arch-omap3/cpu.h
> 
> /arm_cortexa8/s5pc100/libs5pc100.a lib_arm/libarm.a
> fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a
> fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a
> fs/yaffs2/libyaffs2.a fs/ubifs/libubifs.a net/libnet.a disk/libdisk.a
> drivers/bios_emulator/libatibiosemu.a drivers/block/libblock.a
> drivers/dma/libdma.a drivers/fpga/libfpga.a drivers/gpio/libgpio.a
> drivers/hwmon/libhwmon.a drivers/i2c/libi2c.a drivers/input/libinput.a
> drivers/misc/libmisc.a drivers/mmc/libmmc.a drivers/mtd/libmtd.a
> drivers/mtd/nand/libnand.a drivers/mtd/nand_legacy/libnand_legacy.a
> drivers/mtd/onenand/libonenand.a drivers/mtd/ubi/libubi.a
> drivers/mtd/spi/libspi_flash.a drivers/net/libnet.a
> drivers/net/phy/libphy.a drivers/net/sk98lin/libsk98lin.a
> drivers/pci/libpci.a drivers/pcmcia/libpcmcia.a drivers/spi/libspi.a
> drivers/rtc/librtc.a drivers/serial/libserial.a
> drivers/twserial/libtws.a drivers/usb/gadget/libusb_gadget.a
> drivers/usb/host/libusb_host.a drivers/usb/musb/libusb_musb.a
> drivers/video/libvideo.a drivers/watchdog/libwatchdog.a
> common/libcommon.a libfdt/libfdt.a api/libapi.a post/libpost.a
> board/samsung/tickertape/libtickertape.a --end-group -L
> /opt/toolchains/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1
> -lgcc \
> 			-Map u-boot.map -o u-boot
> cpu/arm_cortexa8/start.o: In function `rstctl':
> /ubuntu/archive/s5pc100/u-boot-arm/cpu/arm_cortexa8/start.S:514:
> undefined reference to `PRM_RSTCTRL'

This is new and not discussed anywhere on this list already?

So to summarize my understanding:

We have to:

a) move l2cache_enable() and l2cache_disable()
b) keep cache_flush() as it is
c) talk about start.S

Do you agree?

Best regards

Dirk


More information about the U-Boot mailing list