1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-27 15:12:36 +02:00

1699 Commits

Author SHA1 Message Date
Bari Ari
9477c4eca5 Enable ROM decode range to 1MB for vt8237r
Corresponding to flashrom svn r220 and coreboot v2 svn r3275.

Signed-off-by: Bari Ari <bari@onelabs.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2008-04-29 13:46:38 +00:00
Claus Gindhart
a7b3551bbc Separate ST M50FLW support from generic JEDEC code
The generic jedec.c does not work for the ST M50FLW flash devices,
because they need an unlock command first. For this reason, ST M50FLW
support is moved to a new HW support module, because any change in
jedec.c would bear the risk to cause problems with the already supported
devices.

It's already tested with ST M50FLW080A; the other chips of this family i
dont have available, so i couldnt test it.

Corresponding to flashrom svn r219 and coreboot v2 svn r3274.

Signed-off-by: Claus Gindhart <claus.gindhart@kontron.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2008-04-28 17:51:09 +00:00
Peter Stuge
f31104cf3b Handle NULL probe, erase and write function pointers in the flashchips table
The read pointer was already checked properly.

Corresponding to flashrom svn r218 and coreboot v2 svn r3273.

Signed-off-by: Peter Stuge <peter@stuge.se>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2008-04-28 14:47:30 +00:00
Claus Gindhart
ef300238b6 82802ab: touch only blocks that need updating
Flash pages, which where excluded from updating using the exclude or the
layout option, as well as areas, whose flash contents already contain
the desired data, will be skipped. These ensures absolute data security
of critical areas (BIOS boot block), e.g. against a sudden power off or
a CPU hangup during flashing. As a nice side effect, it speeds up the
flash process, if the BIOS to be flashed is very similar to the version
in flash.

Corresponding to flashrom svn r217 and coreboot v2 svn r3260.

Signed-off-by: Claus Gindhart <claus.gindhart@kontron.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2008-04-24 09:07:57 +00:00
Ed Swierk
47c94a5d48 ST M50FW016 and ST M50FW040 support the 82802ab command set, not jedec
Corresponding to flashrom svn r216 and coreboot v2 svn r3221.

Signed-off-by: Ed Swierk <eswierk@arastra.com>
Acked-by: Joseph Smith <joe@smittys.pointclark.net>
2008-04-07 22:33:33 +00:00
Carl-Daniel Hailfinger
b36a071717 Add ICH9 detection
Straight from the datasheet, untested.

Corresponding to flashrom svn r215 and coreboot v2 svn r3167.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2008-03-18 00:54:10 +00:00
Stefan Reinauer
c34ce2ecf7 Oops
Forgot to add the file.

Support for the Winbond W39V080FA series of chips. Support for flashing
on the Kontron 986LCD-M board.

Corresponding to flashrom svn r214 and coreboot v2 svn r3166.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2008-03-18 00:36:18 +00:00
Stefan Reinauer
ac37897259 Support for the Winbond W39V080FA series of chips
Support for flashing on the Kontron 986LCD-M board.

Corresponding to flashrom svn r213 and coreboot v2 svn r3165.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2008-03-17 22:59:40 +00:00
Stefan Reinauer
b7c8323399 Check whether SST FWH chip was successfully erased on flashchip -E, too
Corresponding to flashrom svn r212 and coreboot v2 svn r3153.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2008-03-16 19:44:13 +00:00
Uwe Hermann
fc425e81ce Sort list of flash chips alphabetically, add comment
Corresponding to flashrom svn r211 and coreboot v2 svn r3152.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2008-03-16 02:06:25 +00:00
Stefan Reinauer
72123a5b07 Remove nasty warning that happened due to our vendor detection
Corresponding to flashrom svn r210 and coreboot v2 svn r3151.

