Drop parrot which has hit AUE (auto-update end)

This board hit AUE in M69 so can be removed.

BUG=chromium:980752
TEST=emerge-sarien sys-apps/mosys

Change-Id: I919fe9889c24ddac5e72cfb4cbc708927985e09a
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1686418
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@google.com>
Reviewed-by: Raul E Rangel <rrangel@chromium.org>
Reviewed-by: Ned Nguyen <nednguyen@google.com>
diff --git a/platform/meson.build b/platform/meson.build
index fe657ea..3eebf51 100644
--- a/platform/meson.build
+++ b/platform/meson.build
@@ -24,7 +24,6 @@
 if use_cros_config
   subdir('octopus')
 endif
-subdir('parrot')
 subdir('peach')
 subdir('pinky')
 subdir('rambi')
diff --git a/platform/parrot/ec.c b/platform/parrot/ec.c
deleted file mode 100644
index 4305bb9..0000000
--- a/platform/parrot/ec.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright 2012, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above
- *      copyright notice, this list of conditions and the following
- *      disclaimer in the documentation and/or other materials provided
- *      with the distribution.
- *    * Neither the name of Google Inc. nor the names of its
- *      contributors may be used to endorse or promote products derived
- *      from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <unistd.h>
-#include <sys/time.h>
-
-#include "mosys/log.h"
-#include "mosys/platform.h"
-#include "drivers/superio.h"
-#include "drivers/ene/kb932.h"
-#include "intf/io.h"
-
-#include "parrot.h"
-
-
-/**
- * Parrot EC firmware specific constants
- */
-#define PARROT_EC_CMD		0x6c
-#define PARROT_EC_DATA		0x68
-#define PARROT_ECRAM_PORT	0xfd60
-
-#define EC_CMD_TIMEOUT_MS	4000
-#define EC_CMD_FW_VERSION	0x51
-
-/**
- * Wait for EC firmware input buffer empty
- *
- * @param intf          platform_intf
- * @return 0            success
- * @return -1           timeout
- */
-static int ec_wait_input(struct platform_intf *intf)
-{
-	if (kb932_wait_ibf_clear(intf) != 1)
-		return -1;
-	return 0;
-}
-
-/**
- * Wait for EC firmware output buffer empty
- *
- * @param intf          platform_intf
- * @return 0            success
- * @return -1           timeout
- */
-static int ec_wait_output(struct platform_intf *intf)
-{
-	if (kb932_wait_obf_set(intf) != 1)
-		return -1;
-	return 0;
-}
-
-/* Write command to ec firmware command port */
-static int ec_cmd(struct platform_intf *intf, uint8_t cmd)
-{
-	if (ec_wait_input(intf))
-		return -1;
-
-	io_write8(intf, PARROT_EC_CMD, cmd);
-	return 0;
-}
-
-/* Read data from ec firmware data port */
-static int ec_read(struct platform_intf *intf, uint16_t port, uint8_t *data)
-{
-	if (ec_wait_output(intf))
-		return -1;
-
-	io_read8(intf, port, data);
-	return 0;
-}
-
-
-static const char *parrot_ec_vendor(struct platform_intf *intf)
-{
-	return ene_kb932_detect(intf, PARROT_ECRAM_PORT) ?
-		"ENE" : "Unknown";
-}
-
-static const char *parrot_ec_name(struct platform_intf *intf)
-{
-	return ene_kb932_detect(intf, PARROT_ECRAM_PORT) ?
-		"KB932" : "Unknown";
-}
-
-static void bcd_to_ascii(uint8_t bcd, char *ascii)
-{
-	uint8_t digit;
-
-	/* high nibble first */
-	digit = bcd >> 4;
-	if (digit <= 9)
-		ascii[0] = digit + '0';
-
-	digit = bcd & 0xf;
-	if (digit <= 9)
-		ascii[1] = digit + '0';
-}
-
-/**
- * Get parrot vendor specific fw version string
- *
- * Parrot ec firmware version format: '00BEmnnArr'
- *   '00BE' - hardware type, parrot
- *   'mnnA' - m : major, 0 ~ 9
- *            nn: minor, 00~99 binary coded dicimal
- *   'rr'   - rev, 00~99 binary coded dicimal
- */
-static const char *parrot_ec_fw_version(struct platform_intf *intf)
-{
-	uint8_t major, minor, rev;
-	static char version[11];
-
-	if (ene_kb932_detect(intf, PARROT_ECRAM_PORT))
-		memcpy(version, "00BExxxAxx", 11);
-	else
-		return "Unknown";
-
-	/* get 3 bytes firmware version */
-	ec_cmd(intf, EC_CMD_FW_VERSION);
-
-	/* major range: 0 ~ 9 */
-	if (!ec_read(intf, PARROT_EC_DATA, &major)) {
-		if (major < 10)
-			version[4] = major + '0';
-	}
-	/* minor range: 00 ~ 99 */
-	if (!ec_read(intf, PARROT_EC_DATA, &minor))
-		bcd_to_ascii(minor, version + 5);
-	/* rev range: 00 ~ 99 */
-	if (!ec_read(intf, PARROT_EC_DATA, &rev))
-		bcd_to_ascii(rev, version + 8);
-
-	return version;
-}
-
-struct kb932_priv parrot_ec_priv = {
-	.csr		= PARROT_EC_CMD,
-	.data		= PARROT_EC_DATA,
-	.reg_base	= PARROT_ECRAM_PORT,
-	.cmd_timeout_ms	= EC_CMD_TIMEOUT_MS,
-};
-
-struct legacy_ec_cb parrot_ec_cb = {
-	.vendor		= parrot_ec_vendor,
-	.name		= parrot_ec_name,
-	.fw_version	= parrot_ec_fw_version,
-	.priv		= &parrot_ec_priv,
-};
-
diff --git a/platform/parrot/eeprom.c b/platform/parrot/eeprom.c
deleted file mode 100644
index 244a455..0000000
--- a/platform/parrot/eeprom.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright 2012, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above
- *      copyright notice, this list of conditions and the following
- *      disclaimer in the documentation and/or other materials provided
- *      with the distribution.
- *    * Neither the name of Google Inc. nor the names of its
- *      contributors may be used to endorse or promote products derived
- *      from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <stdio.h>
-#include <unistd.h>
-
-#include <fmap.h>
-
-#include "mosys/alloc.h"
-#include "mosys/platform.h"
-#include "mosys/log.h"
-
-#include "lib/eeprom.h"
-#include "lib/smbios.h"
-
-#include "drivers/intel/series6.h"
-#include "drivers/intel/nm10.h"
-
-#include "parrot.h"
-
-/* set up EEPROM's MMIO location */
-static int parrot_firmware_mmio_setup(struct platform_intf *intf,
-                                   struct eeprom *eeprom)
-{
-	unsigned long int rom_size = 0, rom_base = 0;
-
-	if (!eeprom->device || !eeprom->device->size)
-		return -1;
-	rom_size = eeprom->device->size(intf);
-	rom_base = 0xffffffff - rom_size + 1;
-	lprintf(LOG_DEBUG, "%s: rom_base: 0x%08lx, rom_size: 0x%08lx\n",
-	__func__, rom_base, rom_size);
-
-	eeprom->addr.mmio = rom_base;
-
-	return 0;
-}
-
-static int parrot_firmware_read(struct platform_intf *intf,
-                             struct eeprom *eeprom,
-                             unsigned int offset,
-                             unsigned int len,
-                             void *data,
-                             enum ich_snb_bbs bbs)
-{
-	uint8_t *buf = data;
-	enum ich_snb_bbs bbs_orig;
-
-	bbs_orig = series6_get_bbs(intf);
-
-	/* set chipset to direct TOLM firmware region I/Os to SPI */
-	if (series6_set_bbs(intf, bbs) < 0) {
-		lprintf(LOG_DEBUG, "%s: cannot set bbs\n", __func__);
-		return -1;
-	}
-
-	if (eeprom_mmio_read(intf, eeprom, offset, len, buf) < 0) {
-		lprintf(LOG_DEBUG, "%s: failed to read device\n", __func__);
-		return -1;
-	}
-
-	/* restore original BBS value */
-	series6_set_bbs(intf, bbs_orig);
-
-	return 0;
-}
-
-static int parrot_host_firmware_size(struct platform_intf *intf)
-{
-	/*
-	 * FIXME: use libflashrom for this. SMBIOS won't work because it
-	 * reports the actual BIOS rather than the ROM size which includes
-	 * ME/GbE/etc.
-	 */
-	return PARROT_HOST_FIRMWARE_ROM_SIZE;
-}
-
-static int parrot_host_firmware_read(struct platform_intf *intf,
-                                  struct eeprom *eeprom,
-                                  unsigned int offset,
-                                  unsigned int len,
-                                  void *data)
-{
-	return parrot_firmware_read(intf, eeprom, offset,
-	                            len, data, ICH_SNB_BBS_SPI);
-}
-
-static struct eeprom_dev parrot_host_firmware = {
-	.size		= parrot_host_firmware_size,
-	.read		= parrot_host_firmware_read,
-	.get_map	= eeprom_get_fmap,
-};
-
-static struct eeprom parrot_eeproms[] = {
-	{
-		.name		= "host_firmware",
-		.type		= EEPROM_TYPE_FW,
-		.flags		= EEPROM_FLAG_RDWR,
-		.device		= &parrot_host_firmware,
-		.setup		= parrot_firmware_mmio_setup,
-	},
-	{ 0 },
-};
-
-int parrot_eeprom_setup(struct platform_intf *intf)
-{
-	struct eeprom *eeprom;
-	int rc = 0;
-
-	for (eeprom = intf->cb->eeprom->eeprom_list;
-	     eeprom && eeprom->name;
-	     eeprom++) {
-		if (eeprom->setup)
-			rc |= eeprom->setup(intf, eeprom);
-	}
-
-	return rc;
-}
-
-struct eeprom_cb parrot_eeprom_cb = {
-	.eeprom_list	= parrot_eeproms,
-};
diff --git a/platform/parrot/memory.c b/platform/parrot/memory.c
deleted file mode 100644
index 0f1d00c..0000000
--- a/platform/parrot/memory.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright 2012, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above
- *      copyright notice, this list of conditions and the following
- *      disclaimer in the documentation and/or other materials provided
- *      with the distribution.
- *    * Neither the name of Google Inc. nor the names of its
- *      contributors may be used to endorse or promote products derived
- *      from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <limits.h>	/* for INT_MAX */
-
-#include "mosys/globals.h"
-#include "mosys/log.h"
-#include "mosys/platform.h"
-
-#include "drivers/intel/series6.h"
-
-#include "lib/file.h"
-#include "lib/spd.h"
-
-#include "parrot.h"
-
-#define PARROT_DIMM_COUNT	2
-
-/*
- * parrot_dimm_count  -  return total number of dimm slots
- *
- * @intf:       platform interface
- *
- * returns dimm slot count
- */
-static int parrot_dimm_count(struct platform_intf *intf)
-{
-	return PARROT_DIMM_COUNT;
-}
-
-/*
- * dimm_map  -  Convert logical dimm number to useful values
- *
- * @intf:       platform interface
- * @dimm:       logical dimm number
- * @type:       conversion type
- *
- * returns specified converted value
- * returns <0 to indicate error
- */
-static int parrot_dimm_map(struct platform_intf *intf,
-                          enum dimm_map_type type, int dimm)
-{
-	int ret = -1;
-	static struct dimm_map {
-		int node;
-		int channel;
-		int slot;
-		int bus;
-		int address;
-	} parrot_dimm_map[PARROT_DIMM_COUNT] = {
-		/* Node 0 */
-		{ 0, 0, 0, 17, 0x50 },
-		{ 0, 0, 0, 17, 0x52 }
-	};
-	static unsigned int first_run = 1;
-	static int bus_offset = 0;
-
-	if (dimm < 0 || dimm >= intf->cb->memory->dimm_count(intf)) {
-		lprintf(LOG_ERR, "Invalid DIMM: %d\n", dimm);
-		return -1;
-	}
-
-	/*
-	 * Determine offset for smbus numbering:
-	 * 1. Scan known bus numbers for lowest value.
-	 * 2. Scan /sys for SMBus entries that match the adapter name.
-	 * 3. Calculate the difference between the lowest expected bus number
-	 *    and the lowest bus number seen in sysfs matching the criteria.
-	 */
-	if (first_run) {
-		char path[PATH_MAX];
-		int lowest_known_bus = INT_MAX, x;
-
-		for (x = 0; x < intf->cb->memory->dimm_count(intf); x++) {
-			if (parrot_dimm_map[x].bus < lowest_known_bus)
-				lowest_known_bus = parrot_dimm_map[x].bus;
-		}
-
-		snprintf(path, sizeof(path), "%s/%s",
-		         mosys_get_root_prefix(), "/sys/bus/i2c/devices");
-		x = sysfs_lowest_smbus(path, SERIES6_SMBUS_ADAPTER);
-		if (x >= 0) {
-			bus_offset = x - lowest_known_bus;
-			lprintf(LOG_DEBUG, "%s: bus_offset: %d\n",
-			        __func__, bus_offset);
-		} else {
-			lprintf(LOG_DEBUG, "%s: unable to determine "
-			                   "bus offset\n", __func__);
-			bus_offset = 0;
-		}
-
-		first_run = 0;
-	}
-
-	switch (type) {
-	case DIMM_TO_BUS:
-		ret = parrot_dimm_map[dimm].bus + bus_offset;
-		break;
-	case DIMM_TO_ADDRESS:
-		ret = parrot_dimm_map[dimm].address;
-		break;
-	default:
-		break;
-	}
-
-	return ret;
-}
-
-static int parrot_spd_read(struct platform_intf *intf,
-                          int dimm, int reg, int len, uint8_t *buf)
-{
-	int bus;
-	int address;
-
-	bus = intf->cb->memory->dimm_map(intf, DIMM_TO_BUS, dimm);
-	address = intf->cb->memory->dimm_map(intf, DIMM_TO_ADDRESS, dimm);
-
-	return spd_read_i2c(intf, bus, address, reg, len, buf);
-}
-
-static struct memory_spd_cb parrot_spd_cb = {
-	.read		= parrot_spd_read,
-};
-
-struct memory_cb parrot_memory_cb = {
-	.dimm_count	= parrot_dimm_count,
-	.dimm_map	= parrot_dimm_map,
-	.spd		= &parrot_spd_cb,
-};
diff --git a/platform/parrot/meson.build b/platform/parrot/meson.build
deleted file mode 100644
index a7ff170..0000000
--- a/platform/parrot/meson.build
+++ /dev/null
@@ -1,9 +0,0 @@
-libmosys_src += files(
-  'eeprom.c',
-  'nvram.c',
-  'memory.c',
-  'parrot.c',
-  'sys.c',
-  'vpd.c',
-  'ec.c',
-)
diff --git a/platform/parrot/nvram.c b/platform/parrot/nvram.c
deleted file mode 100644
index d0a88ad..0000000
--- a/platform/parrot/nvram.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright 2012, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above
- *      copyright notice, this list of conditions and the following
- *      disclaimer in the documentation and/or other materials provided
- *      with the distribution.
- *    * Neither the name of Google Inc. nor the names of its
- *      contributors may be used to endorse or promote products derived
- *      from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <valstr.h>
-
-#include "mosys/kv_pair.h"
-#include "mosys/log.h"
-#include "mosys/platform.h"
-#include "mosys/output.h"
-
-#include "intf/io.h"
-
-#include "lib/math.h"
-
-enum cmos_device {
-	CMOS_DEVICE_SERIES6,
-};
-
-struct cmos_map {
-	enum cmos_device type;
-	const char *device;
-	int bank;
-	int length;
-	int clear_start;	/* first bytes are usually reserved for RTC */
-	struct valstr *var_list;
-};
-
-struct cmos_map parrot_cmos_map[] = {
-	{ CMOS_DEVICE_SERIES6, "6-Series", 0, 128, 0x29, NULL },
-};
-
-static const uint16_t parrot_cmos_port[] = { 0x70 };
-
-static uint8_t parrot_read_cmos(struct platform_intf *intf,
-                                int addr, int reg)
-{
-	uint8_t data;
-	io_write8(intf, parrot_cmos_port[addr], reg);
-	io_read8(intf, parrot_cmos_port[addr] + 1, &data);
-	return data;
-}
-
-static void parrot_write_cmos(struct platform_intf *intf,
-			       int addr, int reg, uint8_t val)
-{
-	io_write8(intf, parrot_cmos_port[addr], reg);
-	io_write8(intf, parrot_cmos_port[addr] + 1, val);
-}
-
-static int parrot_nvram_dump(struct platform_intf *intf)
-{
-	struct cmos_map *map;
-	int off, dev;
-	uint8_t cmos_data[128];
-
-	/* handle each cmos bank */
-	for (dev = 0;
-	     dev < sizeof(parrot_cmos_map) /
-	           sizeof(parrot_cmos_map[0]);
-	     dev++) {
-		map = &parrot_cmos_map[dev];
-
-		if (map->length > sizeof(cmos_data))
-			continue;
-		memset(cmos_data, 0, sizeof(cmos_data));
-
-		mosys_printf("%s CMOS Bank %d (%d bytes)\n",
-		       map->device, map->bank, map->length);
-
-		switch (map->type) {
-		case CMOS_DEVICE_SERIES6:
-			for (off = 0; off < map->length; off++)
-				cmos_data[off] = parrot_read_cmos(
-					intf, map->bank, off);
-			break;
-		}
-
-		print_buffer(cmos_data, map->length);
-		mosys_printf("\n");
-	}
-
-	return 0;
-}
-
-static int parrot_nvram_clear(struct platform_intf *intf)
-{
-	struct cmos_map *map;
-	int off, dev;
-
-	/* handle each cmos bank */
-	for (dev = 0;
-	     dev < (sizeof(parrot_cmos_map) / sizeof(struct cmos_map));
-	     dev++) {
-		map = &parrot_cmos_map[dev];
-
-		switch (map->type) {
-		case CMOS_DEVICE_SERIES6:
-			for (off = map->clear_start; off < map->length; off++)
-				parrot_write_cmos(intf, map->bank, off, 0x00);
-			break;
-		}
-	}
-
-	return 0;
-}
-
-struct nvram_cb parrot_nvram_cb = {
-	.dump	= parrot_nvram_dump,
-	.clear	= parrot_nvram_clear,
-};
diff --git a/platform/parrot/parrot.c b/platform/parrot/parrot.c
deleted file mode 100644
index f576da1..0000000
--- a/platform/parrot/parrot.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright 2012, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above
- *      copyright notice, this list of conditions and the following
- *      disclaimer in the documentation and/or other materials provided
- *      with the distribution.
- *    * Neither the name of Google Inc. nor the names of its
- *      contributors may be used to endorse or promote products derived
- *      from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "mosys/alloc.h"
-#include "mosys/command_list.h"
-#include "mosys/platform.h"
-#include "mosys/intf_list.h"
-#include "mosys/log.h"
-
-#include "lib/probe.h"
-#include "lib/smbios.h"
-#include "lib/vpd.h"
-#include "lib/elog.h"
-
-#include "parrot.h"
-
-static const char *probed_platform_id;
-
-const char *parrot_id_list[] = {
-	"Parrot",
-	NULL
-};
-
-struct platform_cmd *parrot_sub[] = {
-	&cmd_eeprom,
-	&cmd_memory,
-	&cmd_nvram,
-	&cmd_platform,
-	&cmd_smbios,
-	&cmd_vpd,
-	&cmd_ec,
-	&cmd_eventlog,
-	NULL
-};
-
-static const char *frids[] = {
-	"Google_Parrot",
-	NULL
-};
-
-int parrot_probe(struct platform_intf *intf)
-{
-	static int status = 0, probed = 0;
-
-	if (probed)
-		return status;
-
-	if (probe_frid(frids)) {
-		status = 1;
-		goto parrot_probe_exit;
-	}
-
-	if (probe_smbios(intf, parrot_id_list)) {
-		status = 1;
-		goto parrot_probe_exit;
-	}
-
-parrot_probe_exit:
-	probed = 1;
-	return status;
-}
-
-/* late setup routine; not critical to core functionality */
-static int parrot_setup_post(struct platform_intf *intf)
-{
-	int rc = 0;
-
-	/* FIXME: until VPD is properly implemented, do not fail on setup */
-	if (parrot_vpd_setup(intf) < 0)
-		lprintf(LOG_INFO, "VPD not found\n");
-
-	rc |= parrot_eeprom_setup(intf);
-
-	if (rc)
-		lprintf(LOG_DEBUG, "%s: failed\n", __func__);
-	return rc;
-}
-
-static int parrot_destroy(struct platform_intf *intf)
-{
-	if (probed_platform_id)
-		free((char *)probed_platform_id);
-
-	/* FIXME: unmap vpd stuff */
-	return 0;
-}
-
-struct eventlog_cb parrot_eventlog_cb = {
-	.print_type	= &elog_print_type,
-	.print_data	= &elog_print_data,
-	.print_multi	= &elog_print_multi,
-	.verify		= &elog_verify,
-	.verify_header	= &elog_verify_header,
-	.fetch		= &elog_fetch_from_smbios,
-};
-
-struct platform_cb parrot_cb = {
-	.eeprom		= &parrot_eeprom_cb,
-	.memory		= &parrot_memory_cb,
-	.nvram		= &parrot_nvram_cb,
-	.smbios		= &smbios_sysinfo_cb,
-	.sys 		= &parrot_sys_cb,
-	.vpd		= &parrot_vpd_cb,
-	.legacy_ec	= &parrot_ec_cb,
-	.eventlog	= &parrot_eventlog_cb,
-};
-
-struct platform_intf platform_parrot = {
-	.type		= PLATFORM_X86_64,
-	.name		= "Parrot",
-	.id_list	= parrot_id_list,
-	.sub		= parrot_sub,
-	.cb		= &parrot_cb,
-	.probe		= &parrot_probe,
-	.setup_post	= &parrot_setup_post,
-	.destroy	= &parrot_destroy,
-};
diff --git a/platform/parrot/parrot.h b/platform/parrot/parrot.h
deleted file mode 100644
index 20506e5..0000000
--- a/platform/parrot/parrot.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2012, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above
- *      copyright notice, this list of conditions and the following
- *      disclaimer in the documentation and/or other materials provided
- *      with the distribution.
- *    * Neither the name of Google Inc. nor the names of its
- *      contributors may be used to endorse or promote products derived
- *      from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef PLATFORM_PARROT_H__
-#define PLATFORM_PARROT_H__
-
-#include <inttypes.h>
-#include "mosys/platform.h"
-
-#define PARROT_HOST_FIRMWARE_ROM_SIZE		(8192 * 1024)
-
-/* platform callbacks */
-extern struct eeprom_cb parrot_eeprom_cb;	/* eeprom.c */
-extern struct memory_cb parrot_memory_cb;	/* memory.c */
-extern struct nvram_cb parrot_nvram_cb;		/* nvram.c */
-extern struct sys_cb parrot_sys_cb;		/* sys.c */
-extern struct vpd_cb parrot_vpd_cb;		/* vpd.c */
-extern struct legacy_ec_cb parrot_ec_cb;	/* ec.c */
-
-/* functions called by setup routines */
-extern int parrot_vpd_setup(struct platform_intf *intf);
-extern int parrot_eeprom_setup(struct platform_intf *intf);
-
-#endif /* PLATFORM_PARROT_H_ */
diff --git a/platform/parrot/sys.c b/platform/parrot/sys.c
deleted file mode 100644
index d34fec8..0000000
--- a/platform/parrot/sys.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2012, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above
- *      copyright notice, this list of conditions and the following
- *      disclaimer in the documentation and/or other materials provided
- *      with the distribution.
- *    * Neither the name of Google Inc. nor the names of its
- *      contributors may be used to endorse or promote products derived
- *      from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "drivers/intel/series6.h"
-
-#include "mosys/alloc.h"
-#include "mosys/platform.h"
-
-#include "lib/smbios.h"
-
-static char *parrot_get_name(struct platform_intf *intf)
-{
-	return mosys_strdup(intf->name);
-}
-
-static int parrot_reset(struct platform_intf *intf)
-{
-	return series6_global_reset(intf);
-}
-
-struct sys_cb parrot_sys_cb = {
-	.vendor		= &smbios_sysinfo_get_vendor,
-	.name		= &parrot_get_name,
-	.family		= &smbios_sysinfo_get_family,
-	.reset		= &parrot_reset,
-};
diff --git a/platform/parrot/vpd.c b/platform/parrot/vpd.c
deleted file mode 100644
index 93bbddf..0000000
--- a/platform/parrot/vpd.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright 2012, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above
- *      copyright notice, this list of conditions and the following
- *      disclaimer in the documentation and/or other materials provided
- *      with the distribution.
- *    * Neither the name of Google Inc. nor the names of its
- *      contributors may be used to endorse or promote products derived
- *      from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "mosys/log.h"
-#include "mosys/platform.h"
-
-#include "lib/smbios.h"
-#include "lib/vpd.h"
-
-#include "parrot.h"
-
-int parrot_vpd_setup(struct platform_intf *intf)
-{
-	unsigned int rom_base, rom_size;
-
-	/* FIXME: SMBIOS might not be useful for ROM size detection here since
-	   BIOS size will only reflect the size of the BIOS flash partition */
-	rom_size = PARROT_HOST_FIRMWARE_ROM_SIZE;
-	rom_base = 0xffffffff - rom_size + 1;
-	vpd_rom_base = rom_base;
-	vpd_rom_size = rom_size;
-
-	return 0;
-}
-
-static char *parrot_vpd_get_serial(struct platform_intf *intf)
-{
-	if (intf->cb->vpd && intf->cb->vpd->system_serial)
-		return intf->cb->vpd->system_serial(intf);
-	else
-		return NULL;
-
-}
-
-static char *parrot_vpd_get_sku(struct platform_intf *intf)
-{
-	if (intf->cb->vpd && intf->cb->vpd->system_sku)
-		return intf->cb->vpd->system_sku(intf);
-	else
-		return NULL;
-}
-
-
-static char *parrot_vpd_get_google_hwqualid(struct platform_intf *intf)
-{
-	/* FIXME: noop for now */
-	return NULL;
-}
-
-struct vpd_cb parrot_vpd_cb = {
-	.system_serial		= &parrot_vpd_get_serial,
-	.system_sku		= &parrot_vpd_get_sku,
-	.google_hwqualid	= &parrot_vpd_get_google_hwqualid,
-};
diff --git a/platform/platform_list.c b/platform/platform_list.c
index 840348a..51eaf7e 100644
--- a/platform/platform_list.c
+++ b/platform/platform_list.c
@@ -59,7 +59,6 @@
 extern struct platform_intf platform_nyan;
 extern struct platform_intf platform_oak;
 extern struct platform_intf platform_octopus;
-extern struct platform_intf platform_parrot;
 extern struct platform_intf platform_peach;
 extern struct platform_intf platform_pinky;
 extern struct platform_intf platform_rambi;
@@ -83,7 +82,6 @@
 	&platform_dragonegg,
 	&platform_glados,
 	&platform_link,
-	&platform_parrot,
 	&platform_rambi,
 	&platform_reef,
 	&platform_samus,