Replace monolithic Master Reference with focused Sources page
The 1711-line master reference was 100% duplicated across the existing 37 Starlight pages. Trimmed to bibliography only (Ghidra port numbers, driver source paths, analysis reports, community links). Salvaged FX2 USB controller registers (SETUPDAT, CPUCS, EP0BUF, etc.) into bcm4500/register-map.mdx before removal. Sidebar label updated from "Master Reference" to "Sources".
This commit is contained in:
parent
7b27c93219
commit
c4bfe33d61
@ -122,7 +122,7 @@ export default defineConfig({
|
|||||||
{
|
{
|
||||||
label: 'Reference',
|
label: 'Reference',
|
||||||
items: [
|
items: [
|
||||||
{ label: 'Master Reference', slug: 'reference/master-reference' },
|
{ label: 'Sources', slug: 'reference/master-reference' },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
@ -141,6 +141,48 @@ The custom firmware built with SDCC + fx2lib uses C variables instead of fixed I
|
|||||||
| `i2c_rd[8]` | `__xdata BYTE` | I2C scratch buffer for reads |
|
| `i2c_rd[8]` | `__xdata BYTE` | I2C scratch buffer for reads |
|
||||||
| `tm_result[10]` | `__xdata BYTE` | Tune monitor result buffer |
|
| `tm_result[10]` | `__xdata BYTE` | Tune monitor result buffer |
|
||||||
|
|
||||||
|
## FX2 USB Controller Registers
|
||||||
|
|
||||||
|
Core FX2LP registers used for USB control transfers, CPU management, and peripheral configuration.
|
||||||
|
|
||||||
|
### CPU and Peripheral Config
|
||||||
|
|
||||||
|
| Register | Address | Function |
|
||||||
|
|----------|---------|----------|
|
||||||
|
| CPUCS | 0xE600 | CPU control/status. Write 0x01 to halt, 0x00 to run. Bits 4:3 select clock speed (10 = 48 MHz). |
|
||||||
|
| IFCONFIG | 0xE601 | Interface configuration. Value 0xEE = internal 48 MHz clock, GPIF master, async mode. |
|
||||||
|
| REVCTL | 0xE60B | Revision control. Value 0x03 = NOAUTOARM + SKIPCOMMIT (required for manual EP management). |
|
||||||
|
| EP2FIFOCFG | 0xE618 | EP2 FIFO configuration. Value 0x0C = AUTOIN + ZEROLENIN, 8-bit data bus. |
|
||||||
|
|
||||||
|
### USB Setup Data (SETUPDAT)
|
||||||
|
|
||||||
|
Populated by the FX2 hardware when a SETUP packet arrives on EP0. The vendor command dispatcher reads `SETUPDAT[1]` to determine the command.
|
||||||
|
|
||||||
|
| Register | Address | Content |
|
||||||
|
|----------|---------|---------|
|
||||||
|
| SETUPDAT[0] | 0xE6B8 | bmRequestType (0x40 = vendor OUT, 0xC0 = vendor IN) |
|
||||||
|
| SETUPDAT[1] | 0xE6B9 | bRequest (vendor command ID: 0x80--0xB9) |
|
||||||
|
| SETUPDAT[2] | 0xE6BA | wValueL |
|
||||||
|
| SETUPDAT[3] | 0xE6BB | wValueH |
|
||||||
|
| SETUPDAT[4] | 0xE6BC | wIndexL |
|
||||||
|
| SETUPDAT[5] | 0xE6BD | wIndexH |
|
||||||
|
| SETUPDAT[6] | 0xE6BE | wLengthL |
|
||||||
|
| SETUPDAT[7] | 0xE6BF | wLengthH |
|
||||||
|
|
||||||
|
### EP0 Buffer
|
||||||
|
|
||||||
|
| Register | Address | Function |
|
||||||
|
|----------|---------|----------|
|
||||||
|
| EP0BCH | 0xE68A | EP0 byte count high. |
|
||||||
|
| EP0BCL | 0xE68B | EP0 byte count low. Writing this register arms the EP0 IN transfer. |
|
||||||
|
| EP0BUF | 0xE740 | EP0 data buffer start (64 bytes). Contains [TUNE_8PSK](/bcm4500/tuning-protocol/) payload bytes 0xE740--0xE749. |
|
||||||
|
|
||||||
|
### LNB Control (XRAM)
|
||||||
|
|
||||||
|
| Address | Function |
|
||||||
|
|---------|----------|
|
||||||
|
| 0xE0B6 | LNB voltage control register. Written by `SET_LNB_VOLTAGE` (0x8B) in the custom firmware. |
|
||||||
|
|
||||||
## FX2 I2C Controller
|
## FX2 I2C Controller
|
||||||
|
|
||||||
The Cypress FX2LP's built-in I2C master controller uses three hardware registers in the SFR-mapped XRAM space.
|
The Cypress FX2LP's built-in I2C master controller uses three hardware registers in the SFR-mapped XRAM space.
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user