Difference between revisions of "Novena/EEPROM"

From Studio Kousagi Wiki
Jump to: navigation, search
(Feature bitmask)
Line 24: Line 24:
 
|-
 
|-
 
| 2 || 0 || Feature bitmask || No features are enabled
 
| 2 || 0 || Feature bitmask || No features are enabled
 +
|-
 +
| 4 || 0 || LVDS channel 1 frequency || No display
 +
|-
 +
| 2 || 0 || LVDS channel 1 display width || No display
 +
|-
 +
| 2 || 0 || LVDS channel 1 display height || No display
 +
|-
 +
| 2 || 0 || LVDS channel 1 horizontal back porch || No display
 +
|-
 +
| 2 || 0 || LVDS channel 1 horizontal front porch || No display
 +
|-
 +
| 2 || 0 || LVDS channel 1 horizontal sync length || No display
 +
|-
 +
| 2 || 0 || LVDS channel 1 vertical back porch || No display
 +
|-
 +
| 2 || 0 || LVDS channel 1 vertical front porch || No display
 +
|-
 +
| 2 || 0 || LVDS channel 1 vertical sync length || No display
 +
|-
 +
| 4 || 0 || LVDS channel 1 flags (see below) || No display
 +
|-
 +
| 4 || 0 || LVDS channel 2 frequency || No display
 +
|-
 +
| 2 || 0 || LVDS channel 2 display width || No display
 +
|-
 +
| 2 || 0 || LVDS channel 2 display height || No display
 +
|-
 +
| 2 || 0 || LVDS channel 2 horizontal back porch || No display
 +
|-
 +
| 2 || 0 || LVDS channel 2 horizontal front porch || No display
 +
|-
 +
| 2 || 0 || LVDS channel 2 horizontal sync length || No display
 +
|-
 +
| 2 || 0 || LVDS channel 2 vertical back porch || No display
 +
|-
 +
| 2 || 0 || LVDS channel 2 vertical front porch || No display
 +
|-
 +
| 2 || 0 || LVDS channel 2 vertical sync length || No display
 +
|-
 +
| 4 || 0 || LVDS channel 2 flags (see below) || No display
 +
|-
 +
| 4 || 0 || HDMI default frequency || No display
 +
|-
 +
| 2 || 0 || HDMI default display width || No display
 +
|-
 +
| 2 || 0 || HDMI default display height || No display
 +
|-
 +
| 2 || 0 || HDMI default horizontal back porch || No display
 +
|-
 +
| 2 || 0 || HDMI default horizontal front porch || No display
 +
|-
 +
| 2 || 0 || HDMI default horizontal sync length || No display
 +
|-
 +
| 2 || 0 || HDMI default vertical back porch || No display
 +
|-
 +
| 2 || 0 || HDMI default vertical front porch || No display
 +
|-
 +
| 2 || 0 || HDMI default vertical sync length || No display
 +
|-
 +
| 4 || 0 || HDMI default flags (see below) || No display
 
|}
 
|}
  
Line 37: Line 97:
 
| 0 || 0x0001 || ES8328 Audio Codec
 
| 0 || 0x0001 || ES8328 Audio Codec
 
|-
 
|-
| 1 || 0x0002 || Senono-based battery board
+
| 1 || 0x0002 || Senoko-based battery board
 
|-
 
|-
| 2 || 0x0004 || Retina LVDS display
+
| 2 || 0x0004 || (Reserved)
 
|-
 
|-
| 3 || 0x0008 || (Reserved: Other LVDS display)
+
| 3 || 0x0008 || (Reserved)
 
|-
 
|-
 
| 4 || 0x0010 || mPCIe port
 
| 4 || 0x0010 || mPCIe port
Line 47: Line 107:
 
| 5 || 0x0020 || Gigabit Ethernet
 
| 5 || 0x0020 || Gigabit Ethernet
 
|-
 
|-
| 6 || 0x0040 || HDMI Output
+
| 6 || 0x0040 || (Reserved)
 +
|}
 +
 
 +
==LVDS/HDMI flags bitmask==
 +
{| class="wikitable sortable"
 +
|+ Feature list
 +
|-
 +
! scope="col" | Bit position
 +
! scope="col" | Mask
 +
! scope="col" | Feature
 +
|-
 +
| 0 || 0x0001 || Channel is present
 +
|-
 +
| 1 || 0x0002 || If 1, use both LVDS channels together
 +
|-
 +
| 2 || 0x0004 || Polarity of vsync signal
 +
|-
 +
| 3 || 0x0008 || Polarity of hsync signal
 +
|-
 +
| 4 || 0x0010 || 1 if LVDS is JEIDA mapping, 0 if it's PSWG/SWPG
 +
|-
 +
| 5 || 0x0020 || 1 if data is 8-bit (24 bpp), 0 if it's 6-bit (18 bpp)
 
|}
 
|}

Revision as of 09:06, 25 November 2013

Novena has a utility EEPROM that can be used for storing device-specific data. This is optional, and default values will be used if it is blank / not present.

All multi-byte integers are in native host order.

Structure

EEPROM structure
Size Default Value Description Result if no EEPROM present
6 'Novena' Unterminated EEPROM signature The EEPROM contents will not be used
1 1 Version number of EEPROM structure The EEPROM contents will not be used
1 0 Reserved No change
4 0 Device serial number No change
6 (Random) Gigabit MAC address Random MAC address is generated on each boot
2 0 Feature bitmask No features are enabled
4 0 LVDS channel 1 frequency No display
2 0 LVDS channel 1 display width No display
2 0 LVDS channel 1 display height No display
2 0 LVDS channel 1 horizontal back porch No display
2 0 LVDS channel 1 horizontal front porch No display
2 0 LVDS channel 1 horizontal sync length No display
2 0 LVDS channel 1 vertical back porch No display
2 0 LVDS channel 1 vertical front porch No display
2 0 LVDS channel 1 vertical sync length No display
4 0 LVDS channel 1 flags (see below) No display
4 0 LVDS channel 2 frequency No display
2 0 LVDS channel 2 display width No display
2 0 LVDS channel 2 display height No display
2 0 LVDS channel 2 horizontal back porch No display
2 0 LVDS channel 2 horizontal front porch No display
2 0 LVDS channel 2 horizontal sync length No display
2 0 LVDS channel 2 vertical back porch No display
2 0 LVDS channel 2 vertical front porch No display
2 0 LVDS channel 2 vertical sync length No display
4 0 LVDS channel 2 flags (see below) No display
4 0 HDMI default frequency No display
2 0 HDMI default display width No display
2 0 HDMI default display height No display
2 0 HDMI default horizontal back porch No display
2 0 HDMI default horizontal front porch No display
2 0 HDMI default horizontal sync length No display
2 0 HDMI default vertical back porch No display
2 0 HDMI default vertical front porch No display
2 0 HDMI default vertical sync length No display
4 0 HDMI default flags (see below) No display

Feature bitmask

There is a bitmask field that defines various board features. In this way, a single image can be shipped that supports various components. For example, a router might not have a display, but a laptop would need to have its LCD turned on. A bit is "1" if the feature is present (and needs to be enabled), and "0" if it is not present. Note that some values are mutually-exclusive (e.g. you can only have one kind of LVDS display attached).

Feature list
Bit position Mask Feature
0 0x0001 ES8328 Audio Codec
1 0x0002 Senoko-based battery board
2 0x0004 (Reserved)
3 0x0008 (Reserved)
4 0x0010 mPCIe port
5 0x0020 Gigabit Ethernet
6 0x0040 (Reserved)

LVDS/HDMI flags bitmask

Feature list
Bit position Mask Feature
0 0x0001 Channel is present
1 0x0002 If 1, use both LVDS channels together
2 0x0004 Polarity of vsync signal
3 0x0008 Polarity of hsync signal
4 0x0010 1 if LVDS is JEIDA mapping, 0 if it's PSWG/SWPG
5 0x0020 1 if data is 8-bit (24 bpp), 0 if it's 6-bit (18 bpp)