summaryrefslogtreecommitdiff
path: root/platform/wavelet3d/host_sw/main.c
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2024-05-23 20:24:51 -0600
committerAlejandro Soto <alejandro@34project.org>2024-05-24 05:58:44 -0600
commitc2d178577ae7d9272d7aff35895a36aefe626eca (patch)
tree1c8ef89df743f01db9e108dc10f559bae5a10ce6 /platform/wavelet3d/host_sw/main.c
parenta148430ae145d99ba50a87b6147fa0e6e81cb258 (diff)
platform/wavelet3d/host_sw: implement firmware loading
Diffstat (limited to 'platform/wavelet3d/host_sw/main.c')
-rw-r--r--platform/wavelet3d/host_sw/main.c69
1 files changed, 2 insertions, 67 deletions
diff --git a/platform/wavelet3d/host_sw/main.c b/platform/wavelet3d/host_sw/main.c
index 5dfedce..7513c4c 100644
--- a/platform/wavelet3d/host_sw/main.c
+++ b/platform/wavelet3d/host_sw/main.c
@@ -1,72 +1,7 @@
-#include <stdio.h>
-
-struct gfx_hw_id
-{
- unsigned patch : 8;
- unsigned minor : 8;
- unsigned major : 8;
- unsigned rsvd : 8;
-};
-
-struct gfx_fw_id
-{
- unsigned build : 10;
- unsigned day : 5;
- unsigned month : 4;
- unsigned year : 12;
- unsigned rsvd : 1;
-};
-
-#define GFX_CTRL_BASE 0x20000000
-#define GFX_CTRL_MAGIC (*(volatile unsigned *)(GFX_CTRL_BASE + 0x00))
-#define GFX_CTRL_HW_ID (*(volatile struct gfx_hw_id *)(GFX_CTRL_BASE + 0x04))
-#define GFX_CTRL_FW_ID (*(volatile struct gfx_fw_id *)(GFX_CTRL_BASE + 0x08))
-#define GFX_CTRL_HOSTIF_REV (*(volatile unsigned *)(GFX_CTRL_BASE + 0x0c))
-
-#define GFX_MAGIC_ID 0x4a7a7b0c
+#include "init.h"
int main()
{
- printf("gfx: probing 0x%08x\n", GFX_CTRL_BASE);
-
- unsigned magic = GFX_CTRL_MAGIC;
- printf("gfx: magic=0x%08x\n", magic);
-
- if (magic != GFX_MAGIC_ID)
- printf("gfx: bad magic, probe failed\n");
-
- printf("gfx: magic ok\n");
-
- struct gfx_hw_id hw_id = GFX_CTRL_HW_ID;
- struct gfx_fw_id fw_id = GFX_CTRL_FW_ID;
- unsigned hostif_rev = GFX_CTRL_HOSTIF_REV;
-
- printf
- (
- "gfx: 3D graphics accelerator IP core v%u.%u.%u\n",
- hw_id.major, hw_id.minor, hw_id.patch
- );
-
- switch (hostif_rev) {
- case 0:
- printf("gfx: scheduler is in bootloader rom\n");
- break;
-
- case 1:
- printf("gfx: detected regmap revision %u\n", hostif_rev);
- break;
-
- default:
- printf("gfx: unknown regmap revision %u\n", hostif_rev);
- break;
- }
-
- printf
- (
- "gfx: %s rev %u.%u.%02u #%02u\n",
- hostif_rev ? "firmware" : "bootloader",
- fw_id.year, fw_id.month, fw_id.day, fw_id.build
- );
-
+ init();
return 0;
}