allwinner_a20.pp 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. unit allwinner_a20;
  2. {$goto on}
  3. interface
  4. const
  5. SRAM_A1_Base = $00000000;
  6. SRAM_A2_Base = $00004000;
  7. SRAM_A3_Base = $00008000;
  8. SRAM_A4_Base = $0000B400;
  9. SRAM_D_Base = $00010000;
  10. SRAM_B_Secure_Base = $00020000;
  11. SRAM_Controller_Base = $01C00000;
  12. DRAM_Controller_Base = $01C01000;
  13. DMA_Base = $01C02000;
  14. NAND_Flash_Base = $01C03000;
  15. Transport_Stream_Base = $01C04000;
  16. SPI_0_Base = $01C05000;
  17. SPI_1_Base = $01C06000;
  18. Memory_Stick_Base = $01C07000;
  19. TVD_Base = $01C08000;
  20. CSI_0_Base = $01C09000;
  21. TVE_0_Base = $01C0A000;
  22. EMAC_Base = $01C0B000;
  23. LCD_0_Base = $01C0C000;
  24. LCD_1_Base = $01C0D000;
  25. Video_Engine_Base = $01C0E000;
  26. SD_MMC_0_Base = $01C0F000;
  27. SD_MMC_1_Base = $01C10000;
  28. SD_MMC_2_Base = $01C11000;
  29. SD_MMC_3_Base = $01C12000;
  30. USB_0_Base = $01C13000;
  31. USB_1_Base = $01C14000;
  32. Security_System_Base = $01C15000;
  33. HDMI_Base = $01C16000;
  34. SPI_2_Base = $01C17000;
  35. SATA_Base = $01C18000;
  36. PATA_Base = $01C19000;
  37. ACE_Base = $01C1A000;
  38. TVE_1_Base = $01C1B000;
  39. USB_2_Base = $01C1C000;
  40. CSI_1_Base = $01C1D000;
  41. SPI3_Base = $01C1F000;
  42. CCU_Base = $01C20000;
  43. Interrupt_Base = $01C20400;
  44. PIO_Base = $01C20800;
  45. Timer_Base = $01C20C00;
  46. SPDIF_Base = $01C21000;
  47. AC97_Base = $01C21400;
  48. IR0_Base = $01C21800;
  49. IR_1_Base = $01C21C00;
  50. IIS_1_Base = $01C22000;
  51. IIS_0_Base = $01C22400;
  52. LRADC_0_1_Base = $01C22800;
  53. AD_DA_Base = $01C22C00;
  54. Keypad_Base = $01C23000;
  55. SID_Base = $01C23800;
  56. SJTAG_Base = $01C23C00;
  57. IIS_2_Base = $01C24400;
  58. TP_Base = $01C25000;
  59. PMU_Base = $01C25400;
  60. CPU_Configuration_Base = $01C25C00;
  61. UART_0_Base = $01C28000;
  62. UART_1_Base = $01C28400;
  63. UART_2_Base = $01C28800;
  64. UART_3_Base = $01C28C00;
  65. UART_4_Base = $01C29000;
  66. UART_5_Base = $01C29400;
  67. UART_6_Base = $01C29800;
  68. UART_7_Base = $01C29C00;
  69. PS2_0_Base = $01C2A000;
  70. PS2_1_Base = $01C2A400;
  71. TWI_0_Base = $01C2AC00;
  72. TWI_1_Base = $01C2B000;
  73. TWI_2_Base = $01C2B400;
  74. TWI_3_Base = $01C2B800;
  75. CAN_Base = $01C2BC00;
  76. TWI_4_Base = $01C2C000;
  77. Smart_Card_Reader_Base = $01C2C400;
  78. GPS_Base = $01C30000;
  79. Mali400_Base = $01C40000;
  80. GMAC_Base = $01C50000;
  81. HSTIMER_Base = $01C60000;
  82. GIC_Registers_Base = $01C80000;
  83. HDMI1_Base = $01CE0000;
  84. CPUBIST_Base = $3F501000;
  85. SRAM_C_Base = $01D00000;
  86. DE_FE0_Base = $01E00000;
  87. DE_FE1_Base = $01E20000;
  88. DE_BE0_Base = $01E60000;
  89. DE_BE1_Base = $01E40000;
  90. MP_Base = $01E80000;
  91. AVG_Base = $01EA0000;
  92. CoreSight_Debug_Module_Base = $3F500000;
  93. DDR_Base = $40000000;
  94. BROM_Base = $FFFF0000;
  95. implementation
  96. procedure _FPC_haltproc; assembler; nostackframe; public name '_haltproc';
  97. asm
  98. .Lhalt:
  99. b .Lhalt
  100. end;
  101. {$ifndef CUSTOM_ENTRY}
  102. procedure PASCALMAIN; external name 'PASCALMAIN';
  103. var
  104. _stack_top: record end; external name '_stack_top';
  105. procedure _FPC_start; assembler; nostackframe;
  106. label
  107. _start;
  108. asm
  109. .init
  110. .align 16
  111. .globl _start
  112. _start:
  113. ldr r0,.L_stack_top
  114. bl PASCALMAIN
  115. bl _FPC_haltproc
  116. .L_stack_top:
  117. .long _stack_top
  118. .text
  119. end;
  120. {$endif CUSTOM_ENTRY}
  121. end.