aboutsummaryrefslogtreecommitdiff
path: root/i18n/fr_FR/projects/bucts
diff options
context:
space:
mode:
authorLibreboot Contributor <contributor@libreboot.org>2020-03-18 17:20:14 +0100
committerLibreboot Contributor <contributor@libreboot.org>2020-03-18 17:20:27 +0100
commit0f6ea1c9e0a25a9b7546f96f27cef8841f0d09b5 (patch)
treea28b9403123dd6204eb2dd8cb44eada12c169f4b /i18n/fr_FR/projects/bucts
parent6e5bdd1271059a9c61c80b21001fd3d14ff25045 (diff)
downloadlibrebootfr-0f6ea1c9e0a25a9b7546f96f27cef8841f0d09b5.tar.gz
librebootfr-0f6ea1c9e0a25a9b7546f96f27cef8841f0d09b5.zip
Creation of i18n folder containing translations of the libreboot project. Added french one, not finished.
Diffstat (limited to 'i18n/fr_FR/projects/bucts')
-rw-r--r--i18n/fr_FR/projects/bucts/bucts98
-rw-r--r--i18n/fr_FR/projects/bucts/configs/install1
-rw-r--r--i18n/fr_FR/projects/bucts/configs/revision1
-rw-r--r--i18n/fr_FR/projects/bucts/sources/Makefile20
-rw-r--r--i18n/fr_FR/projects/bucts/sources/bucts.c191
5 files changed, 311 insertions, 0 deletions
diff --git a/i18n/fr_FR/projects/bucts/bucts b/i18n/fr_FR/projects/bucts/bucts
new file mode 100644
index 00000000..4eea684a
--- /dev/null
+++ b/i18n/fr_FR/projects/bucts/bucts
@@ -0,0 +1,98 @@
+#!/usr/bin/env bash
+
+# Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+arguments() {
+ project_arguments_targets "$project" "$@"
+}
+
+usage() {
+ project_usage_actions "$project"
+ project_usage_arguments "$project" "$@"
+}
+
+extract() {
+ local repository="$project"
+
+ project_extract "$project" "$@"
+}
+
+extract_check() {
+ local repository="$project"
+
+ project_extract_check "$project" "$@"
+}
+
+update() {
+ local repository="$project"
+
+ project_update_git "$project" "$repository" "$@"
+}
+
+update_check() {
+ local repository="$project"
+
+ project_update_check_git "$project" "$repository" "$@"
+}
+
+build() {
+ local repository="$project"
+
+ project_sources_directory_missing_empty_error "$project" "$repository" "$@"
+
+ if git_project_check "$repository"; then
+ git_project_checkout "$project" "$repository" "$@"
+ fi
+
+ local sources_path="$(project_sources_path "$project" "$repository" "$@")"
+
+ local build_path="$(project_build_path "$project" "$@")"
+
+ mkdir -p "$build_path"
+ make -C "$sources_path" -j"$TASKS"
+ cp "$sources_path/bucts" "$build_path"
+ make -C "$sources_path" 'clean'
+}
+
+build_check() {
+ project_build_check "$project" "$@"
+}
+
+install() {
+ project_install "$project" "$@"
+}
+
+install_check() {
+ project_install_check "$project" "$@"
+}
+
+release() {
+ local repository="$project"
+
+ project_release_install_archive "$project" "$TOOLS" "$@"
+ project_release_sources_archive_create "$project" "$@"
+}
+
+release_check() {
+ local repository="bucts"
+
+ project_release_install_archive_check "$project" "$TOOLS" "$@"
+ project_release_sources_archive_exists_check "$project" "$@"
+}
+
+clean() {
+ project_clean "$project" "$@"
+}
diff --git a/i18n/fr_FR/projects/bucts/configs/install b/i18n/fr_FR/projects/bucts/configs/install
new file mode 100644
index 00000000..28b72bcb
--- /dev/null
+++ b/i18n/fr_FR/projects/bucts/configs/install
@@ -0,0 +1 @@
+bucts:bucts
diff --git a/i18n/fr_FR/projects/bucts/configs/revision b/i18n/fr_FR/projects/bucts/configs/revision
new file mode 100644
index 00000000..ee153928
--- /dev/null
+++ b/i18n/fr_FR/projects/bucts/configs/revision
@@ -0,0 +1 @@
+6fa9d52277a76a1bace7458d8ed91acf8c94c0c1
diff --git a/i18n/fr_FR/projects/bucts/sources/Makefile b/i18n/fr_FR/projects/bucts/sources/Makefile
new file mode 100644
index 00000000..b5f43d5f
--- /dev/null
+++ b/i18n/fr_FR/projects/bucts/sources/Makefile
@@ -0,0 +1,20 @@
+CC:=gcc
+OBJ:=bucts.o
+VERSION:=withoutgit
+
+ifeq ($(shell uname), FreeBSD)
+ CFLAGS = -I/usr/local/include
+ LDFLAGS = -L/usr/local/lib
+endif
+
+all: bucts
+
+bucts: $(OBJ)
+ $(CC) -o $@ $(OBJ) $(LDFLAGS) -lpci
+
+%.o: %.c
+ $(CC) $(CFLAGS) -DVERSION='"$(VERSION)"' -c $<
+
+.PHONY: clean
+clean:
+ rm -f bucts $(OBJ)
diff --git a/i18n/fr_FR/projects/bucts/sources/bucts.c b/i18n/fr_FR/projects/bucts/sources/bucts.c
new file mode 100644
index 00000000..16e82c7a
--- /dev/null
+++ b/i18n/fr_FR/projects/bucts/sources/bucts.c
@@ -0,0 +1,191 @@
+/* compile: gcc -s -o bucts bucts.c -lpci or: make
+ * run as root: ./bucts [0|1]
+ */
+/*
+ * Copyright (C) 2011 Peter Stuge <peter@stuge.se>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+#include <errno.h>
+#include <unistd.h>
+#include <sys/mman.h>
+#if defined(__GLIBC__)
+#include <sys/io.h>
+#endif
+#include <pci/pci.h>
+
+#if defined (__sun) && (defined(__i386) || defined(__amd64))
+#define MEM_DEV "/dev/xsvc"
+#else
+#define MEM_DEV "/dev/mem"
+#endif
+
+static int fd_mem=-1;
+
+static void *sys_physmap(unsigned long phys_addr, size_t len) {
+ void *virt_addr = mmap(0, len, PROT_WRITE|PROT_READ, MAP_SHARED, fd_mem, (off_t)phys_addr);
+ return MAP_FAILED == virt_addr ? NULL : virt_addr;
+}
+
+static void physunmap(void *virt_addr, size_t len) {
+ if (!len) {
+ printf("Not unmapping zero size at %p\n", virt_addr);
+ return;
+ }
+ munmap(virt_addr, len);
+}
+
+static void *physmap(const char *descr, unsigned long phys_addr, size_t len) {
+ void *virt_addr;
+
+ if (!descr)
+ descr = "memory";
+
+ if (!len) {
+ printf("Not mapping %s, zero size at 0x%08lx.\n", descr, phys_addr);
+ return NULL;
+ }
+
+ if ((getpagesize() - 1) & len)
+ fprintf(stderr, "Unaligned size 0x%lx for %s at 0x%08lx!\n", (unsigned long)len, descr, phys_addr);
+
+ if ((getpagesize() - 1) & phys_addr)
+ fprintf(stderr, "Unaligned address 0x%08lx for %s!\n", phys_addr, descr);
+
+ virt_addr = sys_physmap(phys_addr, len);
+ if (!virt_addr) {
+ fprintf(stderr, "Error accessing 0x%lx bytes %s at 0x%08lx!\n", (unsigned long)len, descr, phys_addr);
+ perror("mmap(" MEM_DEV ")");
+ if (EINVAL == errno) {
+ fprintf(stderr, "\n");
+ fprintf(stderr, "In Linux this error can be caused by the CONFIG_NONPROMISC_DEVMEM (<2.6.27),\n");
+ fprintf(stderr, "CONFIG_STRICT_DEVMEM (>=2.6.27) and CONFIG_X86_PAT kernel options.\n");
+ fprintf(stderr, "Please check if either is enabled in your kernel before reporting a failure.\n");
+ fprintf(stderr, "You can override CONFIG_X86_PAT at boot with the nopat kernel parameter but\n");
+ fprintf(stderr, "disabling the other option unfortunately requires a kernel recompile. Sorry!\n");
+ }
+ }
+
+ return virt_addr;
+}
+
+int bucts(struct pci_dev *sb, int8_t newts) {
+ uint8_t buc, ts;
+ uint32_t rcba_addr;
+ volatile uint8_t *rcba;
+ const char *str[2]={
+ "128kb address range 0xFFFE0000-0xFFFFFFFF is untranslated",
+ "64kb address ranges at 0xFFFE0000 and 0xFFFF0000 are swapped"
+ };
+
+ switch (sb->device_id) {
+ case 0x27b9:
+ rcba_addr = pci_read_long(sb, 0xf0) & ~1;
+ break;
+ default:
+ fprintf(stderr, "Unsupported LPC bridge. Sorry.\n");
+ return 1;
+ }
+
+ rcba = physmap("RCBA", rcba_addr, 0x4000);
+ if (!rcba)
+ return 1;
+
+ buc = rcba[0x3414];
+ ts = buc & 1;
+ printf("Current BUC.TS=%d - %s\n", ts, str[ts]);
+
+ if (0 == newts || 1 == newts) {
+ if (ts == newts) {
+ printf("Not writing BUC register since TS is already correct.\n");
+ goto unmap;
+ }
+ buc &= ~1;
+ buc |= newts;
+ rcba[0x3414] = buc;
+ buc = rcba[0x3414];
+ ts = buc & 1;
+ printf("Updated BUC.TS=%d - %s\n", ts, str[ts]);
+ }
+
+unmap:
+ physunmap((void *)rcba, 0x4000);
+ return 0;
+}
+
+int main(int argc, const char *argv[], const char *envp[]) {
+ int ret;
+ char *endp;
+ int8_t newts = -1;
+ struct pci_access *pacc;
+ struct pci_dev *dev, *sb = NULL;
+#if defined(__FreeBSD__)
+ int io_fd;
+#endif
+
+ printf("bucts utility version '" VERSION "'\n");
+
+#if defined(__FreeBSD__)
+ if ((io_fd = open("/dev/io", O_RDWR)) < 0) {
+ perror("open(/dev/io)");
+#else
+ if (iopl(3)) {
+ perror("iopl");
+#endif
+ printf("You need to be root.\n");
+ return 1;
+ }
+
+ if (-1 == (fd_mem = open(MEM_DEV, O_RDWR|O_SYNC))) {
+ perror("Error: open(" MEM_DEV ")");
+ return 1;
+ }
+
+ pacc=pci_alloc();
+ pci_init(pacc);
+ pci_scan_bus(pacc);
+ for (dev=pacc->devices; dev && !sb; dev=dev->next) {
+ pci_fill_info(dev, PCI_FILL_IDENT|PCI_FILL_CLASS);
+ if (dev->vendor_id != 0x8086 || dev->device_class != 0x0601)
+ continue;
+ sb = dev;
+ }
+ if (!sb) {
+ fprintf(stderr, "Error: LPC bridge not found!\n");
+ return 1;
+ }
+
+ printf("Using LPC bridge %04x:%04x at %02x%02x:%02x.%02x\n", sb->vendor_id, sb->device_id, sb->domain, sb->bus, sb->dev, sb->func);
+
+ if (argc > 1) {
+ newts = strtoul(argv[1], &endp, 10);
+ if (endp == argv[1]) {
+ fprintf(stderr, "Invalid new TS value '%s', please specify 0 or 1.\n", argv[1]);
+ newts = -1;
+ }
+ }
+
+ ret = bucts(sb, newts);
+
+ close(fd_mem);
+ return ret;
+}