mechanism.
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2008-03-15 23:41:19 +00:00
Uwe Hermann
7615868f0b Re-add code erroneously removed in r3140
Corresponding to flashrom svn r209 and coreboot v2 svn r3146.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2008-03-14 23:55:58 +00:00
Joseph Smith
1f3e530bea Changes M50FW080 to use 82802ab.c instead of jedec.c
This fixes the problem of not being able to erase the chip.

Corresponding to flashrom svn r208 and coreboot v2 svn r3145.

Signed-off-by: Joseph Smith <joe@smittys.pointclark.net>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2008-03-14 23:32:03 +00:00
Carl-Daniel Hailfinger
67f9ea3b71 Prepare for ICH7/ICH8 SPI support by adding some debugging for all ICH* chipsets
Functionality (except printing) should be unchanged.

Corresponding to flashrom svn r207 and coreboot v2 svn r3144.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>

Ward says:
This code detects the ICH8 chipset on my laptop, and it appears to use
SPI.

Acked-by: Ward Vandewege <ward@gnu.org>
2008-03-14 17:20:59 +00:00
Uwe Hermann
55bf8dfcab Fix broken flashrom build
Corresponding to flashrom svn r206 and coreboot v2 svn r3142.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2008-03-14 01:24:39 +00:00
Carl-Daniel Hailfinger
e7162b3680 Fix up one forgotten revert in r3140
Corresponding to flashrom svn r205 and coreboot v2 svn r3141.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2008-03-14 00:33:42 +00:00
Carl-Daniel Hailfinger
e7bcb19bf5 Revert the delete of 82802ab.c in r3137
Corresponding to flashrom svn r204 and coreboot v2 svn r3140.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2008-03-14 00:02:25 +00:00
Uwe Hermann
eac1016437 Also print the chip vendor name in --list-supported output
Cosmetic changes in some files, partly bending the 80-characters-per-line
rule in this special case, as the 80-character-limited version looks
equally crappy even in an 80x25 console/xterm, so let's make it at least
look good in a high-resolution xterm.

Corresponding to flashrom svn r203 and coreboot v2 svn r3139.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2008-03-13 18:52:51 +00:00
Uwe Hermann
23c3d951b7 Also print the required -m option in --list-supported output
Corresponding to flashrom svn r202 and coreboot v2 svn r3138.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2008-03-13 18:41:07 +00:00
Carl-Daniel Hailfinger
fe7e929f49 Drop 82802ab.c as it is identical to sharplhf00l04.c
Corresponding to flashrom svn r201 and coreboot v2 svn r3137.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Peter Stuge <peter@stuge.se>
2008-03-13 12:43:31 +00:00
Uwe Hermann
7bd2f838c6 Drop the useless rom.layout file
It's just an example, likely never been used in the last few years, and
the contents are available in the README already anyway.

Corresponding to flashrom svn r200 and coreboot v2 svn r3134.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Ward Vandewege <ward@gnu.org>
2008-03-12 12:28:40 +00:00
Uwe Hermann
e5ac16445f Add --list-supported option which lists the supported ROM chips, chipsets, and mainboards
Corresponding to flashrom svn r199 and coreboot v2 svn r3133.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Ward Vandewege <ward@gnu.org>
2008-03-12 11:54:51 +00:00
Uwe Hermann
75f510768d Add missing license header to layout.c
The file was written by Stefan Reinauer for coresystems GmbH in 2005, as
confirmed on IRC.

Corresponding to flashrom svn r198 and coreboot v2 svn r3126.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2008-03-04 16:29:54 +00:00
Mart Raudsepp
faa62fb1ff Add board_enable for Artec Group DBE61 and DBE62
Also add a comment about NULL subsystem IDs leaving the board entry out
of auto-detection logic.

Corresponding to flashrom svn r197 and coreboot v2 svn r3110.

Signed-off-by: Mart Raudsepp <mart.raudsepp@artecdesign.ee>
Acked-by: Luc Verhaegen <libv@skynet.be>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2008-02-20 11:11:18 +00:00
Clark Rawlins
02016f742c Fix compilation with custom CFLAGS
With this small change it is possible to build flashrom again when
specifying custom CFLAGS/LDFLAGS from the make command line like.

  make CFLAGS="..." LDFLAGS="..."

