init.S 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. * (C) Copyright 2008
  3. * Feng Kan, Applied Micro Circuits Corp., fkan@amcc.com.
  4. *
  5. * SPDX-License-Identifier: GPL-2.0+
  6. */
  7. #include <ppc_asm.tmpl>
  8. #include <config.h>
  9. #include <asm/mmu.h>
  10. #include <asm/ppc4xx.h>
  11. /**************************************************************************
  12. * TLB TABLE
  13. *
  14. * This table is used by the cpu boot code to setup the initial tlb
  15. * entries. Rather than make broad assumptions in the cpu source tree,
  16. * this table lets each board set things up however they like.
  17. *
  18. * Pointer to the table is returned in r1
  19. *
  20. *************************************************************************/
  21. .section .bootpg,"ax"
  22. .globl tlbtab
  23. tlbtab:
  24. tlbtab_start
  25. /*
  26. * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to use the
  27. * speed up boot process. It is patched after relocation to enable SA_I
  28. */
  29. tlbentry(0xff000000, SZ_16M, 0xff000000, 4, AC_RWX | SA_G)
  30. /*
  31. * TLB entries for SDRAM are not needed on this platform.
  32. * They are dynamically generated in the SPD DDR(2) detection
  33. * routine.
  34. */
  35. /* Although 512 KB, map 256k at a time */
  36. tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x00000000, 4, AC_RWX | SA_I)
  37. tlbentry(CONFIG_SYS_ISRAM_BASE + 0x40000, SZ_256K, 0x00040000, 4, AC_RWX | SA_I)
  38. tlbentry(CONFIG_SYS_OPER_FLASH, SZ_16M, 0xE7000000, 4,AC_RWX | SA_IG)
  39. /*
  40. * Peripheral base
  41. */
  42. tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_16K, 0xEF600000, 4, AC_RW | SA_IG)
  43. tlbentry(CONFIG_SYS_PCIE0_XCFGBASE,SZ_16M, 0x00000000, 0xC, AC_RW | SA_IG)
  44. tlbentry(CONFIG_SYS_PCIE1_XCFGBASE,SZ_16M, 0x10000000, 0xC, AC_RW | SA_IG)
  45. tlbentry(CONFIG_SYS_PCIE2_XCFGBASE,SZ_16M, 0x20000000, 0xC, AC_RW | SA_IG)
  46. tlbentry(CONFIG_SYS_PCIE0_MEMBASE, SZ_256M, 0x00000000, 0xD, AC_RW | SA_IG)
  47. tlbentry(CONFIG_SYS_PCIE1_MEMBASE, SZ_256M, 0x00000000, 0xE, AC_RW | SA_IG)
  48. tlbentry(CONFIG_SYS_PCIE0_REGBASE, SZ_64K, 0x30000000, 0xC, AC_RW | SA_IG)
  49. tlbentry(CONFIG_SYS_PCIE1_REGBASE, SZ_64K, 0x30010000, 0xC, AC_RW | SA_IG)
  50. tlbentry(CONFIG_SYS_PCIE2_REGBASE, SZ_64K, 0x30020000, 0xC, AC_RW | SA_IG)
  51. tlbtab_end