Browse Source

run_test_image: stop ABC-bus DMA before loading the test image

We need to stop any DMA before we can load the test image into memory.
H. Peter Anvin 3 years ago
parent
commit
78a68d28ca
2 changed files with 24 additions and 14 deletions
  1. 14 14
      fw/boot.mif
  2. 10 0
      fw/runtest.c

+ 14 - 14
fw/boot.mif

@@ -54,7 +54,7 @@ CONTENT BEGIN
 002F : 00000542;
 0030 : 00000542;
 0031 : 00001556;
-0032 : 41014DB0;
+0032 : 41014DC0;
 0033 : 000000FF;
 0034 : 00005604;
 0035 : 00000000;
@@ -348,7 +348,7 @@ CONTENT BEGIN
 0155 : 872A0C80;
 0156 : 0002A503;
 0157 : 414156B7;
-0158 : DB068393;
+0158 : DC068393;
 0159 : 00E50333;
 015A : 0063FC63;
 015B : C6061141;
@@ -590,12 +590,12 @@ CONTENT BEGIN
 0247 : 98702023;
 0248 : 22236605;
 0249 : 031398B0;
-024A : 24230A86;
+024A : 24230B86;
 024B : 80829860;
 024C : C0102EF3;
 024D : 0E002F83;
 024E : 400012B7;
-024F : 0A828713;
+024F : 0B828713;
 0250 : 41FE87B3;
 0251 : 00FE2023;
 0252 : 98E02023;
@@ -1158,7 +1158,7 @@ CONTENT BEGIN
 047F : CC52D422;
 0480 : 41011A37;
 0481 : 6795CA56;
-0482 : DA8A0A93;
+0482 : DB8A0A93;
 0483 : CE4ED606;
 0484 : 3333C85A;
 0485 : D04A0255;
@@ -1166,7 +1166,7 @@ CONTENT BEGIN
 0487 : 5D478093;
 0488 : 0040AE03;
 0489 : 8B2E89AA;
-048A : DA8A0A13;
+048A : DB8A0A13;
 048B : 00E303B3;
 048C : 3FF3F413;
 048D : 00341493;
@@ -1230,12 +1230,12 @@ CONTENT BEGIN
 04C7 : C39CC3DC;
 04C8 : 0052A223;
 04C9 : 0052A023;
-04CA : DA830793;
+04CA : DB830793;
 04CB : 0FC00393;
 04CC : 10400E13;
 04CD : 08935EFD;
 04CE : 8F130186;
-04CF : A503DA85;
+04CF : A503DB85;
 04D0 : A0230043;
 04D1 : A2230077;
 04D2 : C3C800F3;
@@ -1250,7 +1250,7 @@ CONTENT BEGIN
 04DB : 97C60007;
 04DC : FDE797E3;
 04DD : 410116B7;
-04DE : DA868293;
+04DE : DB868293;
 04DF : 00C28733;
 04E0 : 0052A223;
 04E1 : 0052A023;
@@ -1595,9 +1595,9 @@ CONTENT BEGIN
 0634 : 27F3CEEE;
 0635 : 1437C010;
 0636 : 6B054000;
-0637 : 0A840C13;
+0637 : 0B840C13;
 0638 : 04134481;
-0639 : 0A930A84;
+0639 : 0A930B84;
 063A : 0913740B;
 063B : 09931140;
 063C : 07131100;
@@ -1744,8 +1744,8 @@ CONTENT BEGIN
 06C9 : C06AC266;
 06CA : 8493D606;
 06CB : 84134C04;
-06CC : 49010A87;
-06CD : 0A878A13;
+06CC : 49010B87;
+06CD : 0B878A13;
 06CE : 74098993;
 06CF : 0C134D41;
 06D0 : 8B9307F0;
@@ -5445,7 +5445,7 @@ CONTENT BEGIN
 153E : 40000000;
 153F : 00008000;
 1540 : 00C04000;
-1541 : 40006DA8;
+1541 : 40006DB8;
 1542 : FFFFFFFF;
 1543 : 00000000;
 1544 : 00000000;

+ 10 - 0
fw/runtest.c

@@ -12,8 +12,18 @@ extern const char __dram_test_start[], __dram_test_end[], __dram_test_size[];
 
 extern no_return __start_test(void);
 
+static inline void disable_abcmem(void)
+{
+    volatile uint32_t *pg = &ABCMEMMAP_PAGE(0);
+
+    for (unsigned int addr = 0; addr < 0x10000; addr += 512)
+	*pg++ = 0;
+}
+
 void __dram_text run_test_image(void)
 {
+    disable_abcmem();
+
     disable_irqs();
 
     ROMCOPY_RAMADDR = (size_t)__dram_test_start;