I need to do this when building flashrom in a cross compiler environment
like buildroot for a foreign target.

Corresponding to flashrom svn r196 and coreboot v2 svn r3102.

Signed-off-by: Clark Rawlins <clark@bit63.org>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2008-02-14 23:22:20 +00:00
Mart Raudsepp
3697ac75d5 Further cleanups to enable_flash_cs5536
- Remove the "enable write to flash" message, as the caller appears to
   already report that.

 - Move the 'modprobe msr' suggestions to the first lseek64 error handling, as
   we get an error there already.

 - Rename a perror string from "read" to "read msr", as we use the latter
   already in this function for another read.

Corresponding to flashrom svn r195 and coreboot v2 svn r3101.

Signed-off-by: Mart Raudsepp <mart.raudsepp@artecdesign.ee>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2008-02-11 14:32:45 +00:00
Luc Verhaegen
97866087ae Add board enable for VIA EPIA SP
Corresponding to flashrom svn r194 and coreboot v2 svn r3099.

Signed-off-by: Luc Verhaegen <libv@skynet.be>
Acked-by: Corey Osgood <corey.osgood@gmail.com>
Acked-by: Peter Stuge <peter@stuge.se>
2008-02-09 02:03:06 +00:00
Mart Raudsepp
e1344da898 Improve error handling and make RCONF_DEFAULT_MSR address be a constant
Also, move a big code comment to the top of enable_flash_cs5536().

Corresponding to flashrom svn r193 and coreboot v2 svn r3098.

Signed-off-by: Mart Raudsepp <mart.raudsepp@artecdesign.ee>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2008-02-08 10:10:57 +00:00
Mart Raudsepp
0514a5f07a Write enable flash chips attached to CS3 of CS5536 chipsets (AMD Geode)
This implements support for devices using AMD Geode companion chip
CS5536 that have the Boot ROM on NOR flash that is directly connected to
FLASH_CS3 (Boot Flash Chip Select). We need to write enable it in the
NORF_CTL MSR register for flashrom to be able to write to it, including
JEDEC probe commands.

This patch allows us to stop using AMD gx_utils.ko for BIOS flashing on
the DBE61.

Corresponding to flashrom svn r192 and coreboot v2 svn r3097.

Signed-off-by: Mart Raudsepp <mart.raudsepp@artecdesign.ee>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2008-02-08 09:59:58 +00:00
Carl-Daniel Hailfinger
1263d2af08 Handle JEDEC JEP106W continuation codes in SPI RDID
Some vendors like Programmable Micro Corp (PMC) need this. Both the
serial and parallel flash JEDEC detection routines would benefit from a
parity/sanity check of the vendor ID. Will do this later.

Add support for the PMC Pm25LV family of SPI flash chips.

Corresponding to flashrom svn r191 and coreboot v2 svn r3091.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Chris Lingard  <chris@stockwith.co.uk>
2008-02-06 22:07:58 +00:00
Peter Stuge
6b53fed02d Make the vendor name optional in the -m flashrom parameter when there's only one board name that matches
The full syntax still works, and is required when two vendors have
boards with the same names.

Corresponding to flashrom svn r190 and coreboot v2 svn r3082.

Signed-off-by: Peter Stuge <peter@stuge.se>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2008-01-27 16:21:21 +00:00
Peter Stuge
79fd6d21d2 Forgot to add Spansion S25FL016A to README, trivial
Corresponding to flashrom svn r189 and coreboot v2 svn r3080.

Signed-off-by: Peter Stuge <peter@stuge.se>
Acked-by: Peter Stuge <peter@stuge.se>
2008-01-27 07:17:14 +00:00
Marc Jones
3ac76af6f0 Correctly disable the ROM area Write Protect bit in the Geode LX
Corresponding to flashrom svn r188 and coreboot v2 svn r3078.

