Skip to content

Instantly share code, notes, and snippets.

@nonakap
Last active October 22, 2022 01:19
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nonakap/9045101 to your computer and use it in GitHub Desktop.
Save nonakap/9045101 to your computer and use it in GitHub Desktop.
86Duino Sketch: Dump UART and CrossBar registers
/*
* vortex86ex internal pcidevs
* dev#0 func#0: NB0
* dev#0 func#1: NB1
* dev#1 func#0: PCI-E
* dev#7 func#0: SB0
* dev#7 func#1: SB1
*/
void
setup(void)
{
Serial.begin(9600);
Serial.println("begin");
}
void
loop(void)
{
delay(10000);
int sbclk = sb_Read16(0xc0) & (1UL << 31);
Serial.print("SBCLK: ");
Serial.println(sbclk ? "1" : "0");
Serial.println("");
int base = sb_Read16(0x60);
Serial.print("UART base: 0x");
Serial.println(base, HEX);
void *cookie = io_Alloc(IO_USE_PORTIO, base & 0xfffe, 4 * 10); /* XXX and 0xfffe? */
if (cookie != NULL) {
int i;
for (i = 0; i < 10; ++i) {
unsigned long uartbase = io_In32(cookie, i * 4);
Serial.print("UART[");
Serial.print(i);
Serial.print("]: 0x");
Serial.println(uartbase, HEX);
Serial.print(" Duplex mode: ");
Serial.println(uartbase & (1 << 25) ? "Half" : "Full");
if (i == 0) {
if (uartbase & (1 << 24)) {
Serial.println(" Forward port 80h to UART1");
}
}
Serial.print(" Internal UART I/O Address Decode: ");
Serial.println(uartbase & (1 << 23) ? "Enabled" : "Disabled");
Serial.print(" Clock: ");
Serial.println(uartbase & (1 << 22) ? (sbclk ? "48MHz" : "24MHz") : (sbclk ? "26MHz" : "13Mhz"));
Serial.print(" FIFO: ");
Serial.println(uartbase & (1 << 21) ? "32 bytes" : "16 bytes");
Serial.print(" High Speed UART Clock Ratio Selection: ");
Serial.println(uartbase & (1 << 20) ? "1/8" : "1/16");
static const char *irq_table[] = {
"Disabled", "IRQ[9]", "IRQ[3]", "IRQ[10]",
"IRQ[4]", "IRQ[5]", "IRQ[7]" ,"IRQ[6]",
"IRQ[1]", "IRQ[11]", "Reserved" ,"IRQ[12]",
"Reserved", "IRQ[14]", "Reserved" ,"IRQ[15]"
};
Serial.print(" IRQ Routing Table: ");
Serial.println(irq_table[(uartbase >> 16) & 0xf]);
unsigned short combase = uartbase & 0xfff8;
Serial.print(" I/O Address: ");
Serial.println(combase, HEX);
if (combase != 0) {
void *com_cookie = io_Alloc(IO_USE_PORTIO, combase, 8);
if (com_cookie != NULL) {
Serial.print(" Register: ");
int r;
for (r = 0; r < 8; ++r) {
unsigned char reg = io_In8(com_cookie, r);
Serial.print(reg, HEX);
Serial.print(" ");
}
Serial.println("");
io_Free(com_cookie);
}
}
}
io_Free(cookie);
}
Serial.println("");
int cbbase = sb_Read16(0x64);
Serial.print("CrossBar base: 0x");
Serial.println(cbbase, HEX);
void *cb_cookie = io_Alloc(IO_USE_PORTIO, cbbase & 0xfffe, 0xb0); // XXX and fffe?
if (cb_cookie != NULL) {
static const char *port_function_table[] = {
/*00*/"No function", "MCM P0", "MCM P1", "MCM P2",
/*04*/"PRT 8/17 P0", "PRT 8/17 P1", "SD/MMC", "COM[5678] TXD[56768]/RXD[5678]",
/*08*/"Bit-RichIO Port0", "Bit-RichIO Port1", "Bit-RichIO Port2", "[ISA P0]",
/*0c*/"[ISA P1]", "[ISA P2]", "[ISA P3]", "[ISA P4]",
/*10*/"[ISA P5]", "[ISA P6]", "[ISA P7]", "",
/*14*/"", "", "", "",
/*18*/"", "", "", "",
/*1c*/"", "", "", ""
};
int port;
for (port = 0; port < 10; ++port) {
Serial.print(" RichIO Port[");
Serial.print(port);
Serial.print("]: ");
unsigned char reg = io_In8(cb_cookie, port);
Serial.print(reg, HEX);
Serial.print(" (");
Serial.print(port_function_table[reg & 0x1f]);
Serial.println(")");
}
Serial.println("");
static const char *bit_function_table[] = {
/*00*/"No function", "COM1-TXD1", "COM1-RXD1", "COM2-TXD2",
/*04*/"COM2-RXD2", "COM3-TXD3", "COM3-RXD3", "COM4-TXD4",
/*08*/"COM4-RXD4", "SPI-CS1", "SPI-CLK", "SPI-DO",
/*0c*/"SPI-DI", "I2C-SDA", "I2C-SCL", "CAN-TXD",
/*10*/"CAN-RXD", "USB-DEVICE+", "USB-DEVICE-", "KBDATA",
/*14*/"KBCLK", "MSDATA", "MSCLK", "LAN-LINK/ACK",
/*18*/"LAN-DUPLEX", "PRINT 1/17-PError", "SPEAKER", "WDTOUT",
/*1c*/"TXDEN1", "TXDEN2", "TXDEN3", "TXDEN4",
/*20*/"TXDEN5", "TXDEN6", "TXDEN7", "TXDEN8",
/*24*/"CLK-OUT", "MTBF", "SPI-CS2", "H_BCLK",
/*28*/"H_SYNC", "H_SDO", "H_SDI", "H_RST#",
/*2c*/"", "", "", "",
/*30*/"", "", "", "",
/*34*/"", "", "", "",
/*38*/"", "", "", "",
/*3c*/"", "", "", ""
};
for (port = 0; port < 8; ++port) {
Serial.print(" Bit-RichIO Port0 Select[");
Serial.print(port);
Serial.print("]: ");
unsigned char reg = io_In8(cb_cookie, 0x10 + port);
Serial.print(reg, HEX);
Serial.print(" (");
Serial.print(bit_function_table[reg & 0x3f]);
Serial.println(")");
}
for (port = 0; port < 8; ++port) {
Serial.print(" Bit-RichIO Port1 Select[");
Serial.print(port);
Serial.print("]: ");
unsigned char reg = io_In8(cb_cookie, 0x18 + port);
Serial.print(reg, HEX);
Serial.print(" (");
Serial.print(bit_function_table[reg & 0x3f]);
Serial.println(")");
}
for (port = 0; port < 8; ++port) {
Serial.print(" Bit-RichIO Port2 Select[");
Serial.print(port);
Serial.print("]: ");
unsigned char reg = io_In8(cb_cookie, 0x20 + port);
Serial.print(reg, HEX);
Serial.print(" (");
Serial.print(bit_function_table[reg & 0x3f]);
Serial.println(")");
}
static const char *power_control0_table[] = {
/*00*/"COM1", "COM2", "COM3", "COM4",
/*04*/"COM5", "COM6", "COM7", "COM8",
/*08*/"COM9", "COM10", "GPIO INTC0", "GPIO INTC1",
/*0c*/"SPI0", "I2C0", "MOTOR", "USB Device",
/*10*/"Parallel Port", "CAN Bus", "8051A", "GPIO Port0",
/*14*/"GPIO Port1", "GPIO Port2", "GPIO Port3", "GPIO Port4",
/*18*/"GPIO Port5", "GPIO Port6", "GPIO Port7", "GPIO Port8",
/*1c*/"GPIO Port9", "8051A GPIO Port0", "8051A GPIO Port1", "8051A GPIO Port2"
};
unsigned long pdc0 = io_In32(cb_cookie, 0x28);
Serial.print(" On-Chip Device Power-Down Control 0: ");
Serial.println(pdc0, HEX);
for (port = 0; port < 32; ++port) {
Serial.print(" ");
Serial.print(power_control0_table[port]);
Serial.print(": ");
Serial.println(pdc0 & (1U << port) ? "power-down" : "activate");
}
static const char *power_control1_table[] = {
/*00*/"8051A GPIO Port3", "8051A GPIO Port4", "8051A GPIO Port5", "8051A GPIO Port6",
/*04*/"8051A GPIO Port7", "8051A GPIO Port8", "8051A GPIO Port9", "HDA",
/*08*/"", "", "", "",
/*0c*/"", "", "", "",
/*10*/"", "", "", "",
/*14*/"", "", "", "",
/*18*/"", "", "", "",
/*1c*/"", "", "", ""
};
unsigned long pdc1 = io_In32(cb_cookie, 0x2c);
Serial.print(" On-Chip Device Power-Down Control 1: ");
Serial.println(pdc1, HEX);
for (port = 0; port < 7; ++port) {
Serial.print(" ");
Serial.print(power_control1_table[port]);
Serial.print(": ");
Serial.println(pdc1 & (1U << port) ? "power-down" : "activate");
}
int pad;
for (pad = 0; pad < 80; ++pad) {
unsigned long val = io_In8(cookie, 0x30 + pad);
Serial.print(" PAD Attribute[");
Serial.print(pad);
Serial.print("]: 0x");
Serial.print(val, HEX);
Serial.print(", ");
Serial.print(val & (1 << 4) ? "high" : "low");
Serial.print(" slew rate, Smitter Trigger: ");
Serial.print(val & (1 << 3) ? "Enabled" : "Disabled");
Serial.print(", Driving current: ");
Serial.print(val & (1 << 2) ? "16" : "8");
Serial.print(" mA, Input State: ");
static const char *input_state_table[] = {
"Tri-state", "Pull-up", "Pull-down", "Reserved"
};
Serial.println(input_state_table[val & 3]);
}
for (port = 4; port < 10; ++port) {
Serial.print(" Port Group Selection[");
Serial.print(port);
Serial.print("]: ");
unsigned char reg = io_In8(cb_cookie, 0x80 + port);
Serial.print(reg, HEX);
Serial.print(" (");
switch (reg & 0x1f) {
case 0:
Serial.print("No function");
break;
case 1 << 0:
Serial.print("GPIO Group");
break;
case 1 << 1:
Serial.print("COM Group");
break;
case 1 << 2:
Serial.print("8051A Group");
break;
case 1 << 3:
Serial.print("RichIO Group");
break;
case 1 << 4:
Serial.print("Reserved");
break;
default:
Serial.print("Unknown");
break;
}
Serial.println(")");
}
for (port = 0; port < 32; ++port) {
Serial.print(" Bit Group Selection[");
Serial.print(port);
Serial.print("]: ");
unsigned char reg = io_In8(cb_cookie, 0x90 + port);
Serial.print(reg, HEX);
Serial.print(" (");
switch (reg & 0x1f) {
case 0:
Serial.print("No function");
break;
case 1 << 0:
Serial.print("GPIO Group");
break;
case 1 << 1:
Serial.print("COM Group");
break;
case 1 << 2:
Serial.print("8051A Group");
break;
case 1 << 3:
Serial.print("RichIO Group");
break;
case 1 << 4:
Serial.print("Reserved");
break;
default:
Serial.print("Unknown");
break;
}
Serial.println(")");
}
io_Free(cb_cookie);
}
}
/*
Result: 86Duino EduCake with Hehuan 1.0/GuavaCake 0.9 (20140218)
SBCLK: 0
UART base: 0xC01
UART[0]: 0x8403F8
Duplex mode: Full
Internal UART I/O Address Decode: Enabled
Clock: 13Mhz
FIFO: 16 bytes
High Speed UART Clock Ratio Selection: 1/16
IRQ Routing Table: IRQ[4]
I/O Address: 3F8
Register: 0 0 C1 3 3 60 0 81
UART[1]: 0x8202F8
Duplex mode: Full
Internal UART I/O Address Decode: Enabled
Clock: 13Mhz
FIFO: 16 bytes
High Speed UART Clock Ratio Selection: 1/16
IRQ Routing Table: IRQ[3]
I/O Address: 2F8
Register: 0 0 C1 3 3 60 0 1
UART[2]: 0x8403E8
Duplex mode: Full
Internal UART I/O Address Decode: Enabled
Clock: 13Mhz
FIFO: 16 bytes
High Speed UART Clock Ratio Selection: 1/16
IRQ Routing Table: IRQ[4]
I/O Address: 3E8
Register: 0 0 C1 3 3 60 0 0
UART[3]: 0x820260
Duplex mode: Full
Internal UART I/O Address Decode: Enabled
Clock: 13Mhz
FIFO: 16 bytes
High Speed UART Clock Ratio Selection: 1/16
IRQ Routing Table: IRQ[3]
I/O Address: 260
Register: 0 0 C1 3 3 60 0 4D
UART[4]: 0x0
Duplex mode: Full
Internal UART I/O Address Decode: Disabled
Clock: 13Mhz
FIFO: 16 bytes
High Speed UART Clock Ratio Selection: 1/16
IRQ Routing Table: Disabled
I/O Address: 0
UART[5]: 0x8B02E8
Duplex mode: Full
Internal UART I/O Address Decode: Enabled
Clock: 13Mhz
FIFO: 16 bytes
High Speed UART Clock Ratio Selection: 1/16
IRQ Routing Table: IRQ[12]
I/O Address: 2E8
Register: 0 0 C1 3 3 60 0 A0
UART[6]: 0x0
Duplex mode: Full
Internal UART I/O Address Decode: Disabled
Clock: 13Mhz
FIFO: 16 bytes
High Speed UART Clock Ratio Selection: 1/16
IRQ Routing Table: Disabled
I/O Address: 0
UART[7]: 0x0
Duplex mode: Full
Internal UART I/O Address Decode: Disabled
Clock: 13Mhz
FIFO: 16 bytes
High Speed UART Clock Ratio Selection: 1/16
IRQ Routing Table: Disabled
I/O Address: 0
UART[8]: 0x8403E0
Duplex mode: Full
Internal UART I/O Address Decode: Enabled
Clock: 13Mhz
FIFO: 16 bytes
High Speed UART Clock Ratio Selection: 1/16
IRQ Routing Table: IRQ[4]
I/O Address: 3E0
Register: 0 0 C1 3 3 60 0 0
UART[9]: 0x0
Duplex mode: Full
Internal UART I/O Address Decode: Disabled
Clock: 13Mhz
FIFO: 16 bytes
High Speed UART Clock Ratio Selection: 1/16
IRQ Routing Table: Disabled
I/O Address: 0
CrossBar base: 0xA01
RichIO Port[0]: 3 (MCM P2)
RichIO Port[1]: 8 (Bit-RichIO Port0)
RichIO Port[2]: 1 (MCM P0)
RichIO Port[3]: 2 (MCM P1)
RichIO Port[4]: 0 (No function)
RichIO Port[5]: 0 (No function)
RichIO Port[6]: 6 (SD/MMC)
RichIO Port[7]: 0 (No function)
RichIO Port[8]: 9 (Bit-RichIO Port1)
RichIO Port[9]: A (Bit-RichIO Port2)
Bit-RichIO Port0 Select[0]: E (I2C-SCL)
Bit-RichIO Port0 Select[1]: D (I2C-SDA)
Bit-RichIO Port0 Select[2]: 1 (COM1-TXD1)
Bit-RichIO Port0 Select[3]: 2 (COM1-RXD1)
Bit-RichIO Port0 Select[4]: 5 (COM3-TXD3)
Bit-RichIO Port0 Select[5]: 6 (COM3-RXD3)
Bit-RichIO Port0 Select[6]: 3 (COM2-TXD2)
Bit-RichIO Port0 Select[7]: 4 (COM2-RXD2)
Bit-RichIO Port1 Select[0]: 9 (SPI-CS1)
Bit-RichIO Port1 Select[1]: A (SPI-CLK)
Bit-RichIO Port1 Select[2]: C (SPI-DI)
Bit-RichIO Port1 Select[3]: B (SPI-DO)
Bit-RichIO Port1 Select[4]: 17 (LAN-LINK/ACK)
Bit-RichIO Port1 Select[5]: 18 (LAN-DUPLEX)
Bit-RichIO Port1 Select[6]: 1A (SPEAKER)
Bit-RichIO Port1 Select[7]: 0 (No function)
Bit-RichIO Port2 Select[0]: 27 (H_BCLK)
Bit-RichIO Port2 Select[1]: 28 (H_SYNC)
Bit-RichIO Port2 Select[2]: 29 (H_SDO)
Bit-RichIO Port2 Select[3]: 2A (H_SDI)
Bit-RichIO Port2 Select[4]: 2B (H_RST#)
Bit-RichIO Port2 Select[5]: 21 (TXDEN6)
Bit-RichIO Port2 Select[6]: 11 (USB-DEVICE+)
Bit-RichIO Port2 Select[7]: 12 (USB-DEVICE-)
On-Chip Device Power-Down Control 0: F8010C00
COM1: activate
COM2: activate
COM3: activate
COM4: activate
COM5: activate
COM6: activate
COM7: activate
COM8: activate
COM9: activate
COM10: activate
GPIO INTC0: power-down
GPIO INTC1: power-down
SPI0: activate
I2C0: activate
MOTOR: activate
USB Device: activate
Parallel Port: power-down
CAN Bus: activate
8051A: activate
GPIO Port0: activate
GPIO Port1: activate
GPIO Port2: activate
GPIO Port3: activate
GPIO Port4: activate
GPIO Port5: activate
GPIO Port6: activate
GPIO Port7: activate
GPIO Port8: power-down
GPIO Port9: power-down
8051A GPIO Port0: power-down
8051A GPIO Port1: power-down
8051A GPIO Port2: power-down
On-Chip Device Power-Down Control 1: 7F
8051A GPIO Port3: power-down
8051A GPIO Port4: power-down
8051A GPIO Port5: power-down
8051A GPIO Port6: power-down
8051A GPIO Port7: power-down
8051A GPIO Port8: power-down
8051A GPIO Port9: power-down
PAD Attribute[0]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[1]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[2]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[3]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[4]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[5]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[6]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[7]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[8]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up
PAD Attribute[9]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up
PAD Attribute[10]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[11]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[12]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[13]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[14]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[15]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[16]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[17]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[18]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[19]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[20]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[21]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[22]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[23]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[24]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[25]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[26]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[27]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[28]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[29]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[30]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[31]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[32]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[33]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[34]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[35]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[36]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[37]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[38]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[39]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[40]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up
PAD Attribute[41]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[42]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[43]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up
PAD Attribute[44]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up
PAD Attribute[45]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[46]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up
PAD Attribute[47]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up
PAD Attribute[48]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up
PAD Attribute[49]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up
PAD Attribute[50]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up
PAD Attribute[51]: 0x2, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-down
PAD Attribute[52]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up
PAD Attribute[53]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up
PAD Attribute[54]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up
PAD Attribute[55]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up
PAD Attribute[56]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[57]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[58]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[59]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[60]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[61]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[62]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[63]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[64]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[65]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[66]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[67]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[68]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[69]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[70]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[71]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[72]: 0x2, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-down
PAD Attribute[73]: 0x2, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-down
PAD Attribute[74]: 0x2, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-down
PAD Attribute[75]: 0x2, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-down
PAD Attribute[76]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up
PAD Attribute[77]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[78]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
PAD Attribute[79]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state
Port Group Selection[4]: 1 (GPIO Group)
Port Group Selection[5]: 2 (COM Group)
Port Group Selection[6]: 8 (RichIO Group)
Port Group Selection[7]: 1 (GPIO Group)
Port Group Selection[8]: 8 (RichIO Group)
Port Group Selection[9]: 8 (RichIO Group)
Bit Group Selection[0]: 8 (RichIO Group)
Bit Group Selection[1]: 8 (RichIO Group)
Bit Group Selection[2]: 8 (RichIO Group)
Bit Group Selection[3]: 8 (RichIO Group)
Bit Group Selection[4]: 8 (RichIO Group)
Bit Group Selection[5]: 8 (RichIO Group)
Bit Group Selection[6]: 8 (RichIO Group)
Bit Group Selection[7]: 8 (RichIO Group)
Bit Group Selection[8]: 8 (RichIO Group)
Bit Group Selection[9]: 8 (RichIO Group)
Bit Group Selection[10]: 1 (GPIO Group)
Bit Group Selection[11]: 1 (GPIO Group)
Bit Group Selection[12]: 1 (GPIO Group)
Bit Group Selection[13]: 1 (GPIO Group)
Bit Group Selection[14]: 1 (GPIO Group)
Bit Group Selection[15]: 1 (GPIO Group)
Bit Group Selection[16]: 8 (RichIO Group)
Bit Group Selection[17]: 8 (RichIO Group)
Bit Group Selection[18]: 8 (RichIO Group)
Bit Group Selection[19]: 8 (RichIO Group)
Bit Group Selection[20]: 8 (RichIO Group)
Bit Group Selection[21]: 8 (RichIO Group)
Bit Group Selection[22]: 8 (RichIO Group)
Bit Group Selection[23]: 8 (RichIO Group)
Bit Group Selection[24]: 8 (RichIO Group)
Bit Group Selection[25]: 8 (RichIO Group)
Bit Group Selection[26]: 8 (RichIO Group)
Bit Group Selection[27]: 8 (RichIO Group)
Bit Group Selection[28]: 8 (RichIO Group)
Bit Group Selection[29]: 8 (RichIO Group)
Bit Group Selection[30]: 8 (RichIO Group)
Bit Group Selection[31]: 8 (RichIO Group)
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment