diff --git a/fusee/fusee-primary/src/display/video_fb.h b/fusee/fusee-primary/src/display/video_fb.h index 35aadd528..ebedc0626 100644 --- a/fusee/fusee-primary/src/display/video_fb.h +++ b/fusee/fusee-primary/src/display/video_fb.h @@ -28,7 +28,7 @@ #define CONSOLE_FG_COL 0xa0 /* Try using the small font */ -//#define CONFIG_VIDEO_FONT_SMALL +#define CONFIG_VIDEO_FONT_SMALL /* * Graphic Data Format (GDF) bits for VIDEO_DATA_FORMAT diff --git a/fusee/fusee-primary/src/sdmmc.c b/fusee/fusee-primary/src/sdmmc.c index c023f6a71..c2ef8f7c6 100644 --- a/fusee/fusee-primary/src/sdmmc.c +++ b/fusee/fusee-primary/src/sdmmc.c @@ -1278,7 +1278,7 @@ static int sdmmc_handle_cpu_transfer(struct mmc *mmc, uint16_t blocks, bool is_w // Handle unaligned buffers uint32_t w; uint8_t *data = (uint8_t *)buffer; - w = data[0] | (data[1] << 8) | (data[2] << 16) | (data[3] << 24); + memcpy(&w, data, 4); mmc->regs->buffer = w; } else { mmc->regs->buffer = *buffer; @@ -1288,10 +1288,7 @@ static int sdmmc_handle_cpu_transfer(struct mmc *mmc, uint16_t blocks, bool is_w // Handle unaligned buffers uint32_t w = mmc->regs->buffer; uint8_t *data = (uint8_t *)buffer; - data[0] = w & 0xFF; - data[1] = (w >> 8) & 0xFF; - data[2] = (w >> 16) & 0xFF; - data[3] = (w >> 24) & 0xFF; + memcpy(&w, data, 4); } else { *buffer = mmc->regs->buffer; } diff --git a/fusee/fusee-secondary/src/nxboot.c b/fusee/fusee-secondary/src/nxboot.c index 21258b1c1..06c40ee83 100644 --- a/fusee/fusee-secondary/src/nxboot.c +++ b/fusee/fusee-secondary/src/nxboot.c @@ -90,7 +90,7 @@ void nxboot_main(void) { generic_panic(); } } else { -#ifdef I_KNOW_WHAT_IM_DOING_2 +#ifndef I_KNOW_WHAT_IM_DOING_2 pk2file = fopen("bcpkg21:/", "rb"); if (pk2file == NULL || fseek(pk2file, 0x4000, SEEK_SET) != 0) { printf("Error: Failed to open Package2 from NAND: %s!\n", strerror(errno)); @@ -114,22 +114,12 @@ void nxboot_main(void) { printf("Error: Package2 is too big or too small!\n"); generic_panic(); } -/* + if (fread(package2->data, package2_size - sizeof(package2_header_t), 1, pk2file) < 1) { printf("Error: Failed to read Package2!\n"); generic_panic(); } -*/ - for (size_t i = 0; i < package2_size - sizeof(package2_header_t); i += 512*32) { - /* TODO: check if we have read everything, eventually. */ - size_t r = fread(package2->data + i, 1, 512, pk2file); - if (r == 0) { - printf("Error: Failed to read Package2!\n"); - generic_panic(); - } else if (r < 512) { - break; - } - } + fclose(pk2file); printf("Read package2!\n"); diff --git a/fusee/fusee-secondary/src/sdmmc.c b/fusee/fusee-secondary/src/sdmmc.c index d71b2a2e3..c2ef8f7c6 100644 --- a/fusee/fusee-secondary/src/sdmmc.c +++ b/fusee/fusee-secondary/src/sdmmc.c @@ -824,7 +824,7 @@ static int sdmmc1_switch_to_low_voltage(struct mmc *mmc) */ static int sdmmc_always_fail(struct mmc *mmc) { - // This card + // This card return ENOSYS; } @@ -1157,6 +1157,10 @@ static int sdmmc_wait_for_interrupt(struct mmc *mmc, // Finally, EOI the relevant interrupt. mmc->regs->int_status |= fault_conditions; + + // Reset the timebase, so it applies to the next + // DMA interval. + timebase = get_time(); } if (mmc->regs->int_status & target_irq) @@ -1637,7 +1641,7 @@ static int sdmmc_send_app_command(struct mmc *mmc, enum sdmmc_command command, } // And issue the body of the command. - return sdmmc_send_command(mmc, command, response_type, checks, argument, response_buffer, + return sdmmc_send_command(mmc, command, response_type, checks, argument, response_buffer, blocks_to_transfer, false, auto_terminate, data_buffer); } @@ -1959,7 +1963,7 @@ static int sdmmc_optimize_transfer_mode(struct mmc *mmc) } // TODO: step up into high speed modes - + return 0; }