Signed-off-by: Marc Jones <marc.jones@amd.com>
Acked-by: Peter Stuge <peter@stuge.se>

Tested on the pcengines alix1c and works fine.
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
2008-01-26 07:35:47 +00:00
Peter Stuge
10e091bd30 Add ids and chip entry for Spansion S25FL016A, tested, working
Corresponding to flashrom svn r187 and coreboot v2 svn r3074.

Signed-off-by: Peter Stuge <peter@stuge.se>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2008-01-25 01:52:45 +00:00
Harald Gutmann
e5dd6e6cd5 Here is just a little and simple patch to get the MX25L3205D working
I've tested and verified the chip myself, and it seems to work
everything like supposted, since Carl-Daniel has patched flashrom to
use the read funktion on verifying. 

"benchvice flashrom # ./flashrom -m gigabyte:m57sli -v test.4mb
Calibrating delay loop... OK.
No coreboot table found.
Found chipset "NVIDIA MCP55", enabling flash write... OK.
Found board "GIGABYTE GA-M57SLI-S4": enabling flash write... 
Serial flash segment 0xfffe0000-0xffffffff enabled
Serial flash segment 0x000e0000-0x000fffff enabled
Serial flash segment 0xffee0000-0xffefffff disabled
Serial flash segment 0xfff80000-0xfffeffff enabled
LPC write to serial flash enabled
serial flash pin 29
OK.
MX25L3205 found at physical address 0xffc00000.
Flash part is MX25L3205 (4096 KB).
Flash image seems to be a legacy BIOS. Disabling checks.
Verifying flash... VERIFIED.
benchvice flashrom # ls -l test.4mb
-rw-r--r-- 1 root root 4194304 22. Jan 16:27 test.4mb

Corresponding to flashrom svn r186 and coreboot v2 svn r3072.

Signed-off-by: Harald Gutmann <harald.gutmann@gmx.net>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2008-01-22 16:03:19 +00:00
Carl-Daniel Hailfinger
d7b5bf3f12 Flashrom did not use the read function for verifying, it used direct memory access instead
That fails if the flash chip is not mapped completely. If the read
function is set in struct flashchip, use it for verification as well.

This fixes verification of all SPI flash chips >512 kByte behind an
IT8716F flash translation chip.

"MX25L8005 found at physical address 0xfff00000. Flash part is MX25L8005
(1024 KB). Flash image seems to be a legacy BIOS. Disabling checks.
Verifying flash... VERIFIED."

Corresponding to flashrom svn r185 and coreboot v2 svn r3070.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Harald Gutmann <harald.gutmann@gmx.net>
2008-01-22 15:19:01 +00:00
Carl-Daniel Hailfinger
d3568adfe1 Make sure we delay writing the next byte long enough in SPI byte programming
Minor formatting changes.

Corresponding to flashrom svn r184 and coreboot v2 svn r3069.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Harald Gutmann <harald.gutmann@gmx.net>
2008-01-22 14:37:31 +00:00
Ronald Hoogenboom
d4554c5d73 Omitting the wait for SPI ready when there is no data to be read, e.g
readcnt==0 saves 10 seconds with the unconditional 10us delay, reducing
programming time for SST25VF016B to 40-45 secs.

Corresponding to flashrom svn r183 and coreboot v2 svn r3068.

Signed-off-by: Ronald Hoogenboom <hoogenboom30@zonnet.nl>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2008-01-21 23:55:08 +00:00
Bernhard Walle
201bde33d0 This patch adds version information
Because 'v' and 'V' are already in use, the patch uses 'R' (for release)
and, of course, '--version'.

Corresponding to flashrom svn r182 and coreboot v2 svn r3067.

Signed-off-by: Bernhard Walle <bernhard.walle@gmx.de>
Acked-by: Ulf Jordan <jordan@chalmers.se>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2008-01-21 15:24:22 +00:00
Ronald Hoogenboom
7ff530b40e Further abstract SPI functions to allow chips bigger than 512 kB behind IT8716Fs
Support SPI flash chips bigger than 512 kByte sitting behind IT8716F
Super I/O performing LPC-to-SPI flash translation.

