Commit Graph

4371 Commits

Author SHA1 Message Date
Stefan Reinauer abdf84884e abuild:
- increase context to 6 lines in case of build error
- add update mechanism to automatically produce fallback+normal in one image.
- tighten up output
- in-coreboot-builds makefile main target is now "all" as coreboot.rom matches
  a file
- time measurement now includes "make config" step
- actually allow long-implemented long version of --remove|-r option.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5328 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-30 14:02:19 +00:00
Stefan Reinauer fd0bef825d build_opt_tbl: error instead of null pointer access if no checksum is defined.
xe7501devkit: If cmos.layout is used, there must be a checksum.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5327 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-30 09:59:23 +00:00
Stefan Reinauer c719f1a506 add CONFIG_NO_POST as it is used in the code, and move it together with CONFIG_SERIAL_POST
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5326 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-30 09:57:28 +00:00
Stefan Reinauer 8b547b1980 reduce warnings in MCP55 and Fam10 code
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5325 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-30 09:56:35 +00:00
Stefan Reinauer 9b70cb6243 fix ms9652_fam10
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5324 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-30 08:20:37 +00:00
Stefan Reinauer 9050b71802 unify cmos.layout wrt AMD extended configuration registers.
This removes double preprocessor define warnings from many boards.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5323 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-30 08:01:43 +00:00
Stefan Reinauer 7ac3df8ae2 this fixes 3 of 4 mainboards failed by the error on missing IRQ_SLOT_COUNT.
The third, MSI MS9652, creates an IRQ table on the fly, no kidding.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5322 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-30 00:22:29 +00:00
Stefan Reinauer 8e726b7363 Don't include option_table.h every time we include mc146818rtc.h, that was a
stupid idea. Instead include it where it is needed. And add some explicit
dependencies to it.

