memorymap: add texture_memory64

This commit is contained in:
Zack Buhman 2023-12-17 23:04:19 +08:00
parent 5c2b45b70d
commit 88b6fa9aae
13 changed files with 23 additions and 20 deletions

View File

@ -11,8 +11,10 @@ modem = 0xa0600000;
aica = 0xa0700000;
aica_rtc = 0xa0710000;
system_boot_rom = 0xa0000000;
aica_wave_memory = 0xa0800000;
texture_memory = 0xa5000000;
texture_memory64 = 0xa4000000;
texture_memory32 = 0xa5000000;
system_memory = 0xac000000;
ta_fifo_polygon_converter = 0x10000000;
ta_fifo_yuv_converter = 0x10800000;

View File

@ -142,7 +142,7 @@ uint32_t transform(uint32_t * ta_parameter_buf, const char * s, const uint32_t l
void init_texture_memory(const struct opb_size& opb_size)
{
volatile texture_memory_alloc * mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory);
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory32);
background_parameter(mem->background);
@ -172,8 +172,8 @@ inline void inflate_character(const uint8_t * src, const uint8_t c)
//serial::character('\n');
}
auto mem = reinterpret_cast<texture_memory_alloc *>(0xa400'0000);
auto texture = reinterpret_cast<uint32_t *>(mem->texture);
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory64);
auto texture = reinterpret_cast<volatile uint32_t *>(mem->texture);
uint32_t offset = 8 * 8 * character_index;
union {

View File

@ -77,7 +77,7 @@ uint32_t transform(uint32_t * ta_parameter_buf,
void init_texture_memory(const struct opb_size& opb_size)
{
volatile texture_memory_alloc * mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory);
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory32);
background_parameter(mem->background);
@ -93,7 +93,7 @@ void copy_macaw_texture()
{
auto src = reinterpret_cast<const uint8_t *>(&_binary_macaw_data_start);
auto size = reinterpret_cast<const uint32_t>(&_binary_macaw_data_size);
auto mem = reinterpret_cast<texture_memory_alloc *>(0xa400'0000);
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory64);
for (uint32_t px = 0; px < size / 3; px++) {
uint8_t r = src[px * 3 + 0];
uint8_t g = src[px * 3 + 1];

View File

@ -109,7 +109,7 @@ void transform(ta_parameter_writer& parameter,
void init_texture_memory(const struct opb_size& opb_size)
{
volatile texture_memory_alloc * mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory);
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory32);
background_parameter(mem->background);
@ -125,7 +125,7 @@ void copy_macaw_texture()
{
auto src = reinterpret_cast<const uint8_t *>(&_binary_macaw_data_start);
auto size = reinterpret_cast<const uint32_t>(&_binary_macaw_data_size);
auto mem = reinterpret_cast<texture_memory_alloc *>(0xa400'0000);
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory64);
for (uint32_t px = 0; px < size / 3; px++) {
uint8_t r = src[px * 3 + 0];
uint8_t g = src[px * 3 + 1];

View File

@ -84,7 +84,7 @@ uint32_t transform(uint32_t * ta_parameter_buf,
void init_texture_memory(uint32_t render_passes)
{
volatile texture_memory_alloc * mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory);
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory32);
background_parameter(mem->background);
@ -104,7 +104,7 @@ void main()
auto src = reinterpret_cast<const uint8_t *>(&_binary_macaw_data_start);
auto size = reinterpret_cast<const uint32_t>(&_binary_macaw_data_size);
auto mem = reinterpret_cast<texture_memory_alloc *>(0xa400'0000);
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory64);
for (uint32_t px = 0; px < size / 3; px++) {
uint8_t r = src[px * 3 + 0];
uint8_t g = src[px * 3 + 1];

View File

@ -82,7 +82,7 @@ uint32_t transform(uint32_t * ta_parameter_buf,
void init_texture_memory(const struct opb_size& opb_size)
{
volatile texture_memory_alloc * mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory);
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory32);
background_parameter(mem->background);
@ -102,7 +102,7 @@ void main()
auto src = reinterpret_cast<const uint8_t *>(&_binary_macaw_data_start);
auto size = reinterpret_cast<const uint32_t>(&_binary_macaw_data_size);
auto mem = reinterpret_cast<texture_memory_alloc *>(0xa400'0000);
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory64);
uint16_t temp[size / 3];
for (uint32_t px = 0; px < size / 3; px++) {

View File

@ -55,7 +55,7 @@ uint32_t transform(uint32_t * ta_parameter_buf)
void init_texture_memory(const struct opb_size& opb_size)
{
volatile texture_memory_alloc * mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory);
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory32);
background_parameter(mem->background);

View File

@ -95,7 +95,7 @@ uint32_t transform(uint32_t * ta_parameter_buf,
void init_texture_memory(const struct opb_size& opb_size)
{
volatile texture_memory_alloc * mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory);
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory32);
background_parameter(mem->background);
@ -115,7 +115,7 @@ void main()
auto src = reinterpret_cast<const uint8_t *>(&_binary_macaw_data_start);
auto size = reinterpret_cast<const uint32_t>(&_binary_macaw_data_size);
auto mem = reinterpret_cast<texture_memory_alloc *>(0xa400'0000);
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory64);
for (uint32_t px = 0; px < size / 3; px++) {
uint8_t r = src[px * 3 + 0];
uint8_t g = src[px * 3 + 1];

View File

@ -2,7 +2,8 @@
extern volatile uint32_t system_boot_rom[0x200000] __asm("system_boot_rom");
extern volatile uint32_t aica_wave_memory[0x200000] __asm("aica_wave_memory");
extern volatile uint32_t texture_memory[0x800000] __asm("texture_memory");
extern volatile uint32_t texture_memory64[0x800000] __asm("texture_memory64");
extern volatile uint32_t texture_memory32[0x800000] __asm("texture_memory32");
extern volatile uint32_t system_memory[0x1000000] __asm("system_memory");
extern volatile uint32_t ta_fifo_polygon_converter[0x800000] __asm("ta_fifo_polygon_converter");
extern volatile uint32_t ta_fifo_yuv_converter[0x800000] __asm("ta_fifo_yuv_converter");

View File

@ -17,8 +17,8 @@
"0","0x01000000","0x01FFFFFF","External Device","16MB",,
"0","0x02000000","0x03FFFFFF","Mirror of 0x00000000 - 0x1FFFFFFF","32MB",,
,,,,,,
"1","0x04000000","0x04FFFFFF","Texture memory 64bit access","8MB",,
"1","0x05000000","0x05FFFFFF","Texture memory 32bit access","8MB",,"texture_memory"
"1","0x04000000","0x04FFFFFF","Texture memory 64bit access","8MB",,"texture_memory64"
"1","0x05000000","0x05FFFFFF","Texture memory 32bit access","8MB",,"texture_memory32"
"1","0x06000000","0x06FFFFFF","Mirror of 0x04000000 - 0x06FFFFFF","32MB",,
,,,,,,
"2","0x08000000","0x0bffffff","Unassigned","-",,

1 area start end function size access name
17 0 0x01000000 0x01FFFFFF External Device 16MB
18 0 0x02000000 0x03FFFFFF Mirror of 0x00000000 - 0x1FFFFFFF 32MB
19
20 1 0x04000000 0x04FFFFFF Texture memory 64bit access 8MB texture_memory64
21 1 0x05000000 0x05FFFFFF Texture memory 32bit access 8MB texture_memory texture_memory32
22 1 0x06000000 0x06FFFFFF Mirror of 0x04000000 - 0x06FFFFFF 32MB
23
24 2 0x08000000 0x0bffffff Unassigned -

Binary file not shown.

View File

@ -58,7 +58,7 @@ static_assert(from_xy(0b000, 0b110) == 20);
static_assert(from_xy(0b000, 0b111) == 21);
template <typename T>
void texture(T * dst, const T * src, const uint32_t width, const uint32_t height)
void texture(volatile T * dst, const T * src, const uint32_t width, const uint32_t height)
{
for (uint32_t y = 0; y < height; y++) {
for (uint32_t x = 0; x < width; x++) {

View File

@ -146,7 +146,7 @@ void vga()
void vga_fill_framebuffer()
{
volatile uint16_t * vram = reinterpret_cast<volatile uint16_t *>(texture_memory);
volatile uint16_t * vram = reinterpret_cast<volatile uint16_t *>(texture_memory32);
for (int y = 0; y < 480; y++) {
for (int x = 0; x < 640; x++) {
struct hsv hsv = {(y * 255) / 480, 255, 255};