Sd registers bad
Change SD controller registers
BAD card acts like there is no card (logs BAD from cold boot vs no card
and Card Detect tied to ground are the same in terms of command flow)
Results of below test are the same: GOOD appears in bootmenu after coldboot, BAD doesn't.
SDHC registers values in release v4.0.1.1:
pci_write_config32(dev, 0xA4, 0x21FE32B2); //0b 0010 0001 1101 1110 0011 0010 1011 0010
pci_write_config32(dev, 0xA8, 0x00000070); //0b 0000 0000 0000 0000 0000 0000 0111 0000
pci_write_config32(dev, 0xB0, 0x01180C01); //0b 0000 0001 0001 1000 0000 1100 0000 0001
pci_write_config32(dev, 0xD0, 0x0000078B); //0b 0000 0000 0000 0000 0000 0111 1000 1011
-
Change from
Removable card slottoEmbedded slot for one devicepci_write_config32(dev, 0xA4, 0x61FE32B2); //0b 0110 0001 1111 1110 0011 0010 1011 0010 -
Disable: Suspend/resume support, DMA support, High speed support, ADMA support, ADMA2 support, MMC8-bit support
pci_write_config32(dev, 0xA4, 0x210232B2); //0b 0010 0001 0000 0010 0011 0010 1011 0010 -
Combination of 1. and 2. (disabled features and
embedded slot)pci_write_config32(dev, 0xA4, 0x610232B2); //0b 0110 0001 0000 0010 0011 0010 1011 0010 -
Disabled features and
Shared Bus Slotinstead:pci_write_config32(dev, 0xA4, 0xA10232B2); //0b 1010 0001 0000 0010 0011 0010 1011 0010 -
Disabled features +
TimeOut clock from internalpci_write_config32(dev, 0xA4, 0xA1023232); //0b 1010 0001 0000 0010 0011 0010 0011 0010 -
Change
TmoFreqfrom 0x32 to 0x02:pci_write_config32(dev, 0xA4, 0xA1023202); //0b 1010 0001 0000 0010 0011 0010 0000 0010 -
Disable features from
0xB0register: Memory deep sleep mode, memory shutdown mode, Master Read prefetch:pci_write_config32(dev, 0xB0, 0x01180000); //0b 0000 0001 0001 1000 0000 0000 0000 0000 -
Force 3.3V:
pci_write_config32(dev, 0xD0, 0x0004078B); //0b 0000 0000 0000 0100 0000 0111 1000 1011 -
SD Power pin disable:
pci_write_config32(dev, 0xD0, 0x0004070B);Voltage on TP27 drops from 3.3V to 0.25V
-
Change driver strength value:
Initially
0xB8register value was:two first bytes are:REGISTER B8 = 0x88000400Specifies the SN driver strength value for 3.3V. Specifies the SP driver strength value for 3.3V.changes:
pci_write_config32(dev, 0xB8, 0xFF000400); pci_write_config32(dev, 0xB8, 0xAA000400); pci_write_config32(dev, 0xB8, 0x55000400); pci_write_config32(dev, 0xB8, 0x00000400);