summaryrefslogtreecommitdiffstats
path: root/bootloader
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2006-10-30 11:33:38 +0000
committerMichael Sevakis <jethead71@rockbox.org>2006-10-30 11:33:38 +0000
commit9e8fe0e4c662d3d5c26ea2f1f64c7da66cf3ce04 (patch)
treee5b0bd4076b66c55b49f36cdd0898de2e2717a86 /bootloader
parentede3d646b9a248a1893ec20482eaa30641df078e (diff)
downloadrockbox-9e8fe0e4c662d3d5c26ea2f1f64c7da66cf3ce04.tar.gz
rockbox-9e8fe0e4c662d3d5c26ea2f1f64c7da66cf3ce04.tar.bz2
rockbox-9e8fe0e4c662d3d5c26ea2f1f64c7da66cf3ce04.zip
General: changed local adc to voltage conversions in several places to use battery_voltage. Added battery_read_info function for unfiltered battery information. x5: removed adc_read as a distinct function. Removed adc tick task. adc_init is empty inline. Adjusted battery scale, voltage to level array and read 10 bits from the ADC for battery since 255 levels is not enough for true centivolt resolution.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11396 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'bootloader')
-rw-r--r--bootloader/main.c56
1 files changed, 28 insertions, 28 deletions
diff --git a/bootloader/main.c b/bootloader/main.c
index 77866573e9..99eb449151 100644
--- a/bootloader/main.c
+++ b/bootloader/main.c
@@ -99,7 +99,7 @@ int load_firmware(void)
unsigned long sum;
int i;
unsigned char *buf = (unsigned char *)DRAM_START;
-
+
fd = open("/.rockbox/" BOOTFILE, O_RDONLY);
if(fd < 0)
{
@@ -114,7 +114,7 @@ int load_firmware(void)
lcd_update();
lseek(fd, FIRMWARE_OFFSET_FILE_CRC, SEEK_SET);
-
+
rc = read(fd, &chksum, 4);
if(rc < 4)
return -2;
@@ -127,7 +127,7 @@ int load_firmware(void)
return -3;
model[4] = 0;
-
+
printf("Model name: %s", model);
lcd_update();
@@ -140,7 +140,7 @@ int load_firmware(void)
close(fd);
sum = MODEL_NUMBER;
-
+
for(i = 0;i < len;i++) {
sum += buf[i];
}
@@ -159,7 +159,7 @@ int load_flashed_rockbox(void)
struct flash_header hdr;
unsigned char *buf = (unsigned char *)DRAM_START;
uint8_t *src = (uint8_t *)FLASH_ENTRYPOINT;
-
+
cpu_boost(true);
memcpy(&hdr, src, sizeof(struct flash_header));
src += sizeof(struct flash_header);
@@ -221,7 +221,7 @@ void main(void)
battery_voltage = (adc_battery * BATTERY_SCALE_FACTOR) / 10000;
batt_int = battery_voltage / 100;
batt_frac = battery_voltage % 100;
-
+
printf("Batt: %d.%02dV", batt_int, batt_frac);
lcd_update();
@@ -248,12 +248,12 @@ void main(void)
i = load_firmware();
printf("Result: %d", i);
lcd_update();
-
+
if(i == 0)
start_firmware();
power_off();
-
+
#else
/* We want to read the buttons as early as possible, before the user
releases the ON button */
@@ -266,19 +266,19 @@ void main(void)
data = GPIO1_READ;
if ((data & 0x20) == 0)
on_button = true;
-
+
if ((data & 0x40) == 0)
rc_on_button = true;
/* Set the default state of the hard drive power to OFF */
ide_power_enable(false);
-
+
power_init();
/* Turn off if neither ON button is pressed */
if(!(on_button || rc_on_button || usb_detect()))
power_off();
-
+
/* Backlight ON */
or_l(0x00020000, &GPIO1_ENABLE);
or_l(0x00020000, &GPIO1_FUNCTION);
@@ -304,7 +304,7 @@ void main(void)
ide_power_enable(true);
}
#endif
-
+
system_init();
kernel_init();
@@ -316,7 +316,7 @@ void main(void)
#ifdef HAVE_UDA1380
uda1380_reset();
#endif
-
+
backlight_init();
set_irq_level(0);
lcd_init();
@@ -331,9 +331,9 @@ void main(void)
lcd_update();
sleep(HZ/50); /* Allow the button driver to check the buttons */
- rec_button = ((button_status() & BUTTON_REC) == BUTTON_REC)
+ rec_button = ((button_status() & BUTTON_REC) == BUTTON_REC)
|| ((button_status() & BUTTON_RC_REC) == BUTTON_RC_REC);
-
+
/* Don't start if the Hold button is active on the device you
are starting with */
if (!usb_detect() && ((on_button && button_hold()) ||
@@ -363,7 +363,7 @@ void main(void)
if (detect_flashed_rockbox())
{
bool load_from_flash;
-
+
load_from_flash = !rec_button;
#ifdef HAVE_EEPROM_SETTINGS
if (eeprom_settings_init())
@@ -372,7 +372,7 @@ void main(void)
* not be intact. */
if (firmware_settings.bl_version)
firmware_settings.disk_clean = false;
-
+
firmware_settings.bl_version = 7;
/* Invert the record button if we want to load from disk
* by default. */
@@ -380,7 +380,7 @@ void main(void)
load_from_flash = rec_button;
}
#endif
-
+
if (load_from_flash)
{
/* Load firmware from flash */
@@ -400,7 +400,7 @@ void main(void)
power_off();
}
}
-
+
printf("Loading from disk...");
lcd_update();
}
@@ -416,13 +416,13 @@ void main(void)
}
usb_init();
-
+
adc_battery = adc_read(ADC_BATTERY);
battery_voltage = (adc_battery * BATTERY_SCALE_FACTOR) / 10000;
batt_int = battery_voltage / 100;
batt_frac = battery_voltage % 100;
-
+
printf("Batt: %d.%02dV", batt_int, batt_frac);
lcd_update();
@@ -431,7 +431,7 @@ void main(void)
lcd_update();
sleep(HZ*2);
}
-
+
rc = ata_init();
if(rc)
{
@@ -456,7 +456,7 @@ void main(void)
#ifdef IRIVER_H300_SERIES
sleep(HZ);
#endif
-
+
#ifdef HAVE_EEPROM_SETTINGS
if (firmware_settings.initialized)
{
@@ -472,7 +472,7 @@ void main(void)
{
ata_spin(); /* Prevent the drive from spinning down */
sleep(HZ);
-
+
/* Backlight OFF */
or_l(0x00020000, &GPIO1_OUT);
}
@@ -480,12 +480,12 @@ void main(void)
cpu_idle_mode(false);
usb_enable(false);
ata_init(); /* Reinitialize ATA and continue booting */
-
+
lcd_clear_display();
line = 0;
lcd_update();
}
-
+
disk_init();
rc = disk_mount_all();
@@ -507,10 +507,10 @@ void main(void)
if (firmware_settings.initialized)
eeprom_settings_store();
#endif
-
+
if (i == 0)
start_firmware();
-
+
if (detect_flashed_rockbox())
{
printf("No firmware found on disk");