123456789101112131415161718192021222324252627282930313233343536373839 |
- /*
- * -*- 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
|