/* * -*- mode:c -*- * * (C) Copyright 2000 * Marius Groeger <mgroeger@sysgo.de> * Sysgo Real-Time Solutions, GmbH <www.elinos.com> * * void ull_write(unsigned long long volatile *address, * unsigned long long volatile *data) * r3 = address * r4 = data * * void ull_read(unsigned long long volatile *address, * unsigned long long volatile *data) * r3 = address * r4 = data * * Uses the floating point unit to read and write 64 bit wide * data (unsigned long long) on the 60x bus. This is necessary * because all 4 flash chips use the /WE line from byte lane 0 * * IMPORTANT: data should always be 8-aligned, otherwise an exception will * occur. */ #include <ppc_asm.tmpl> #include <ppc_defs.h> .globl ull_write ull_write: lfd 0,0(r4) stfd 0,0(r3) blr .globl ull_read ull_read: lfd 0, 0(r3) stfd 0, 0(r4) blr