summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx233/partitions-imx233.h
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2013-10-22 15:55:28 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2013-10-22 15:55:28 +0200
commit4aa32fb8f4b2921cca6e17716d7ad8a7a30f192a (patch)
treebfe0747973862191374cd44d7ffd8e9217264388 /firmware/target/arm/imx233/partitions-imx233.h
parent51ed6da0b1a79b86e3e41eed3b6671eadb0081a6 (diff)
downloadrockbox-4aa32fb8f4b2921cca6e17716d7ad8a7a30f192a.tar.gz
rockbox-4aa32fb8f4b2921cca6e17716d7ad8a7a30f192a.zip
imx233: fix partition window computation
The code was broken in two ways: - it called storage_read_sectors with a wrong drive number - calling storage_read_sectors too early at boot time will fail because we are in the init function, so the drive is not yet registered. To fix this, use a user provided read callback instead of storage read functions. Change-Id: I5ab79d48391fae619d5f8ae09c3d499fc43854c8
Diffstat (limited to 'firmware/target/arm/imx233/partitions-imx233.h')
-rw-r--r--firmware/target/arm/imx233/partitions-imx233.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/firmware/target/arm/imx233/partitions-imx233.h b/firmware/target/arm/imx233/partitions-imx233.h
index b7ed251dee..80936ad865 100644
--- a/firmware/target/arm/imx233/partitions-imx233.h
+++ b/firmware/target/arm/imx233/partitions-imx233.h
@@ -40,11 +40,15 @@ enum imx233_part_t
40#endif 40#endif
41}; 41};
42 42
43/** The computation function can be called very early in the boot, at which point
44 * usual storage read/write function may not be available. To workaround this
45 * issue, one must provide a read function. */
46typedef int (*part_read_fn_t)(intptr_t user, unsigned long start, int count, void* buf);
43/* Enable/Disable window computations for internal storage following the 47/* Enable/Disable window computations for internal storage following the
44 * Freescale convention */ 48 * Freescale convention */
45void imx233_partitions_enable_window(bool enable); 49void imx233_partitions_enable_window(bool enable);
46bool imx233_partitions_is_window_enabled(void); 50bool imx233_partitions_is_window_enabled(void);
47int imx233_partitions_compute_window(IF_MD(int drive,) enum imx233_part_t part, 51int imx233_partitions_compute_window(intptr_t user, part_read_fn_t read_fn,
48 unsigned *start, unsigned *end); 52 enum imx233_part_t part, unsigned *start, unsigned *end);
49 53
50#endif /* __PARTITIONS_IMX233__ */ \ No newline at end of file 54#endif /* __PARTITIONS_IMX233__ */ \ No newline at end of file