Bill Richardson 3000fa71a6 Increase some task stack sizes to handle more FP regs.
With change b610695b61, we fixed a problem
with the number of FP regs that were being saved on the stack. That change
decreased the required stack size for non-FP tasks by 64 bytes, but
increased the size needed for FP tasks (such as the lightbar).

The lightbar task was previously using within 64 bytes of its alloted stack,
so handling the task switching correctly meant that it now overflowed.

The hooks task had the same problem, but was hidden by the lightbar task.

This CL bumps the LARGER_TASK_STACK_SIZE up a bit, and switches the lightbar
task to use it instead of the default size.

BUG=chrome-os-partner:27971, chrome-os-partner:28407
BRANCH=ToT
TEST=Try it on both Link and Samus.

Before this change, the Samus lightbar was overflowing its stack every time
the AP booted (causing the lightbar to do things). With this change, it
doesn't. Here are typical stack sizes after this CL:

Task Ready Name         Events      Time (s)  StkUsed
   0 R << idle >>       00000000   28.394913  328/512
   1   HOOKS            00000000    0.534085  640/768
   2 R LIGHTBAR         10000000    5.359356  520/768
   3   CHARGER          00000000    0.094674  384/512
   4   CHIPSET          00000000    0.003353  320/512
   5   KEYPROTO         00000000    0.002814  312/512
   6   HOSTCMD          00000000    0.002942  244/512
   7 R CONSOLE          00000000    0.193776  340/768
   8   POWERBTN         00000000    0.000392  248/512
   9   KEYSCAN          00000000    0.409337  332/512

Change-Id: Ica93608c8adb225410a62ec3a0a27944c479270a
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/197733
Reviewed-by: Alec Berg <alecaberg@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2014-05-01 05:47:27 +00:00
2014-04-30 09:45:59 +00:00
2014-03-31 22:45:09 +00:00
2012-05-11 09:11:52 -07:00
2013-12-19 00:12:24 +00:00
2014-04-02 19:58:53 +00:00
2014-04-02 19:58:53 +00:00

In the most general case, the flash layout looks something like this:

  +---------------------+
  | Reserved for EC use |
  +---------------------+

  +---------------------+
  |     Vblock B        |
  +---------------------+
  |  RW firmware B      |
  +---------------------+

  +---------------------+
  |     Vblock A        |
  +---------------------+
  |  RW firmware A      |
  +---------------------+

  +---------------------+
  |       FMAP          |
  +---------------------+
  |   Public root key   |
  +---------------------+
  |  Read-only firmware |
  +---------------------+


BIOS firmware (and kernel) put the vblock info at the start of each image
where it's easy to find. The Blizzard EC expects the firmware vector table
to come first, so we have to put the vblock at the end. This means we have
to know where to look for it, but that's built into the FMAP and the RO
firmware anyway, so that's not an issue.

The RO firmware doesn't need a vblock of course, but it does need some
reserved space for vboot-related things.

Using SHA256/RSA4096, the vblock is 2468 bytes (0x9a4), while the public
root key is 1064 bytes (0x428) and the current FMAP is 644 bytes (0x284). If
we reserve 4K at the top of each FW image, that should give us plenty of
room for vboot-related stuff.
Description
No description provided
Readme 1.4 GiB
Languages
C 64.7%
Lasso 20.7%
ASL 3.6%
JavaScript 3.2%
C# 2.9%
Other 4.6%