Novena DVT to PVT ECO List

=Novena DVT to PVT changes= This is a list of all the changes applied to the board from DVT1 to PVT1 release. If it's not on this list, it didn't happen.

Each change has the format of issue summary/resolution, and specific change

ECO1: Fix Gig-E termination
KSZ9021RN refclk output pull-up drive is weak. Terminate with a 300-ohm pull-up, instead of the proposed AC termination network.

ECO2: Remove FPGA clock termination
Use internal FPGA differential termination for clock. Electrically superior to discrete solution.

ECO3: Clarify D14D orientation
Added fab note on bottom silkscreen layer (outside PCB but inside assy dwg) to indicate that D14D is a side-firing LED. Fab was orienting LED accidentally as vertically firing LED.

ECO4: Add clock margin to Gbit ethernet
RGMII spec assumes an extra 10 inch delay added to the clock wire versus data wire, required to be implemented on the PCB. This is software-compensated by tweaking PHY parameters in the Micrel PHY, but we add these delay line options just in case that option turns out to be unworkable.

TXC line gets 5" added by default in this configuration because it's impossible to measure if the TXC line is adequately delayed and out of paranoia we split the difference.

In addition to these components, a trace is run through the PCB adding these delays.

ECO5: Swap switch to more robust and cheaper version
Change out switch to pushbutton type available via HQB. No change in PCB, just BOM swap.

ECO6: 32.768kHz crystal EOL
Swap out Y11B for part that is not slated for EOL. This does involve a footprint swap.

ECO7: 12.0000 MHz wrong PN
The part numbers for Y10U and Y11U are for the wrong package size.

ECO8: Clarify 47uF 1206 capacitor AVL
The wrong package type (1210) is being ordered for this 1206 part. Added a suggested AVL to prevent this problem from happening in the future.

ECO9: FPGA SEEPROM is EOL
The SPINOR SEEPROM on the FPGA has been obsoleted. Replace with a current part number.

ECO10: Eliminate Audio Pop on Power-up
The speakers make an audible pop on power-up (despite the amps being anti-pop). Add resistors that enable independent muting of the speakers from the audio codec.

ECO11: Resolve 5V instability during power ramp with high voltage supply
Power supplies with voltage greater than 12V have an inconsistent power-on behavior. This is due to some sort of extra noise or ringing on the 5V regulated line during the first few ms of power-on. Resolved by adding an extra 22uF capacitance on the output node, verified via oscilloscope (no ringing leading to shutdown visible).

ECO12: Resolve PCI-E double-series capacitor
PCI express diff pairs are AC coupled. The convention, it turns out, is for the Tx side to have the capacitor. I had incorrectly assumed that the convention was to put the caps on the motherboard side. Correct this by replacing caps with 0 ohm jumpers.

ECO13: Bolster power to expansion card
Expansion card power budgets are now exceeding 7.5W. Bolster the power budget by an additional 10W by adding a leaf-spring power connector.

Two options are provided for, one via a Wurth 331051472057 leaf-spring connector, and one via a Millmax 0990-3-50-20-75-14-11-0 pogo-pin style connector. Both are one-sided contacts, rated for about 2A max. These connectors go on the expansion board side -- this ECO simply provides for an open, gold landing area for these headers.

No ground connector is provided because there are ample grounds provided on the connector already.

ECO14: Fix DDC SCL buffer resistor value
R33L, the pull-up on the NMOS inverter designed to prevent trivial DoS attacks via HDMI port and introduced in the DVT rev, is too weak. Strengthen it so that the circuit operates. Originally, the value 47k was chosen to minimize leakage as this pull-up operates not off of the switched 3.3V, but the always-on 3.3V. This is because the DDC I2C bus is used to program the PMIC. Changing value to 4.7k increase leakage but the impact is minor, about 630uA, much less than 0.01% of a typical battery capacity.

Goes to show you, even the simplest ECO can be messed up.

ECO15: DDR3 SDRAM on FPGA EOL issue
The DDR3 part used on the FPGA was EOL'd. Change the P/N to an active part. This is a minor impact, just a die rev of the DDR3 memory.

ECO16: Fix typo in part number
P16D has a typo in the part number. Fix it.

ECO17: Move PMIC from beta silicon PN to production PN
U200, the PMIC, is now in production. Change the part number from engineering sample to production part numbering.

ECO18: Add options for D11F
CDBMT220L-G was hard to source on occasion. Add an alternate to the P/N so CM has more leeway on the AVL.

