summaryrefslogtreecommitdiff
path: root/chip/g/loader/rom_flash.c
diff options
context:
space:
mode:
Diffstat (limited to 'chip/g/loader/rom_flash.c')
-rw-r--r--chip/g/loader/rom_flash.c115
1 files changed, 0 insertions, 115 deletions
diff --git a/chip/g/loader/rom_flash.c b/chip/g/loader/rom_flash.c
deleted file mode 100644
index 9666f2464a..0000000000
--- a/chip/g/loader/rom_flash.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Copyright 2015 The Chromium OS Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "debug_printf.h"
-#include "setup.h"
-#include "rom_flash.h"
-
-static int _flash_error(void)
-{
- int retval = GREG32(FLASH, FSH_ERROR);
-
- if (!retval)
- return 0;
-
- debug_printf("Register FLASH_FSH_ERROR is not zero (found %x).\n",
- retval);
- debug_printf("Will read again to verify FSH_ERROR was cleared ");
- debug_printf("and then continue...\n");
-
- retval = GREG32(FLASH, FSH_ERROR);
- if (retval) {
- debug_printf("ERROR: Read to FLASH_FSH_ERROR (%x) "
- "did not clear it\n", retval);
- }
-
- return retval;
-}
-
-/* Verify the flash controller is awake. */
-static int _check_flash_is_awake(void)
-{
- int retval;
-
- GREG32(FLASH, FSH_TRANS) = 0xFFFFFFFF;
- retval = GREG32(FLASH, FSH_TRANS);
- GREG32(FLASH, FSH_TRANS) = 0x0;
-
- if (retval == 0) {
- debug_printf("ERROR:FLASH Controller seems unresponsive. ");
- debug_printf("Did you make sure to run 'reseth'?\n");
- return E_FL_NOT_AWAKE;
- }
-
- return 0;
-}
-
-/* Send cmd to flash controller. */
-static int _flash_cmd(uint32_t fidx, uint32_t cmd)
-{
- int cnt, retval;
-
- /* Activate controller. */
- GREG32(FLASH, FSH_PE_EN) = FSH_OP_ENABLE;
- GREG32_ADDR(FLASH, FSH_PE_CONTROL0)[fidx] = cmd;
-
- /* wait on FSH_PE_EN (means the operation started) */
- cnt = 500; /* TODO(mschilder): pick sane value. */
-
- do {
- retval = GREG32(FLASH, FSH_PE_EN);
- } while (retval && cnt--);
-
- if (retval) {
- debug_printf("ERROR: FLASH_FSH_PE_EN never went to 0, is ");
- debug_printf("0x%x after timeout\n", retval);
- return E_FL_TIMEOUT;
- }
-
- /*
- * wait 100us before checking FSH_PE_CONTROL (means the operation
- * ended)
- */
- cnt = 1000000;
- do {
- retval = GREG32_ADDR(FLASH, FSH_PE_CONTROL0)[fidx];
- } while (retval && --cnt);
-
- if (retval) {
- debug_printf
- ("ERROR: FLASH_FSH_PE_CONTROL%d is 0x%x after timeout\n",
- fidx, retval);
- GREG32_ADDR(FLASH, FSH_PE_CONTROL0)[fidx] = 0;
- return E_FL_TIMEOUT;
- }
-
- return 0;
-}
-
-int flash_info_read(uint32_t offset, uint32_t *dst)
-{
- int retval;
-
- /* Make sure flash controller is awake. */
- retval = _check_flash_is_awake();
- if (retval)
- return retval;
-
- GWRITE_FIELD(FLASH, FSH_TRANS, OFFSET, offset);
- GWRITE_FIELD(FLASH, FSH_TRANS, MAINB, 1);
- GWRITE_FIELD(FLASH, FSH_TRANS, SIZE, 1);
-
- retval = _flash_cmd(1, FSH_OP_READ);
- if (retval)
- return retval;
-
- if (_flash_error())
- return E_FL_ERROR;
-
- if (!retval)
- *dst = GREG32(FLASH, FSH_DOUT_VAL1);
-
- return retval;
-}