Also, error for missing IRQ_SLOT_COUNT for now, so we can fix up the boards.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5321 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-29 23:01:35 +00:00
Stefan Reinauer 798ef2893c This drops the ASSEMBLY define from romstage.c, too
(since it's not assembly code, this was a dirty hack anyways)
Also run 
    awk 1 RS= ORS="\n\n" < $FILE > $FILE.nonewlines
    mv $FILE.nonewlines $FILE
on romstage.c because my perl -pi -e 's,#define ASSEMBLY 1,,g' */*/romstage.c 
cut some holes into the source.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>




git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5320 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-29 22:08:01 +00:00
Stefan Reinauer 72bdfeb698 - drop GCC 2.x workaround, GCC 2.x is not supported anymore.
- warn if we didn't specify IRQ_SLOT_COUNT in Kconfig
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5319 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-29 22:05:26 +00:00
Stefan Reinauer 86b6dba7ea trivial warning cleanups
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5318 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-29 21:56:26 +00:00
Stefan Reinauer 8655412673 - include option_table.h when it is created, and that's HAVE_OPTION_TABLE
- add some __PRE_RAM__ guards where needed
- use OPTION_TABLE_H

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5317 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-29 21:50:53 +00:00
Stefan Reinauer 2c5dc65949 qemu: drop "northbridge.c" from src/cpu/...
It's not a real northbridge, so I just move it into the mainboard directory for
now (until we maybe have a qemu-q35 image some day?)

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5316 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-29 21:17:25 +00:00
Stefan Reinauer 5e32823a68 __PRE_RAM__ is now correctly specified in the Makefile. No need to hack it into
romstage.c anymore

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5315 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-29 19:19:16 +00:00
Stefan Reinauer 8013d5a568 cpu_driver structs need to be const, too...
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5314 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-29 19:04:13 +00:00
Stefan Reinauer b5828d7445 This patch drops the coreboot CMOS checksum ranges from Kconfig because
the information is already specified in cmos.layout. coreboot is changed
to use that version instead.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Ronald G. Minnich <rminnich@gmai.com>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5313 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-29 17:14:28 +00:00
Stefan Reinauer 002c9ff3e4 abuild: fail with dignity if mainboard does not exist.
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5312 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-29 16:23:42 +00:00
Stefan Reinauer 9a16e3e5a6 dualcore.h and quadcore.h are almost exactly the same.
Only have multicore.h for both of them.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5311 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-29 14:45:36 +00:00
Stefan Reinauer e9f3258e0b This patch fixes build.h dependencies in coreboot again.
-include was dropped, the files in question do an #include <build.h> already.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Patrick Georgi <patrick.georgi@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5310 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-29 13:04:13 +00:00
Stefan Reinauer e0d607a4c5 Add a non-time consuming version of ram check so we can print a decent error
rather than looping on non-working ram.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5309 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-28 21:31:30 +00:00
Stefan Reinauer bcd31fff42 drop post_code()
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5308 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-28 21:30:23 +00:00
Stefan Reinauer 35b6bbb721 drop unneeded __ROMCC__ checks when the check for __PRE_RAM__ is more
appropriate. Also, factor out post_code() for __PRE_RAM__ code and drop it from
some mainboards.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5307 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-28 21:26:54 +00:00
Stefan Reinauer 83a1dd850b drop __ROMCC__ define checks.. __PRE_RAM__ is what the code should be looking for.
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5306 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-28 15:11:56 +00:00
Patrick Georgi f733d47544 ccache and scan-build actually work together, so remove the
restriction that tells Kconfig not to allow that setup.
It's not particularily useful, as scan-build totally dominates
the gcc runtime, but well..

Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Patrick Georgi <patrick.georgi@coresystems.de>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5305 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-27 17:36:39 +00:00
Patrick Georgi 51e142fef4 make only needs to read Makefile.incs once, thanks to the
SECONDEXPANSION feature of GNU make (and we rely on GNU make for lots of
things already)

File paths are relative to the root directory, which simplifies
debugging (make V=1 gives shorter command lines) and helps ccache
finding matches for checkouts in different directories (even though it
should normalize paths itself)

Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5304 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-27 17:18:39 +00:00
Myles Watson 9417cc05fc Remove dead code and make white space more consistent for acpi_tables.c
Signed-off-by: Myles Watson <mylesgw@gmail.com>
Acked-by: Myles Watson <mylesgw@gmail.com>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5303 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-26 18:31:12 +00:00
Stefan Reinauer 723c270211 Update libpayload default configuration so a make oldconfig
on that configuration does not ask questions.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5302 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-26 11:47:13 +00:00
Patrick Georgi 026476e4e3 Make sconfig only complain about real conflicts.
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5301 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-26 10:33:36 +00:00
Zheng Bao 0735142bdd 1. Remove warnings and multiple blank lines.
2. Mahogany uses GPIO9 to detect 80-pin IDE cable.

Signed-off-by: Zheng Bao <zheng.bao@amd.com>
Acked-by: Patrick Georgi <patrick.georgi@coresystems.de>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5300 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-26 01:43:30 +00:00
Stefan Reinauer b56f2d0ad4 USB updates from our internal tree
- support MMC2 devices
- make usb stack more solid
- drop some unused functions
- fix lowspeed/speed naming
- add support for "quirks"
- improve usbhid driver

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Joseph Smith <joe@settoplinux.org>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5299 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-25 22:17:36 +00:00
Stefan Reinauer e5d30b78b7 libpayload update
* rework Config.in
* add string_to_args function to actually make getopt usable.
* add strchr
* add strlcat
* some malloc fixes (exposed by the USB stack)
* add malloc debugging (thanks to Matthias Krause from Secunet!)
* make LAR support optional, it's not really used anymore
* (define htoX macros for ppc)

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Joseph Smith <joe@settoplinux.org>




git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5298 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-25 22:15:19 +00:00
Patrick Georgi 516a2a7bfa Add support to build with ccache in the build system
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5297 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-25 21:45:25 +00:00
Patrick Georgi 0ab9d12e29 Make build verbose when requested by abuild
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5296 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-25 19:01:27 +00:00
Stefan Reinauer b700254aa5 Add coreboot framebuffer support to libpayload
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Patrick Georgi <patrick.georgi@coresystems.de> 



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5295 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-25 18:56:26 +00:00
Stefan Reinauer 7208f6e031 don't hardcode i386 in lpgcc
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Patrick Georgi <patrick.georgi@coresystems.de> 


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5294 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-25 18:54:43 +00:00
Stefan Reinauer 0350c0fe19 allow libpayload to completely build out of tree.
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Patrick Georgi <patrick.georgi@coresystems.de> 


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5293 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-25 18:54:08 +00:00
Stefan Reinauer d361308f18 prevent timer overflows in libpayload
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Patrick Georgi <patrick.georgi@coresystems.de> 


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5292 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-25 18:53:20 +00:00
Stefan Reinauer 1beabe10cd make keyboard reset driver generic (not pc keyboard driver dependent)
so it can be used by usb, too

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Patrick Georgi <patrick.georgi@coresystems.de> 


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5291 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-25 18:52:24 +00:00
Patrick Georgi c2d0b62cc1 Copy argument of -include as it's modified later.
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5290 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-25 15:49:40 +00:00
Patrick Georgi 09a0eb478b It's really obj=, not O= (see toplevel Makefile)
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Patrick Georgi <patrick.georgi@coresystems.de>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5289 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-25 15:25:15 +00:00
Stefan Reinauer 86dbe15017 One feature I've been really missing since we switched to
Kconfig is that after an abuild run you could cd to 
coreboot-builds/mainboard_name and just run "make" to rebuild
that one target (and get a non-parallel build easily)

This small add-on to abuild brings that feature back.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5288 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-25 14:18:57 +00:00
Stefan Reinauer 715d6e0982 abuild should be using O=, not obj=
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5287 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-24 22:39:40 +00:00
Myles Watson 565a281f36 Get rid of type-punned pointer errors.
Defining AmlCode differently in different source files is a bit ugly... 
Creating a void * to do the casting is not exactly beautiful either...

Signed-off-by: Myles Watson <mylesgw@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5286 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-24 22:02:53 +00:00
Stefan Reinauer d1149d7ef1 Some keyboards need a longer timeout. Also increase error level, because a
not-connected keyboard should normally not raise an error.
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Myles Watson <mylesgw@gmail.com>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5285 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-24 21:24:17 +00:00
Stefan Reinauer a2e5f3713d Drop unneeded code that checks for CONFIG_ variables in
build_opt_tbl.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>

Acked-by: Myles Watson <mylesgw@gmail.com>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5284 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-24 21:21:33 +00:00
Stefan Reinauer bb44d0e7e0 fix acpi dsdt copy on roda rk886ex
thanks to Myles Watson for spotting this...!

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5283 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-24 20:59:43 +00:00
Stefan Reinauer 5f0aefbef5 SMM: remove hack that was needed back in oldconfig times.
These days it even does the wrong thing (not using the .smmobj.o version of
vtxprintf.c and printk.c)
Also, SMM never needed libgcc, it's only in coreboot_ram for yabel/x86emu's
crazy math.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5282 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-24 16:45:46 +00:00
Stefan Reinauer 7103eb707a oops, forgot to cleanup extra output in bootblock creation for dependency patch
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5281 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-24 16:18:06 +00:00
Stefan Reinauer 6bee951c30 dependency tracking for coreboot
Obviously compile time increases slightly because more work has to be done, but
I'm sure the benefit of having to rm -rf build less often is worth it :-)

Other small changes:
* be a bit more verbose on some of the created files
* move -O2 from compiler rule into bootblock_romccflags
* drop rule needed for util/*.c -> build/*.o as x86emu no longer lives in util.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Myles Watson <mylesgw@gmail.com>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5280 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-24 15:51:48 +00:00
Stefan Reinauer 9db39d3b43 CPPFLAGS and DEBUG_CFLAGS don't exist since Kconfig. Drop their remainders.
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5279 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-03-24 09:53:50 +00:00