Advertisement
Guest User

Untitled

a guest
Jan 8th, 2023
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. uint DRAMC_get_dram_size(int param_1)
  2.  
  3. {
  4. uint uVar1;
  5. int iVar2;
  6. uint uVar3;
  7.  
  8. uVar3 = *(uint *)(param_1 + 24);
  9. uVar1 = *(uint *)(param_1 + 28);
  10. iVar2 = ((uVar1 << 0x10) >> 0x1c) +
  11. ((uVar3 << 0x10) >> 0x1e) +
  12. ((uVar3 << 0x14) >> 0x18) + ((uVar3 << 0x12) >> 0x1e) + (uVar3 & 0xf);
  13. if ((uVar1 & 0xf) == 0) {
  14. uVar3 = iVar2 - 0x12;
  15. }
  16. else {
  17. uVar3 = iVar2 - 0x13;
  18. }
  19. uVar3 = 1 << (uVar3 & 0xff);
  20. if (((*(ushort *)(param_1 + 122) & 7) != 0) && (uVar1 >> 0x1e != 2)) {
  21. uVar3 = uVar3 * 3 >> 2;
  22. }
  23. return uVar3;
  24. }
  25.  
  26. /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
  27.  
  28. undefined4 auto_scan_dram_config(int param_1)
  29.  
  30. {
  31. int iVar1;
  32. char *__format;
  33. uint uVar2;
  34. bool bVar3;
  35.  
  36. if (((-1 < *(int *)(param_1 + 0x78) << 0x11) && (iVar1 = auto_scan_dram_rank_width(), iVar1 == 0))
  37. || (iVar1 = auto_scan_dram_size(param_1), iVar1 == 0)) {
  38. return 0;
  39. }
  40. uVar2 = *(uint *)(param_1 + 0x78);
  41. bVar3 = -1 < (int)(uVar2 << 0x10);
  42. if (bVar3) {
  43. uVar2 = uVar2 | 0x6001;
  44. }
  45. if (bVar3) {
  46. *(uint *)(param_1 + 120) = uVar2;
  47. }
  48. if (*(int *)(param_1 + 120) << 12 < 0) {
  49. iVar1 = mctl_core_init(param_1);
  50. if (iVar1 == 0) {
  51. return 0;
  52. }
  53. iVar1 = DRAMC_get_dram_size(param_1);
  54. *(uint *)(param_1 + 0x78) = *(uint *)(param_1 + 0x78) & 0xfff7ffff;
  55. if (iVar1 == 4096) {
  56. _DAT_a0000000 = -0x5f5f5f60;
  57. DataSynchronizationBarrier(0xf);
  58. if (true) {
  59. _DAT_a0000000 = 0xa0a0a0a0;
  60. return 1;
  61. }
  62. __format = "[AUTO DEBUG]3GB autoscan enable,dram_tpr13 = %x\n";
  63. *(uint *)(param_1 + 0x78) = *(uint *)(param_1 + 0x78) | 0x10000;
  64. }
  65. else {
  66. if (iVar1 != 2048) {
  67. return 1;
  68. }
  69. _DAT_70000000 = 0x70707070;
  70. DataSynchronizationBarrier(0xf);
  71. if (true) {
  72. _DAT_a0000000 = -0x5f5f5f60;
  73. _DAT_80000000 = 0x80808080;
  74. __usdelay(1);
  75. if (_DAT_a0000000 == -0x5f5f5f60) {
  76. return 1;
  77. }
  78. uVar2 = *(uint *)(param_1 + 120) | 0x50000;
  79. }
  80. else {
  81. uVar2 = *(uint *)(param_1 + 120) | 0x20000;
  82. }
  83. *(uint *)(param_1 + 0x78) = uVar2;
  84. __format = "[AUTO DEBUG]1.5GB autoscan enable,dram_tpr13 = %x\n";
  85. }
  86. printf(__format);
  87. return 1;
  88. }
  89. return 1;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement