allwinner_a20.pp 3.5 KB

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