Corresponding to flashrom svn r181 and coreboot v2 svn r3061.

Signed-off-by: Ronald Hoogenboom <hoogenboom30@zonnet.nl>
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2008-01-19 00:04:46 +00:00
Uwe Hermann
42eb17fc5e Minor documentation improvements/fixes in the README and manpage
Corresponding to flashrom svn r180 and coreboot v2 svn r3059.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2008-01-18 17:48:51 +00:00
Stefan Reinauer
2fbe6247a9 Rename linuxbios_* files in utils repository
Corresponding to flashrom svn r179 and coreboot v2 svn r3058.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2008-01-18 16:17:44 +00:00
Stefan Reinauer
e3f3e2edb4 Rename LinuxBIOS to coreboot
Corresponding to flashrom svn r178 and coreboot v2 svn r3054.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2008-01-18 15:33:10 +00:00
Bernhard Walle
a3f8a64166 This patch removes '\n' from the help output since this looks a bit strange
After the patch [...] The line length is still below 80 characters.

Corresponding to flashrom svn r177 and coreboot v2 svn r3045.

Signed-off-by: Bernhard Walle <bernhard.walle@gmx.de>
Acked-by: Torsten Duwe <duwe@lst.de>
2008-01-11 00:32:07 +00:00
Harald Gutmann
9bb1c5d7ee Enable MX25L8005 support
The #defines were already there.

Corresponding to flashrom svn r176 and coreboot v2 svn r3042.

Signed-off-by: Harald Gutmann <harald.gutmann@gmx.net>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2008-01-10 13:27:22 +00:00
Carl-Daniel Hailfinger
f9aa3a8950 Add support for the SST25VF040B 4 Mbit SPI flash chip
Straight from the data sheet, not tested.

Corresponding to flashrom svn r175 and coreboot v2 svn r3036.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2008-01-07 13:48:51 +00:00
Ronald G. Minnich
8484d5a0a3 Add board enable for the gigabyte ga_2761gxdk board
Corresponding to flashrom svn r174 and coreboot v2 svn r3033.

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2008-01-04 17:22:44 +00:00
Carl-Daniel Hailfinger
e973b05710 Print at least the vendor for SPI flash chips if the exact chip ID is unknown
Corresponding to flashrom svn r173 and coreboot v2 svn r3032.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
2008-01-04 16:22:09 +00:00
Carl-Daniel Hailfinger
2736e32832 Unfortunately, EN29F002T, EN29F002AT, EN29F002ANT, EN29F002NT all have exactly the same ID
Improve model number printing.

Add EN29F002(A)(N)B support while I'm at it.

Corresponding to flashrom svn r172 and coreboot v2 svn r3031.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Markus Boas <bios@ryven.de>
2007-12-31 14:05:08 +00:00
Carl-Daniel Hailfinger
ae8afa9ddb Add continuation ID support to jedec.c
The continuation ID code does not go further than checking for IDs of
the type 0x7fXX, but does this for vendor and product ID. The current
published JEDEC spec has a list where the largest vendor ID is 7 bytes
long, but all leading bytes are 0x7f. The list will grow in the future,
and using a 64bit variable will not be enough anymore.
Besides that, it seems that the location of the ID byte after the first
continuation ID byte is very vendor specific, so we may have to revisit
that code some time in the future.

(Suggestion for a new encoding:
Use a two-byte data type for the ID, the lower byte contains the only
non-0x7f byte, the upper byte contains the number of 0x7f bytes used as
prefix, which is the bank number minus 1 the vendor ID appears in.)

Add support for EON EN29F002AT.

Corresponding to flashrom svn r171 and coreboot v2 svn r3030.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Corey Osgood <corey.osgood@gmail.com>
2007-12-31 01:49:00 +00:00