23 |
|
|
24 |
#include "debug/tracers.h" |
#include "debug/tracers.h" |
25 |
#include "nvram.h" |
#include "nvram.h" |
26 |
|
#include "cpu/cpu.h" |
27 |
|
|
28 |
#define NVRAM_IMAGE_SIZE 0x2000 |
#define NVRAM_IMAGE_SIZE 0x2000 |
29 |
#define NVRAM_FREE_PARTITION_NAME "wwwwwwwwwwww" |
#define NVRAM_FREE_PARTITION_NAME "wwwwwwwwwwww" |
48 |
{ |
{ |
49 |
uint8 d = (uint8) data; |
uint8 d = (uint8) data; |
50 |
addr -= IO_NVRAM_PA_START; |
addr -= IO_NVRAM_PA_START; |
51 |
IO_NVRAM_TRACE("write(%d): %08x at %08x (from @%08x, lr: %08x)\n", size, data, addr, gCPU.pc, gCPU.lr); |
IO_NVRAM_TRACE("write(%d): %08x at %08x (from @%08x, lr: %08x)\n", size, data, addr, ppc_cpu_get_pc(0), ppc_cpu_get_lr(0)); |
52 |
if (addr & 0xf) IO_NVRAM_ERR("address not aligned\n"); |
if (addr & 0xf) IO_NVRAM_ERR("address not aligned\n"); |
53 |
addr >>= 4; |
addr >>= 4; |
54 |
if (addr >= NVRAM_IMAGE_SIZE) IO_NVRAM_ERR("out of bounds\n"); |
if (addr >= NVRAM_IMAGE_SIZE) IO_NVRAM_ERR("out of bounds\n"); |
62 |
{ |
{ |
63 |
uint8 d = 0; |
uint8 d = 0; |
64 |
addr -= IO_NVRAM_PA_START; |
addr -= IO_NVRAM_PA_START; |
65 |
IO_NVRAM_TRACE("read(%d): at %08x (from @%08x, lr: %08x)\n", size, addr, gCPU.pc, gCPU.lr); |
IO_NVRAM_TRACE("read(%d): at %08x (from @%08x, lr: %08x)\n", size, addr, ppc_cpu_get_pc(0), ppc_cpu_get_lr(0)); |
66 |
if (addr & 0xf) IO_NVRAM_ERR("address not aligned\n"); |
if (addr & 0xf) IO_NVRAM_ERR("address not aligned\n"); |
67 |
addr >>= 4; |
addr >>= 4; |
68 |
if (addr >= NVRAM_IMAGE_SIZE) IO_NVRAM_ERR("out of bounds\n"); |
if (addr >= NVRAM_IMAGE_SIZE) IO_NVRAM_ERR("out of bounds\n"); |