From: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] part_mac: dcache: allocate cacheline-aligned buffers
Date: Fri, 10 Aug 2012 16:39:18 +0200 (CEST) [thread overview]
Message-ID: <2108538208.2273303.1344609558214.JavaMail.root@advansee.com> (raw)
In-Reply-To: <702522317.1091303.1344035103823.JavaMail.root@advansee.com>
On Sat, Aug 4, 2012 at 01:05:03 AM, Beno?t Th?baudeau wrote:
> On Fri, Jul 13, 2012 at 09:31:03 PM, Beno?t Th?baudeau wrote:
> > This patch forces the correct alignment for DMA operations of
> > buffers
> > used by
> > part_mac.c.
> >
> > Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> > Cc: Wolfgang Denk <wd@denx.de>
> > ---
> > {u-boot.orig => u-boot}/disk/part_mac.c | 68
> > +++++++++++++++----------------
> > 1 file changed, 34 insertions(+), 34 deletions(-)
> >
> > diff --git u-boot.orig/disk/part_mac.c u-boot/disk/part_mac.c
> > index c1afc8c..cb443ac 100644
> > --- u-boot.orig/disk/part_mac.c
> > +++ u-boot/disk/part_mac.c
> > @@ -60,23 +60,23 @@ static int part_mac_read_pdb (block_dev_desc_t
> > *dev_desc, int part, mac_partitio
> > */
> > int test_part_mac (block_dev_desc_t *dev_desc)
> > {
> > - mac_driver_desc_t ddesc;
> > - mac_partition_t mpart;
> > + ALLOC_CACHE_ALIGN_BUFFER(mac_driver_desc_t, ddesc, 1);
> > + ALLOC_CACHE_ALIGN_BUFFER(mac_partition_t, mpart, 1);
> > ulong i, n;
> >
> > - if (part_mac_read_ddb (dev_desc, &ddesc)) {
> > + if (part_mac_read_ddb (dev_desc, ddesc)) {
> > /* error reading Driver Desriptor Block, or no valid Signature
> > */
> > return (-1);
> > }
> >
> > n = 1; /* assuming at least one partition */
> > for (i=1; i<=n; ++i) {
> > - if ((dev_desc->block_read(dev_desc->dev, i, 1, (ulong *)&mpart)
> > !=
> > 1) ||
> > - (mpart.signature != MAC_PARTITION_MAGIC) ) {
> > + if ((dev_desc->block_read(dev_desc->dev, i, 1, (ulong *)mpart)
> > !=
> > 1) ||
> > + (mpart->signature != MAC_PARTITION_MAGIC) ) {
> > return (-1);
> > }
> > /* update partition count */
> > - n = mpart.map_count;
> > + n = mpart->map_count;
> > }
> > return (0);
> > }
> > @@ -85,20 +85,20 @@ int test_part_mac (block_dev_desc_t *dev_desc)
> > void print_part_mac (block_dev_desc_t *dev_desc)
> > {
> > ulong i, n;
> > - mac_driver_desc_t ddesc;
> > - mac_partition_t mpart;
> > + ALLOC_CACHE_ALIGN_BUFFER(mac_driver_desc_t, ddesc, 1);
> > + ALLOC_CACHE_ALIGN_BUFFER(mac_partition_t, mpart, 1);
> > ldiv_t mb, gb;
> >
> > - if (part_mac_read_ddb (dev_desc, &ddesc)) {
> > + if (part_mac_read_ddb (dev_desc, ddesc)) {
> > /* error reading Driver Desriptor Block, or no valid Signature
> > */
> > return;
> > }
> >
> > - n = ddesc.blk_count;
> > + n = ddesc->blk_count;
> >
> > - mb = ldiv(n, ((1024 * 1024) / ddesc.blk_size)); /* MB */
> > + mb = ldiv(n, ((1024 * 1024) / ddesc->blk_size)); /* MB */
> > /* round to 1 digit */
> > - mb.rem *= 10 * ddesc.blk_size;
> > + mb.rem *= 10 * ddesc->blk_size;
> > mb.rem += 512 * 1024;
> > mb.rem /= 1024 * 1024;
> >
> > @@ -112,10 +112,10 @@ void print_part_mac (block_dev_desc_t
> > *dev_desc)
> > "DeviceType=0x%x, DeviceId=0x%x\n\n"
> > " #: type name"
> > " length base (size)\n",
> > - ddesc.blk_size,
> > - ddesc.blk_count,
> > + ddesc->blk_size,
> > + ddesc->blk_count,
> > mb.quot, mb.rem, gb.quot, gb.rem,
> > - ddesc.dev_type, ddesc.dev_id
> > + ddesc->dev_type, ddesc->dev_id
> > );
> >
> > n = 1; /* assuming at least one partition */
> > @@ -124,25 +124,25 @@ void print_part_mac (block_dev_desc_t
> > *dev_desc)
> > char c;
> >
> > printf ("%4ld: ", i);
> > - if (dev_desc->block_read (dev_desc->dev, i, 1, (ulong *)&mpart)
> > !=
> > 1) {
> > + if (dev_desc->block_read (dev_desc->dev, i, 1, (ulong *)mpart)
> > !=
> > 1) {
> > printf ("** Can't read Partition Map on %d:%ld **\n",
> > dev_desc->dev, i);
> > return;
> > }
> >
> > - if (mpart.signature != MAC_PARTITION_MAGIC) {
> > + if (mpart->signature != MAC_PARTITION_MAGIC) {
> > printf ("** Bad Signature on %d:%ld - "
> > "expected 0x%04x, got 0x%04x\n",
> > - dev_desc->dev, i, MAC_PARTITION_MAGIC, mpart.signature);
> > + dev_desc->dev, i, MAC_PARTITION_MAGIC, mpart->signature);
> > return;
> > }
> >
> > /* update partition count */
> > - n = mpart.map_count;
> > + n = mpart->map_count;
> >
> > c = 'k';
> > - bytes = mpart.block_count;
> > - bytes /= (1024 / ddesc.blk_size); /* kB; assumes blk_size ==
> > 512
> > */
> > + bytes = mpart->block_count;
> > + bytes /= (1024 / ddesc->blk_size); /* kB; assumes blk_size ==
> > 512
> > */
> > if (bytes >= 1024) {
> > bytes >>= 10;
> > c = 'M';
> > @@ -153,10 +153,10 @@ void print_part_mac (block_dev_desc_t
> > *dev_desc)
> > }
> >
> > printf ("%20.32s %-18.32s %10u @ %-10u (%3ld%c)\n",
> > - mpart.type,
> > - mpart.name,
> > - mpart.block_count,
> > - mpart.start_block,
> > + mpart->type,
> > + mpart->name,
> > + mpart->block_count,
> > + mpart->start_block,
> > bytes, c
> > );
> > }
> > @@ -231,23 +231,23 @@ static int part_mac_read_pdb
> > (block_dev_desc_t
> > *dev_desc, int part, mac_partitio
> >
> > int get_partition_info_mac (block_dev_desc_t *dev_desc, int part,
> > disk_partition_t *info)
> > {
> > - mac_driver_desc_t ddesc;
> > - mac_partition_t mpart;
> > + ALLOC_CACHE_ALIGN_BUFFER(mac_driver_desc_t, ddesc, 1);
> > + ALLOC_CACHE_ALIGN_BUFFER(mac_partition_t, mpart, 1);
> >
> > - if (part_mac_read_ddb (dev_desc, &ddesc)) {
> > + if (part_mac_read_ddb (dev_desc, ddesc)) {
> > return (-1);
> > }
> >
> > - info->blksz = ddesc.blk_size;
> > + info->blksz = ddesc->blk_size;
> >
> > - if (part_mac_read_pdb (dev_desc, part, &mpart)) {
> > + if (part_mac_read_pdb (dev_desc, part, mpart)) {
> > return (-1);
> > }
> >
> > - info->start = mpart.start_block;
> > - info->size = mpart.block_count;
> > - memcpy (info->type, mpart.type, sizeof(info->type));
> > - memcpy (info->name, mpart.name, sizeof(info->name));
> > + info->start = mpart->start_block;
> > + info->size = mpart->block_count;
> > + memcpy (info->type, mpart->type, sizeof(info->type));
> > + memcpy (info->name, mpart->name, sizeof(info->name));
> >
> > return (0);
> > }
> >
>
> Ping?
Can someone answer, please?
Best regards,
Beno?t
next prev parent reply other threads:[~2012-08-10 14:39 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-13 19:31 [U-Boot] [PATCH] part_mac: dcache: allocate cacheline-aligned buffers Benoît Thébaudeau
2012-08-03 23:05 ` Benoît Thébaudeau
2012-08-10 14:39 ` Benoît Thébaudeau [this message]
2012-09-02 15:08 ` Wolfgang Denk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2108538208.2273303.1344609558214.JavaMail.root@advansee.com \
--to=benoit.thebaudeau@advansee.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.