📄 setup.c
字号:
#include "board.h"#include "console.h"#include "utils.h"#include "bios.h"int main_menu(void){ int list[] = { SETUP_ROM, SETUP_DRAM, SETUP_BOOT_MODE, SETUP_ETH }; int select; int ch; printf("Setup Menu\r\n\r\n"); printf("1 - ROM Setup\r\n"); printf("2 - DRAM Setup\r\n"); printf("3 - Boot Mode Setup\r\n"); printf("4 - Eth Setup\r\n"); printf("\r\n"); printf("Please Select "); select = get_select('1', '4'); printf("\r\n\r\n"); return select;}int update_system_table(struct system_table_struct *system_table){ unsigned long offset, size, l; offset = bios_system_table_offset(); size = bios_system_table_size(); printf("Update System Paramters ............. "); bios_flash_erase(offset, size); bios_flash_write(offset, size, &l, system_table); printf("Done\r\n\r\n"); return 0;
}int setup_rom(void){ struct system_table_struct system_table; int bank, i; printf("ROM Setup\r\n\r\n"); bios_system_table(&system_table); for (i = 0; i < 6; i++) { printf("ROM Bank %01d : %08x %08x %08x\r\n", i + 1, system_table.rom_table[i].size, system_table.rom_table[i].width, system_table.rom_table[i].flags); } printf("\r\n"); printf("Please Select ROM Bank (1 - 6) "); bank = get_select('1', '6'); printf("\r\n\r\n"); if (bank < 0) return 0; printf("ROM Size (%08x) : ", system_table.rom_table[bank].size); system_table.rom_table[bank].size = getul(system_table.rom_table[bank].size); printf("\r\n"); printf("ROM Width (%08x) : ", system_table.rom_table[bank].width); system_table.rom_table[bank].width = getul(system_table.rom_table[bank].width); printf("\r\n"); printf("ROM Flags (%08x) : ", system_table.rom_table[bank].flags); system_table.rom_table[bank].flags = getul(system_table.rom_table[bank].flags); printf("\r\n\r\n"); update_system_table(&system_table); printf("\r\n"); return 0;}int setup_dram(void){ struct system_table_struct system_table; int bank, i; printf("DRAM Setup\r\n\r\n"); bios_system_table(&system_table); for (i = 0; i < 4; i++) { printf("DRAM Bank %01d : %08x %08x %08x\r\n", i + 1, system_table.dram_table[i].size, system_table.dram_table[i].width, system_table.dram_table[i].flags); } printf("\r\n"); printf("Please Select DRAM Bank (1 - 4) "); bank = get_select('1', '4'); printf("\r\n\r\n"); if (bank < 0) return 0; printf("DRAM Size (%08x) : ", system_table.dram_table[bank].size); system_table.dram_table[bank].size = getul(system_table.dram_table[bank].size); printf("\r\n"); printf("DRAM Width (%08x) : ", system_table.dram_table[bank].width); system_table.dram_table[bank].width = getul(system_table.dram_table[bank].width); printf("\r\n"); printf("DRAM Flags (%08x) : ", system_table.dram_table[bank].flags); system_table.dram_table[bank].flags = getul(system_table.dram_table[bank].flags); printf("\r\n\r\n"); update_system_table(&system_table); printf("\r\n"); return 0;}int setup_boot_mode(void){ struct system_table_struct system_table; int list[] = { BOOT_LOAD_FIRMWARE, BOOT_LOAD_PROGRAM, BOOT_UPDATE_FIRMWARE, BOOT_MENU }; int select; printf("Boot Mode Setup\r\n\r\n"); bios_system_table(&system_table); printf("1 - Load Firmware\r\n"); printf("2 - Load Program (HEX)\r\n"); printf("3 - Update Firmware\r\n"); printf("4 - Boot Menu\r\n"); printf("\r\n"); printf("Please Select "); select = get_select('1', '4'); printf("\r\n\r\n"); if (select < 0) return 0; system_table.startup_mode = list[select]; update_system_table(&system_table); printf("\r\n"); return 0;}int eth_menu(void){ int select; printf("Eth Address Setup\r\n\r\n"); printf("1 - Display MAC Address\r\n"); printf("2 - Set MAC Address\r\n"); printf("\r\n"); printf("Please Select "); select = get_select('1', '2'); printf("\r\n\r\n"); return select;}int setup_eth_address(void){ struct system_table_struct system_table; int select, i; while (1) { select = eth_menu(); if (select < 0) { break; } bios_system_table(&system_table); if (select == 0) { printf("MAC Address : "); for (i = 0; i < 6; i++) { printf("%02x ", system_table.eth.address[i]); } printf("\r\n\r\n"); } else { for (i = 0; i < 6; i++) { printf("Address %01x (%02x) : ", i, system_table.eth.address[i]); system_table.eth.address[i] = getul(system_table.eth.address[i]); printf("\r\n"); } printf("\r\n"); update_system_table(&system_table); } } return 0;}int setup(void){ int select; while (1) { select = main_menu(); if (select < 0) { break; } switch (select) { case SETUP_ROM: setup_rom(); break; case SETUP_DRAM: setup_dram(); break; case SETUP_BOOT_MODE: setup_boot_mode(); break; case SETUP_ETH: setup_eth_address(); break; default: break; } } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -