diff options
Diffstat (limited to 'board/esd/pci405/writeibm.S')
-rw-r--r-- | board/esd/pci405/writeibm.S | 178 |
1 files changed, 83 insertions, 95 deletions
diff --git a/board/esd/pci405/writeibm.S b/board/esd/pci405/writeibm.S index b08c9ac893..9f5c35b587 100644 --- a/board/esd/pci405/writeibm.S +++ b/board/esd/pci405/writeibm.S @@ -50,186 +50,174 @@ write_without_sync: /* * Write one values to host via pci busmastering - * ptr = 0xc0000000 -> 0x01000000 (PCI) - * *ptr = 0x01234567; + * ptr = 0xc0000000 -> 0x01000000 (PCI) + * *ptr = 0x01234567; */ - addi r31,0,0 - lis r31,0xc000 + addi r31,0,0 + lis r31,0xc000 start1: - lis r0,0x0123 - ori r0,r0,0x4567 - stw r0,0(r31) + lis r0,0x0123 + ori r0,r0,0x4567 + stw r0,0(r31) /* * Read one value back - * ptr = (volatile unsigned long *)addr; - * val = *ptr; + * ptr = (volatile unsigned long *)addr; + * val = *ptr; */ - lwz r0,0(r31) + lwz r0,0(r31) /* * One pci config write - * ibmPciConfigWrite(0x2e, 2, 0x1234); + * ibmPciConfigWrite(0x2e, 2, 0x1234); */ /* subsystem id */ + li r4,0x002C + oris r4,r4,0x8000 + lis r3,0xEEC0 + stwbrx r4,0,r3 + li r5,0x1234 + ori r3,r3,0x4 + stwbrx r5,0,r3 - li r4,0x002C - oris r4,r4,0x8000 - lis r3,0xEEC0 - stwbrx r4,0,r3 - - li r5,0x1234 - ori r3,r3,0x4 - stwbrx r5,0,r3 - - b start1 + b start1 blr /* never reached !!!! */ - - .globl write_with_sync write_with_sync: /* * Write one values to host via pci busmastering - * ptr = 0xc0000000 -> 0x01000000 (PCI) - * *ptr = 0x01234567; + * ptr = 0xc0000000 -> 0x01000000 (PCI) + * *ptr = 0x01234567; */ - addi r31,0,0 - lis r31,0xc000 + addi r31,0,0 + lis r31,0xc000 start2: - lis r0,0x0123 - ori r0,r0,0x4567 - stw r0,0(r31) + lis r0,0x0123 + ori r0,r0,0x4567 + stw r0,0(r31) /* * Read one value back - * ptr = (volatile unsigned long *)addr; - * val = *ptr; + * ptr = (volatile unsigned long *)addr; + * val = *ptr; */ - lwz r0,0(r31) + lwz r0,0(r31) /* * One pci config write - * ibmPciConfigWrite(0x2e, 2, 0x1234); + * ibmPciConfigWrite(0x2e, 2, 0x1234); */ /* subsystem id */ + li r4,0x002C + oris r4,r4,0x8000 + lis r3,0xEEC0 + stwbrx r4,0,r3 + sync + li r5,0x1234 + ori r3,r3,0x4 + stwbrx r5,0,r3 + sync - li r4,0x002C - oris r4,r4,0x8000 - lis r3,0xEEC0 - stwbrx r4,0,r3 - sync - - li r5,0x1234 - ori r3,r3,0x4 - stwbrx r5,0,r3 - sync - - b start2 + b start2 blr /* never reached !!!! */ - .globl write_with_less_sync write_with_less_sync: /* * Write one values to host via pci busmastering - * ptr = 0xc0000000 -> 0x01000000 (PCI) - * *ptr = 0x01234567; + * ptr = 0xc0000000 -> 0x01000000 (PCI) + * *ptr = 0x01234567; */ - addi r31,0,0 - lis r31,0xc000 + addi r31,0,0 + lis r31,0xc000 start2b: - lis r0,0x0123 - ori r0,r0,0x4567 - stw r0,0(r31) + lis r0,0x0123 + ori r0,r0,0x4567 + stw r0,0(r31) /* * Read one value back - * ptr = (volatile unsigned long *)addr; - * val = *ptr; + * ptr = (volatile unsigned long *)addr; + * val = *ptr; */ - lwz r0,0(r31) + lwz r0,0(r31) /* * One pci config write - * ibmPciConfigWrite(0x2e, 2, 0x1234); + * ibmPciConfigWrite(0x2e, 2, 0x1234); */ /* subsystem id */ + li r4,0x002C + oris r4,r4,0x8000 + lis r3,0xEEC0 + stwbrx r4,0,r3 + sync - - li r4,0x002C - oris r4,r4,0x8000 - lis r3,0xEEC0 - stwbrx r4,0,r3 - sync - - li r5,0x1234 - ori r3,r3,0x4 - stwbrx r5,0,r3 + li r5,0x1234 + ori r3,r3,0x4 + stwbrx r5,0,r3 /* sync */ - b start2b + b start2b blr /* never reached !!!! */ - .globl write_with_more_sync write_with_more_sync: /* * Write one values to host via pci busmastering - * ptr = 0xc0000000 -> 0x01000000 (PCI) - * *ptr = 0x01234567; + * ptr = 0xc0000000 -> 0x01000000 (PCI) + * *ptr = 0x01234567; */ - addi r31,0,0 - lis r31,0xc000 + addi r31,0,0 + lis r31,0xc000 start3: - lis r0,0x0123 - ori r0,r0,0x4567 - stw r0,0(r31) - sync + lis r0,0x0123 + ori r0,r0,0x4567 + stw r0,0(r31) + sync /* * Read one value back - * ptr = (volatile unsigned long *)addr; - * val = *ptr; + * ptr = (volatile unsigned long *)addr; + * val = *ptr; */ - lwz r0,0(r31) - sync + lwz r0,0(r31) + sync /* * One pci config write - * ibmPciConfigWrite(0x2e, 2, 0x1234); + * ibmPciConfigWrite(0x2e, 2, 0x1234); */ /* subsystem id (PCIC0_SBSYSVID)*/ + li r4,0x002C + oris r4,r4,0x8000 + lis r3,0xEEC0 + stwbrx r4,0,r3 + sync + li r5,0x1234 + ori r3,r3,0x4 + stwbrx r5,0,r3 + sync - li r4,0x002C - oris r4,r4,0x8000 - lis r3,0xEEC0 - stwbrx r4,0,r3 - sync - - li r5,0x1234 - ori r3,r3,0x4 - stwbrx r5,0,r3 - sync - - b start3 + b start3 blr /* never reached !!!! */ |