/* * -*- mode:c -*- * * (C) Copyright 2000 * Marius Groeger * Sysgo Real-Time Solutions, GmbH * * 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 #include .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