ECO19: Change rating of ESD protection diodes
I thought, for some reason, it would be a good idea to use 2.5V ESD diodes on 3.3V lines. I think it's because I was looking at the stand-off voltage, instead of the breakdown voltage. Anyways, it seems that the current 2.5V choice isn't bad per se, but if the diode cornered in the wrong direction it would cause excess leakage. So, we fix it.

ECO20: Refactor battery comms interface
After hacking on the battery a bit, it was decided that there are advantages to exposing the SMB interface on the battery board directly to the CPU. So, we refactor the interface on the connector.

This involves a series of changes, including moving the reflash/reset pins and swapping them with the I2C pins.

The new basic behavior is now both a UART and I2C is available over the signal lanes of the connector. One of the currently NC 3.3V lines is repuprosed as a reset line to the MCU on the battery board. The reflash line is eliminated, under the logic that to improve security and reliability, a button is introduced on the battery board. When the host CPU wants to reflash the MCU, it will prompt the user via a UI cue to hold down the reflash button, and then toggle the reset pin, thereby putting the MCU into reflash mode. This "safety" step is introduced to prevent malicious code from reflashing the MCU without the user's consent.

However, the exposure of the I2C bus now to the main board does still allow malicious code to modify some parameters, such as the charge current, termination voltage, etc. that could lead to malfunction of the PCB. However, due to secondary protections built into the PCB, it is very unlikely that any amount of tampering can cause the unit to actually catch fire; it will just cause the unit to fail to operate from or charge the battery.

The benefit of exposing the I2C interface is that a standard set of primitives for reading gas gauges is now revealed to the OS layer, so that the gas gauging becomes drop-in compatible with a broad suit of tools that already exist for this purpose.

Note that there are only a few BOM changes because most of the components were re-used from the previous interface revision.

'''This change makes the EVT version of the battery board (now dubbed Senoko) incompatible with the PVT version of Novena. A revision to the battery board is also mandatory!'''

ECO21: Change mounting holes to M2.5
Smallest screw size for press-fit standoffs is M2.5. Adjust mounting hole sizes accordingly.

Ground/power plane clearance increased around holes to avoid inter-layer shorting when screws are cranked down.

=Rev B=

ECO22: Fix boot from USB OTG
Device is unable to boot from USB OTG because the 5.0V boost regulator is not turned on by default at power-on.

Break out the USB OTG power to a separate bus powered by the VBUS signal on the OTG, so that the system can behave properly without any firmware loaded.

=Rev C=

ECO23: Fix PCIe target impedance
PCI express moved to an 85-ohm differential impedance for Gen2, which is apparently backward-compatible with Gen1. Change design rule & layout to 90-ohm (e.g. USB design rules) for PVT rev. Reading papers, the margin is fairly generous on the impedance spec: anywhere between 85 to 100 ohm is going to be okay, with improvement correlated to closeness to 85 ohm (also, simulations run in a paper I read was 85 ohm +/-22%, so a huge range of impedance is acceptable).

=Rev D=

ECO24: Improve power routing to CPU
VCC_1.2V_SW1AB was noticed to not be optimally routed under the CPU. Some pads go to only one via. There is no functional error in this, just not optimal. Added in multiple paths to a via for every pad. Trace-only change.

ECO25: Fix off-state leakage draining P3.0V_STBY
Two major leakage paths were discovered on P3.0V_STBY:
 * The reset line has a reset monitor pulling the line low; this is draining P3.0V_STBY via the reset pull-up
 * The diode D10C has exceptionally high leakage (almost 1mA in reverse)

This is addressed with the following changes:


 * Trace-only change: R17B now terminates to P3.3V, not P3.0V_STBY
 * Trace-only change: R25B, R23B now terminate to P3.3V, not P3.0V_STBY

These changes are safe because P3.3V is upstream of the PMIC, so it will always rise before the CPU core can even turn on; furthermore, the boot mode settings are latched on POR rising edge, which will always have to trail P3.3V coming up as the PMIC will guarantee that.

=Rev E= DFM countermeasures: improve ground plane manufacturability underneath the CPU.


 * Swapped FPGA_SUSPEND trace to one via rank lower underneath the CPU to improve ground plane routing for DDR3.
 * Added some buttreses on the bottom layer to help un-isolate potentially isolateable islands in the DDR3 ground area.

=Rev F=

ECO26: Increase EEPROM size to hold panic logs
In order to store panic logs after a crash for recover on next boot, the EEPROM size is expanded to 64kiB.

=Condensed ECO Summary=

Condensed PVT summary page alone