ml300.c 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. /*
  2. * ml300.c: U-Boot platform support for Xilinx ML300 board
  3. *
  4. * Author: Xilinx, Inc.
  5. *
  6. *
  7. * This program is free software; you can redistribute it and/or modify it
  8. * under the terms of the GNU General Public License as published by the
  9. * Free Software Foundation; either version 2 of the License, or (at your
  10. * option) any later version.
  11. *
  12. *
  13. * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A
  14. * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS
  15. * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR STANDARD,
  16. * XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION IS FREE
  17. * FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE FOR OBTAINING
  18. * ANY THIRD PARTY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION.
  19. * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO
  20. * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY
  21. * WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM
  22. * CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND
  23. * FITNESS FOR A PARTICULAR PURPOSE.
  24. *
  25. *
  26. * Xilinx hardware products are not intended for use in life support
  27. * appliances, devices, or systems. Use in such applications is
  28. * expressly prohibited.
  29. *
  30. *
  31. * (c) Copyright 2002-2004 Xilinx Inc.
  32. * All rights reserved.
  33. *
  34. *
  35. * You should have received a copy of the GNU General Public License along
  36. * with this program; if not, write to the Free Software Foundation, Inc.,
  37. * 675 Mass Ave, Cambridge, MA 02139, USA.
  38. *
  39. */
  40. #include <common.h>
  41. #include <asm/processor.h>
  42. #include "xparameters.h"
  43. int
  44. board_pre_init(void)
  45. {
  46. return 0;
  47. }
  48. int
  49. checkboard(void)
  50. {
  51. unsigned char *s = getenv("serial#");
  52. unsigned char *e;
  53. if (!s || strncmp(s, "ML300", 9)) {
  54. printf("### No HW ID - assuming ML300");
  55. } else {
  56. for (e = s; *e; ++e) {
  57. if (*e == ' ')
  58. break;
  59. }
  60. for (; s < e; ++s) {
  61. putc(*s);
  62. }
  63. }
  64. putc('\n');
  65. return (0);
  66. }
  67. long int
  68. initdram(int board_type)
  69. {
  70. return 128 * 1024 * 1024;
  71. }
  72. int
  73. testdram(void)
  74. {
  75. printf("test: xxx MB - ok\n");
  76. return (0);
  77. }
  78. /* implement functions originally in cpu/ppc4xx/speed.c */
  79. void
  80. get_sys_info(sys_info_t * sysInfo)
  81. {
  82. sysInfo->freqProcessor = XPAR_CORE_CLOCK_FREQ_HZ;
  83. /* only correct if the PLB and OPB run at the same frequency */
  84. sysInfo->freqPLB = XPAR_UARTNS550_0_CLOCK_FREQ_HZ;
  85. sysInfo->freqPCI = XPAR_UARTNS550_0_CLOCK_FREQ_HZ / 3;
  86. }
  87. ulong
  88. get_PCI_freq(void)
  89. {
  90. ulong val;
  91. PPC405_SYS_INFO sys_info;
  92. get_sys_info(&sys_info);
  93. val = sys_info.freqPCI;
  94. return val;
  95. }