From 8eb5ee867d1c65828dc7aee3af304f72fae195d9 Mon Sep 17 00:00:00 2001 From: "ctcaer@gmail.com" Date: Sun, 21 Apr 2019 17:33:39 +0300 Subject: [PATCH] [GFX] Finish ctxt global usage Plus: - Some whitespace fixes - Allow UHS bus to reach max 102MB/s from 81.6MB/s --- bootloader/frontend/fe_emmc_tools.c | 2 +- bootloader/frontend/fe_info.c | 10 +++++----- bootloader/frontend/fe_tools.c | 1 + bootloader/gfx/gfx.c | 6 +++--- bootloader/gfx/gfx.h | 6 +++--- bootloader/hos/hos.c | 6 +++--- bootloader/libs/elfload/elfload.h | 2 +- bootloader/soc/clock.c | 2 +- bootloader/soc/fuse.c | 18 +++++++++--------- bootloader/storage/sdmmc.c | 18 +++++++++--------- bootloader/storage/sdmmc_driver.c | 2 +- 11 files changed, 37 insertions(+), 36 deletions(-) diff --git a/bootloader/frontend/fe_emmc_tools.c b/bootloader/frontend/fe_emmc_tools.c index 0b9b2a3..f3c77d2 100644 --- a/bootloader/frontend/fe_emmc_tools.c +++ b/bootloader/frontend/fe_emmc_tools.c @@ -612,7 +612,7 @@ static int _restore_emmc_part(char *sd_path, sdmmc_storage_t *storage, emmc_part gfx_con_getpos(&gfx_con.savedx, &gfx_con.savedy); - bool use_multipart = false; + bool use_multipart = false; if (allow_multi_part) { diff --git a/bootloader/frontend/fe_info.c b/bootloader/frontend/fe_info.c index 0b485b7..24d776d 100644 --- a/bootloader/frontend/fe_info.c +++ b/bootloader/frontend/fe_info.c @@ -248,16 +248,16 @@ void print_mmc_info() gfx_printf("%keMMC Partitions:%k\n", 0xFF00DDFF, 0xFFCCCCCC); gfx_printf(" 1: %kBOOT0 %k\n Size: %5d KiB (LBA Sectors: 0x%07X)\n", 0xFF96FF00, 0xFFCCCCCC, boot_size / 1024, boot_size / 1024 / 512); - gfx_put_small_sep(&gfx_con); + gfx_put_small_sep(); gfx_printf(" 2: %kBOOT1 %k\n Size: %5d KiB (LBA Sectors: 0x%07X)\n", 0xFF96FF00, 0xFFCCCCCC, boot_size / 1024, boot_size / 1024 / 512); - gfx_put_small_sep(&gfx_con); + gfx_put_small_sep(); gfx_printf(" 3: %kRPMB %k\n Size: %5d KiB (LBA Sectors: 0x%07X)\n", 0xFF96FF00, 0xFFCCCCCC, rpmb_size / 1024, rpmb_size / 1024 / 512); - gfx_put_small_sep(&gfx_con); + gfx_put_small_sep(); gfx_printf(" 0: %kGPP (USER) %k\n Size: %5d MiB (LBA Sectors: 0x%07X)\n\n", 0xFF96FF00, 0xFFCCCCCC, storage.sec_cnt >> SECTORS_TO_MIB_COEFF, storage.sec_cnt); - gfx_put_small_sep(&gfx_con); + gfx_put_small_sep(); gfx_printf("%kGPP (eMMC USER) partition table:%k\n", 0xFF00DDFF, 0xFFCCCCCC); sdmmc_storage_set_mmc_partition(&storage, 0); @@ -269,7 +269,7 @@ void print_mmc_info() gfx_printf(" %02d: %k%s%k\n Size: % 5d MiB (LBA Sectors 0x%07X)\n LBA Range: %08X-%08X\n", gpp_idx++, 0xFFAEFD14, part->name, 0xFFCCCCCC, (part->lba_end - part->lba_start + 1) >> SECTORS_TO_MIB_COEFF, part->lba_end - part->lba_start + 1, part->lba_start, part->lba_end); - gfx_put_small_sep(&gfx_con); + gfx_put_small_sep(); } nx_emmc_gpt_free(&gpt); } diff --git a/bootloader/frontend/fe_tools.c b/bootloader/frontend/fe_tools.c index a457b8e..e3766bc 100644 --- a/bootloader/frontend/fe_tools.c +++ b/bootloader/frontend/fe_tools.c @@ -588,6 +588,7 @@ void fix_sd_nin_attr() { _fix_sd_attr(1); } #include "../soc/fuse.h" #include "../soc/clock.h" +mtc_config_t mtc_cfg; void minerva() { gfx_clear_partial_grey(0x1B, 0, 1256); diff --git a/bootloader/gfx/gfx.c b/bootloader/gfx/gfx.c index 3b42fe7..a98512f 100644 --- a/bootloader/gfx/gfx.c +++ b/bootloader/gfx/gfx.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2018 naehrwert - * Copyright (C) 2018 CTCaer + * Copyright (C) 2018-2019 CTCaer * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -297,7 +297,7 @@ static void _gfx_putn(u32 v, int base, char fill, int fcnt) gfx_puts(p); } -void gfx_put_small_sep(gfx_con_t *con) +void gfx_put_small_sep() { u8 prevFontSize = gfx_con.fntsz; gfx_con.fntsz = 8; @@ -305,7 +305,7 @@ void gfx_put_small_sep(gfx_con_t *con) gfx_con.fntsz = prevFontSize; } -void gfx_put_big_sep(gfx_con_t *con) +void gfx_put_big_sep() { u8 prevFontSize = gfx_con.fntsz; gfx_con.fntsz = 16; diff --git a/bootloader/gfx/gfx.h b/bootloader/gfx/gfx.h index 6e4137d..94cb0ed 100644 --- a/bootloader/gfx/gfx.h +++ b/bootloader/gfx/gfx.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2018 naehrwert - * Copyright (C) 2018 CTCaer + * Copyright (C) 2018-2019 CTCaer * Copyright (C) 2018 M4xw * * This program is free software; you can redistribute it and/or modify it @@ -41,8 +41,8 @@ void gfx_hexdump(u32 base, const u8 *buf, u32 len); void gfx_set_pixel(u32 x, u32 y, u32 color); void gfx_line(int x0, int y0, int x1, int y1, u32 color); -void gfx_put_small_sep(gfx_con_t *con); -void gfx_put_big_sep(gfx_con_t *con); +void gfx_put_small_sep(); +void gfx_put_big_sep(); void gfx_set_rect_grey(const u8 *buf, u32 size_x, u32 size_y, u32 pos_x, u32 pos_y); void gfx_set_rect_rgb(const u8 *buf, u32 size_x, u32 size_y, u32 pos_x, u32 pos_y); void gfx_set_rect_argb(const u32 *buf, u32 size_x, u32 size_y, u32 pos_x, u32 pos_y); diff --git a/bootloader/hos/hos.c b/bootloader/hos/hos.c index 4d17bec..56a3696 100644 --- a/bootloader/hos/hos.c +++ b/bootloader/hos/hos.c @@ -87,7 +87,7 @@ static const u8 master_keyseed_4xx_5xx_610[0x10] = { 0x2D, 0xC1, 0xF4, 0x8D, 0xF3, 0x5B, 0x69, 0x33, 0x42, 0x10, 0xAC, 0x65, 0xDA, 0x90, 0x46, 0x66 }; static const u8 master_keyseed_620[0x10] = - { 0x37, 0x4B, 0x77, 0x29, 0x59, 0xB4, 0x04, 0x30, 0x81, 0xF6, 0xE5, 0x8C, 0x6D, 0x36, 0x17, 0x9A }; + { 0x37, 0x4B, 0x77, 0x29, 0x59, 0xB4, 0x04, 0x30, 0x81, 0xF6, 0xE5, 0x8C, 0x6D, 0x36, 0x17, 0x9A }; static const u8 console_keyseed_4xx_5xx[0x10] = { 0x0C, 0x91, 0x09, 0xDB, 0x93, 0x93, 0x07, 0x81, 0x07, 0x3C, 0xC4, 0x16, 0x22, 0x7C, 0x6C, 0x28 }; @@ -132,7 +132,7 @@ void _pmc_scratch_lock(u32 kb) case KB_FIRMWARE_VERSION_100_200: case KB_FIRMWARE_VERSION_300: case KB_FIRMWARE_VERSION_301: - PMC(APBDEV_PMC_SEC_DISABLE) = 0x7FFFF3; + PMC(APBDEV_PMC_SEC_DISABLE) = 0x7FFFF3; PMC(APBDEV_PMC_SEC_DISABLE2) = 0xFFFFFFFF; PMC(APBDEV_PMC_SEC_DISABLE3) = 0xFFAFFFFF; PMC(APBDEV_PMC_SEC_DISABLE4) = 0xFFFFFFFF; @@ -657,7 +657,7 @@ int hos_launch(ini_sec_t *cfg) // Wait for secmon to get ready. if (smmu_is_used()) smmu_exit(); - else + else cluster_boot_cpu0(ctxt.pkg1_id->secmon_base); while (!secmon_mb->out) usleep(1); // This only works when in IRAM or with a trained DRAM. diff --git a/bootloader/libs/elfload/elfload.h b/bootloader/libs/elfload/elfload.h index 4f7418b..a261708 100644 --- a/bootloader/libs/elfload/elfload.h +++ b/bootloader/libs/elfload/elfload.h @@ -27,7 +27,7 @@ #ifdef DEBUG #include "../../gfx/gfx.h" #define EL_DEBUG(format, ...) \ - gfx_printf(&gfx_con, format __VA_OPT__(, ) __VA_ARGS__) + gfx_printf(format __VA_OPT__(, ) __VA_ARGS__) #else #define EL_DEBUG(...) \ do \ diff --git a/bootloader/soc/clock.c b/bootloader/soc/clock.c index 26808e2..46a1929 100644 --- a/bootloader/soc/clock.c +++ b/bootloader/soc/clock.c @@ -467,7 +467,7 @@ void clock_sdmmc_get_params(u32 *pout, u16 *pdivisor, u32 type) case 3: case 4: case 11: - *pout = 200000; + *pout = 208000; *pdivisor = 1; break; case 5: diff --git a/bootloader/soc/fuse.c b/bootloader/soc/fuse.c index 38f63e9..25044fb 100644 --- a/bootloader/soc/fuse.c +++ b/bootloader/soc/fuse.c @@ -62,19 +62,19 @@ u32 fuse_read_odm(u32 idx) void fuse_wait_idle() { - u32 ctrl; - do - { - ctrl = FUSE(FUSE_CTRL); - } while (((ctrl >> 16) & 0x1f) != 4); + u32 ctrl; + do + { + ctrl = FUSE(FUSE_CTRL); + } while (((ctrl >> 16) & 0x1f) != 4); } u32 fuse_read(u32 addr) { - FUSE(FUSE_ADDR) = addr; - FUSE(FUSE_CTRL) = (FUSE(FUSE_ADDR) & ~FUSE_CMD_MASK) | FUSE_READ; - fuse_wait_idle(); - return FUSE(FUSE_RDATA); + FUSE(FUSE_ADDR) = addr; + FUSE(FUSE_CTRL) = (FUSE(FUSE_ADDR) & ~FUSE_CMD_MASK) | FUSE_READ; + fuse_wait_idle(); + return FUSE(FUSE_RDATA); } void fuse_read_array(u32 *words) diff --git a/bootloader/storage/sdmmc.c b/bootloader/storage/sdmmc.c index 69a6a18..ca1dfb07 100644 --- a/bootloader/storage/sdmmc.c +++ b/bootloader/storage/sdmmc.c @@ -23,7 +23,7 @@ #include "../mem/heap.h" #include "../utils/util.h" -//#define DPRINTF(...) gfx_printf(&gfx_con, __VA_ARGS__) +//#define DPRINTF(...) gfx_printf(__VA_ARGS__) #define DPRINTF(...) static inline u32 unstuff_bits(u32 *resp, u32 start, u32 size) @@ -425,7 +425,7 @@ static int _mmc_storage_enable_HS400(sdmmc_storage_t *storage) static int _mmc_storage_enable_highspeed(sdmmc_storage_t *storage, u32 card_type, u32 type) { //TODO: this should be a config item. - //---v + // --v if (!1 || sdmmc_get_voltage(storage->sdmmc) != SDMMC_POWER_1_8) goto out; @@ -519,7 +519,7 @@ int sdmmc_storage_init_mmc(sdmmc_storage_t *storage, sdmmc_t *sdmmc, u32 id, u32 free(ext_csd); DPRINTF("[MMC] got ext_csd\n"); _mmc_storage_parse_cid(storage); //This needs to be after csd and ext_csd - //gfx_hexdump(&gfx_con, 0, ext_csd, 512); + //gfx_hexdump(0, ext_csd, 512); /* When auto BKOPS is enabled the mmc device should be powered all the time until we disable this and check status. Disable it for now until BKOPS disable added to power down sequence at sdmmc_storage_end(). @@ -706,7 +706,7 @@ int _sd_storage_get_scr(sdmmc_storage_t *storage, u8 *buf) u32 tmp = 0; sdmmc_get_rsp(storage->sdmmc, &tmp, 4, SDMMC_RSP_TYPE_1); - //Prepare buffer for unstuff_bits + //Prepare buffer for unstuff_bits for (int i = 0; i < 8; i+=4) { storage->raw_scr[i + 3] = buf[i]; @@ -715,7 +715,7 @@ int _sd_storage_get_scr(sdmmc_storage_t *storage, u8 *buf) storage->raw_scr[i] = buf[i + 3]; } _sd_storage_parse_scr(storage); - //gfx_hexdump(&gfx_con, 0, storage->raw_scr, 8); + //gfx_hexdump(0, storage->raw_scr, 8); return _sdmmc_storage_check_result(tmp); } @@ -827,7 +827,7 @@ int _sd_storage_enable_highspeed_low_volt(sdmmc_storage_t *storage, u32 type, u8 if (!_sd_storage_switch_get(storage, buf)) return 0; - //gfx_hexdump(&gfx_con, 0, (u8 *)buf, 64); + //gfx_hexdump(0, (u8 *)buf, 64); u32 hs_type = 0; switch (type) @@ -877,7 +877,7 @@ int _sd_storage_enable_highspeed_high_volt(sdmmc_storage_t *storage, u8 *buf) { if (!_sd_storage_switch_get(storage, buf)) return 0; - //gfx_hexdump(&gfx_con, 0, (u8 *)buf, 64); + //gfx_hexdump(0, (u8 *)buf, 64); if (!(buf[13] & 2)) return 1; @@ -965,7 +965,7 @@ static int _sd_storage_get_ssr(sdmmc_storage_t *storage, u8 *buf) storage->raw_ssr[i] = buf[i + 3]; } _sd_storage_parse_ssr(storage); - //gfx_hexdump(&gfx_con, 0, storage->raw_ssr, 64); + //gfx_hexdump(0, storage->raw_ssr, 64); return _sdmmc_storage_check_result(tmp); } @@ -1090,7 +1090,7 @@ int sdmmc_storage_init_sd(sdmmc_storage_t *storage, sdmmc_t *sdmmc, u32 id, u32 return 0; } - //gfx_hexdump(&gfx_con, 0, storage->raw_scr, 8); + //gfx_hexdump(0, storage->raw_scr, 8); DPRINTF("[SD] got scr\n"); // Check if card supports a wider bus and if it's not SD Version 1.X diff --git a/bootloader/storage/sdmmc_driver.c b/bootloader/storage/sdmmc_driver.c index 13462a9..834764f 100644 --- a/bootloader/storage/sdmmc_driver.c +++ b/bootloader/storage/sdmmc_driver.c @@ -28,7 +28,7 @@ #include "../soc/t210.h" #include "../utils/util.h" -//#define DPRINTF(...) gfx_printf(&gfx_con, __VA_ARGS__) +//#define DPRINTF(...) gfx_printf(__VA_ARGS__) #define DPRINTF(...) /*! SCMMC controller base addresses. */