; The default SDRAM type is 4M x 32 bits, it needs to be checked.<br /> LDR r0, =0x0<br /> STR r0, [r0]<br /> LDR r1, =0x00800000<br /> LDR r2, =0x12345678<br /> STR r2, [r1]<br /> LDR r3, [r0]<br /> CMP r2, r3<br /> LDREQ r0, =0xFFF01008<br /> LDREQ r1, =0x000090E3<br /> STREQ r1, [r0], #4<br /> LDREQ r1, =0x010090E3<br /> STREQ r1, [r0] <br /> <br /> ; check memory type (only check if 1Mx16x2 SDRAM type)<br /> LDR r0,=0x0<br /> STR r0,[r0]<br /> LDR r0,=0x800<br /> LDR r1,=0x12345678<br /> STR r1,[r0]<br /> LDR r0,=0x0<br /> LDR r2,[r0]<br /> CMP r1,r2<br /> LDREQ r0,=0xFFF01008 ;sdconf0<br /> LDREQ r1,=0x00009062<br /> STREQ r1, [r0], #4<br /> LDREQ r1,=0x00809062<br /> STREQ r1, [r0] <br /><br /><br /> ; check bank 1 (check if the SDRAM existed in bank 1)<br /> LDR r0, =0xFFF0100C<br /> LDR r1, [r0]<br /> LDR r2, =0xFFF80000<br /> AND r2, r2, r1<br /> MOV r2, r2, lsr #1<br /> MOV r0, #0<br /> STR r0, [r2]<br /> LDR r0, [r2]<br /> LDR r0, =0xAABBCCDD<br /> STR r0, [r2]<br /> LDR r1, [r2, #0xc]<br /> LDR r1, [r2]<br /> CMP r0, r1<br /> LDRNE r0, =0xFFF0100C<br /> MOVNE r1, #0<br /> STRNE r1, [r0]<br /> |
|